Pierwsza praca - utrzymywanie projektów ? :/

0

Cześć, jestem na bardzo początkującym etapie nauki Springa (zacząłem się uczyć dosłownie pare dni temu). Na rozmowie o prace dostałem do napisania (w domu, a potem wysłać) prostego CRUDa ze Spring MVC, 2 tabele, JPA, maven, kod otestować, ubrać w javadoca, skorzystać z dowolnego procesora html. Kasa bardzo w porządku, spodziewałem się dostać 20% mniej. Tylko jeden haczyk - mam utrzymywać projekty w Springu do wersji 2.0 (3/4 projektów w v.1.x).

Co o tym sądzicie ? Jest sens w to wchodzić ? Kasa nie jest najważniejsza, ale czy ja... nie wybrzydzam ? Ktoś doświadczony może mi pomóc ?

1

W świecie realnym - utrzymanie projektu to jedno z najczęstszych i najtrudniejszych, jednocześnie pozwalającym najwięcej sie nauczyć zadań. Grzebanie w cudzym kodzie nie jest łatwe ani przyjemne, ale warto się tego nauczyć.

0

Sam masz do tego być czy masz być jednym z kilku progromistów do utrzymywania kodu?

0

To zależy od Twojej ambicji, generalnie podejścia są dwa (w mojej opinii):
-utrzymywanie, w 99% gunwokodu, napisanego X lat temu przy wykorzystaniu bibliotek o 1-2 lub więcej wersji do tyłu, miło jak są testy, co niestety zdarza się dość rzadko, jak zbyt długo się siedzi w tym, to w pewnym momencie można się obudzić z ręką w nocniku, że znamy bardzo dobrze rozwiązania i biblioteki, których już nikt na rynku nie używa, bo się "zasiedzieliśmy" i jesteśmy mocno do tyłu z aktualnymi rozwiązaniami
-tworzenie/rozwój, wg. mnie dużo bardziej rozwija umiejętności programistyczne, masz kontakt ze świeższymi wersjami bibliotek, czasami z nowymi podejściami do pewnych rozwiązań, jesteś w miarę na czasie z technologią, możesz się bardziej wysilić intelektualnie tworząc i rozwiązując problemy od początku do końca, dużo szybciej rośnie skill programistyczny wg. mnie

2
emfałsi napisał(a):

-utrzymywanie, w 99% gunwokodu, napisanego X lat temu przy wykorzystaniu bibliotek o 1-2 lub więcej wersji do tyłu, miło jak są testy, co niestety zdarza się dość rzadko, jak zbyt długo się siedzi w tym, to w pewnym momencie można się obudzić z ręką w nocniku, że znamy bardzo dobrze rozwiązania i biblioteki, których już nikt na rynku nie używa, bo się "zasiedzieliśmy" i jesteśmy mocno do tyłu z aktualnymi rozwiązaniami

No tak, bo przecież nikt już nie używa kodu sprzed 10 lat ani ówczesnych technologii, a ich znajomość nigdy nie jest atutem w żadnej pracy. Zwłaszcza gdy np. przedsięwzięcie polega na przepisaniu ze starej technologii na nową albo wymagana jest integracja z systemem napisanym w starych technologiach.

Praca ze słabym kodem pozwala po pierwsze na zobaczenie na własne oczy złych rozwiązań i wzorców. Gdy już zidentyfikujemy takie błędy, to możemy przystąpić do refaktoryzacji, która pozwoli nam nauczyć się jak pisać dobry kod. To jest bardzo dobre dla początkujących, o ile nie są pozostawieni sami sobie tylko ktoś ich mentoruje.
Generalnie uczenie się na błędach innych ludzi jest bardziej efektywne niż uczenie się na własnych.

-tworzenie/rozwój, wg. mnie dużo bardziej rozwija umiejętności programistyczne, masz kontakt ze świeższymi wersjami bibliotek, czasami z nowymi podejściami do pewnych rozwiązań, jesteś w miarę na czasie z technologią, możesz się bardziej wysilić intelektualnie tworząc i rozwiązując problemy od początku do końca, dużo szybciej rośnie skill programistyczny wg. mnie

Dzięki czemu można napisać dużo nowoczesnego i opartego o najnowsze rozwiązania gównokodu, który jak wiadomo jest dużo lepszy od gównokodu w starych technologiach.

0

Dzięki za odpowiedzi. Jeśli moja aplikacja zostanie zaakceptowana to przyjmę ich ofertę. Mam jeszcze jedno pytanie - jak wygląda utrzymywanie projektu ? utrzymywanie == rozwijanie ? Chciałbym się dowiedzieć przed ewentualnym podpisanie umowy ;)

0
Złoty Krawiec napisał(a):

Dzięki za odpowiedzi. Jeśli moja aplikacja zostanie zaakceptowana to przyjmę ich ofertę. Mam jeszcze jedno pytanie - jak wygląda utrzymywanie projektu ? utrzymywanie == rozwijanie ? Chciałbym się dowiedzieć przed ewentualnym podpisanie umowy ;)

Tak utrzymanie to zazwyczaj poprawianie błędów + rozwijanie. Czasem robi się też migracje do nowego, przygotowując np kod przenoszący dane ect. Ale głównie to jest właśnie poprawianie błędów + dodawanie nowych funkcji.

0
somekind napisał(a):
emfałsi napisał(a):

-utrzymywanie, w 99% gunwokodu, napisanego X lat temu przy wykorzystaniu bibliotek o 1-2 lub więcej wersji do tyłu, miło jak są testy, co niestety zdarza się dość rzadko, jak zbyt długo się siedzi w tym, to w pewnym momencie można się obudzić z ręką w nocniku, że znamy bardzo dobrze rozwiązania i biblioteki, których już nikt na rynku nie używa, bo się "zasiedzieliśmy" i jesteśmy mocno do tyłu z aktualnymi rozwiązaniami

No tak, bo przecież nikt już nie używa kodu sprzed 10 lat ani ówczesnych technologii, a ich znajomość nigdy nie jest atutem w żadnej pracy. Zwłaszcza gdy np. przedsięwzięcie polega na przepisaniu ze starej technologii na nową albo wymagana jest integracja z systemem napisanym w starych technologiach.

Praca ze słabym kodem pozwala po pierwsze na zobaczenie na własne oczy złych rozwiązań i wzorców. Gdy już zidentyfikujemy takie błędy, to możemy przystąpić do refaktoryzacji, która pozwoli nam nauczyć się jak pisać dobry kod. To jest bardzo dobre dla początkujących, o ile nie są pozostawieni sami sobie tylko ktoś ich mentoruje.
Generalnie uczenie się na błędach innych ludzi jest bardziej efektywne niż uczenie się na własnych.

-tworzenie/rozwój, wg. mnie dużo bardziej rozwija umiejętności programistyczne, masz kontakt ze świeższymi wersjami bibliotek, czasami z nowymi podejściami do pewnych rozwiązań, jesteś w miarę na czasie z technologią, możesz się bardziej wysilić intelektualnie tworząc i rozwiązując problemy od początku do końca, dużo szybciej rośnie skill programistyczny wg. mnie

Dzięki czemu można napisać dużo nowoczesnego i opartego o najnowsze rozwiązania gównokodu, który jak wiadomo jest dużo lepszy od gównokodu w starych technologiach.

Co kto lubi, dla mnie utrzymanie to męczarnia, niestety wszędzie gdzie pracowałem przy utrzymaniu trafiałem na kod bez testów, gdzie utrzymanie zazwyczaj polegało na debugowaniu jakieś części kodu, który "przecież tyle czasu działał" i nagle niestety coś przestawało działać, zmiany zazwyczaj nie wymagały wiedzy, a raczej polegały na znalezieniu błędu w logice, w jakimś if'ie, funkcji czy coś w ten deseń, dodatkowo trzeba było uważać na to, na co oddziałuje dany kod, szukać do niego referencji i sprawdzać czy przypadkiem nie popsuje się innej części systemu. Być może masz inne doświadczenia z tym związane, pisałem z własnej perspektywy. Jak dla mnie rozwój > utrzymanie.

Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1