Dylemat, java ee czy coś innego

0

Witam
Naprawdę przepraszam jeśli był już taki post ale ja nie mogłem znaleźć. Core Jave już umiem, tylko nie wiem co dalej. Słyszałem, że na javie ee się dużo zarabia, ale jak patrzyłem na zaawansowany kod to aż mnie przeraziło XML, SQL, milion folderów nie wiadomo po co. I właśnie teraz stoję przed wyborem i nie wiem czy kodowanie w javie ee jest fun. Czy ktoś mógłby mi doradzić, może Android, tylko czy z tego są jakieś pieniądze bo mi się wydaje, że na androida to jakieś 2-3 osoby robią prywatnie gre/aplikacje, a nie duży zespół.
Pozdrawiam

0

Idąc nurtem tego wątku mnie osobiście ciekawi, na czym polega fun z utrzymywania i rozwijania takich wielkich projektów? Ja widzę sporo minusów:

  1. Autor modułu z projektu może zwolnić się z firmy wtedy trochę siara, jeśli kod jest nieczytelny.
  2. Praca z wieloma programistami o różnych poziomach umiejętności powoduje, że projekt ma fajne skrawki kodu i niezbyt ciekawe. Nie każdy programista np. przykłada się do testów jednostkowych, nie stosuje zasadę pojedynczej odpowiedzialności, itp
  3. Z biegiem lat narzędzia z projektu (wraz z bibliotekami) są stare i niewygodne.
  4. Z biegiem lat człowiek zacznie doceniać czytelny kod, a im lepszy będzie tym bardziej tę osobę wkurzać będą projekty o niezbyt znośnym kodzie.

Po prostu nie umiem zrozumieć co fajnego jest w tym, zwłaszcza, że w takich projektach programista jest jak trybik wielkiej machiny. Cóż to za frajda dorobić/poprawić jakąś funkcjonalność do wielkiego projektu względem projektowania, i tworzenia pełnych aplikacji.

0

Nie chodzi mi o fun przy pracy w wielkich projektaj, ale osobiście lubię popisać sobie jakieś programiki w javie jak mi się nudzi, i mam z tego fun, tylko jak składnia i cały projekt jest skomplikowany to czy to nie jest męczące czy dalej jest frajda z pisania.

2

1+2. Code review i jak kod gówniany to nie skomitujesz i tyle.
3. Dlatego migruje sie projekty do nowych wersji i nowych technologii. Jak aplikacja ma dobrą architekturę to sie da.
4. Prawda jest taka że KAŻDY projekt z biegiem czasu się "popsuje". Bo softu nie pisze się dla sztuki tylko dla klienta. Doświadczenie jak sobie z tym radzić jest bardzo wartościowe i zwykle najgorszymi koderami są właśnie tacy artyści, którzy uciekają jak trzeba zrobić coś ciężkiego.

Poza tym fun jest taki że duże projekty mogą dużo. Samemu to sobie możesz pasjansa napisać. A z kilkunastoma kolegami możesz zaprogramować marsjańskiego łazika, z kilkudziesięcioma załogowy statek kosmiczny. Wolisz pisać pasjanse? Twój wybór.

0

Ok, a czy istnieje jakiś video tutorial jee, bo osobiście z takich najlepiej mi sie uczyć, a jak przeglądałem inne posty to głównie były linki do pdf'a oracla i inny stron z gołym tekstem.

2

Istnieje. Bierz tutorial i zaczynaj zarabiać. Będziesz mógł codziennie pić wodę perrier.

0
:-P napisał(a):

Cóż to za frajda dorobić/poprawić jakąś funkcjonalność do wielkiego projektu względem projektowania, i tworzenia pełnych aplikacji.

A co to za frajda tworzyć małe rzeczy? Tworząc pełne malutkie aplikacje będzie się w nich tkwiło wiecznie. Biorąc udział w tworzeniu dużych systemów, zawsze jest szansa na to, że w końcu będzie się je projektować.

0
somekind napisał(a):
:-P napisał(a):

Cóż to za frajda dorobić/poprawić jakąś funkcjonalność do wielkiego projektu względem projektowania, i tworzenia pełnych aplikacji.

A co to za frajda tworzyć małe rzeczy? Tworząc pełne malutkie aplikacje będzie się w nich tkwiło wiecznie. Biorąc udział w tworzeniu dużych systemów, zawsze jest szansa na to, że w końcu będzie się je projektować.

Zalezy co kto rozumie pod pojeciem 'mala rzecz'. Moj aktualny projekt na Androida ma ok. 700 klas (produkcyjnych, nie licze testow), iOS polowe tego (piszemy aplikacje natywne na obie platformy), poniewaz duza czesc kodu konwertujemy automatycznie za pomoca j2objc. Jest to produkt skomplikowany.
W domu mam aplikacje ktora ma 27 klas. Pisalem wczesniej (zanim zaczalem z mobile) m.in. system bilingowy dla operatorow telefonii komorkowej majacy tez ok. 800 klas.

Jesli to jest male, to tak, wole pisac male ale roznorodne projekty. Kobyly pokroju SAP z milionami linii kodu uwazam za nudne ;d

Let the bashing begin.

3

Projekty w jee są nudne. To moje odczucie po 2-letnim doświadczeniu w ich pisaniu. Czasami jest fajnie, ale fun pochodzi jedynie np. z fajnej technologii. Same zadania bardzo rzadko bywają fajne a i człowiek ma odczucie bycia pionkiem na bardzo dużej planszy. Pisząc aplikacje np. na androida gdzie zespół jest mniejszy raz że mamy większy wpływ na to co robimy, a dwa że same aplikacje są ciekawsze. Mimo wszystko nie mam zamiaru chwilowo zmieniać branży, bo mimo tych wad jest ogromna ilość zalet.

Na początku rzucę małe zobrazowanie.

  • Po płaskiej powierzchni potrafi chodzić każdy kto tego chce, a zaczyna już jako dziecko (hello worldy).
  • Wejść pod górkę 100m też potrafi prawie każdy, nie licząc osób strasznie otyłych czy tych którym się po prostu nie chce (aplikacje na androida).
  • Do wejścia na prawdziwą górę nie nadaje się każdy bo jest to spore wyzwanie. Dla wielu wysiłek nieopłacalny (JEE).
  • Szczyty świata zobaczy naprawdę niewiele bardzo dobrych i zdeterminowanych osób (Szczyty szczytów IT).

I podobnie jest w programowaniu. Jeżeli ktoś pisze 10 lat w androidzie, to nadal będzie mu ciężko wejść w ogromny projekt w którym linie liczone są w milionach bo po prostu się pogubi. Łatwo jest utrzymać kod gdy jest 3 programistów, trudniej gdy jest ich 30. W drugą stronę to nie działa. Gdy ktoś pisze ogromne projekty w JEE w dużym zespole, a nagle zostanie przydzielony do stworzenia apki w androidzie z 3 innymi osobami to poczuje się jak na wakacjach. Latał po górach, to na małą górkę zabierze kocyk, prowiant i grilla żeby wypocząć z kolegami.

Napisałem 1 aplikację za pieniążka w androidzie i wejście było dla mnie banalne. Przeczytanie guida od googla + zrozumienie że pamięć jest kluczowa i już można pisać w tym niewielkim frameworku. W JEE cały czas się uczę i nowych technologii raczej szybko mi nie zabraknie.

To jest właśnie powód dlaczego programistom javy płaci się nieźle. Po prostu nie każdemu "się chce".

Oczywiście mógłbym teraz zostać oskarżony że robię coś wbrew sobie dla kasy. Ale raz że ja wiem że dzięki temu będę dużo lepszy niż pisząc proste ale fajne aplikacje, a dwa że żaden rozgarnięty programista nie jest specjalistą i mimo ze pisze w 1 to interesuje się innymi rzeczami. Po 8 godzinach w pracy w 1 technologii nie chce mi się już o niej czytać w domu, ale o czymś innym czemu nie? Dlatego to co lubię piszę w domu a praca jest dla mnie źródłem samorozwoju i chleba.

0
krzysiek050 napisał(a):
  • Wejść pod górkę 100m też potrafi prawie każdy, nie licząc osób strasznie otyłych czy tych którym się po prostu nie chce (aplikacje na androida).
  • Do wejścia na prawdziwą górę nie nadaje się każdy bo jest to spore wyzwanie. Dla wielu wysiłek nieopłacalny (JEE).

Wiele osob mowi ze aplikacje na Andorida sa proste, niezlozone itp., nie wiem skad to sie bierze. A co powiesz o osobie, ktora najpierw pisala 7 lat w Java EE, spring itp., a teraz pisze Android / iOS, projekty w grupie 8 osobowej?
Mi sie po prostu to bardziej podoba. Poznaje wiecej technologii, szybciej widze efekty.

krzysiek050 napisał(a):

Jeżeli ktoś pisze 10 lat w androidzie, to nadal będzie mu ciężko wejść w ogromny projekt w którym linie liczone są w milionach bo po prostu się pogubi. Łatwo jest utrzymać kod gdy jest 3 programistów, trudniej gdy jest ich 30. W drugą stronę to nie działa. Gdy ktoś pisze ogromne projekty w JEE w dużym zespole, a nagle zostanie przydzielony do stworzenia apki w androidzie z 3 innymi osobami to poczuje się jak na wakacjach. Latał po górach, to na małą górkę zabierze kocyk, prowiant i grilla żeby wypocząć z kolegami.

Nie zgodze sie. Fakt, latwiej jest sie odnalezc jak jest 3 programistow (nigdy nie pracowalem w tak malym zespole) bo jest po prostu mniej kodu, pewine struktura bardziej spojna, ale nie sadze, ze kazdy z tych 30 Java EE ma pojecie o calym projekcie. Z reguly jest ktos, kto ogarnia architekture (mozliwe ze u was jestes to ty), kilku ktorzy sa dobrzy ale sie specjalizuja w tym lub tamtym module, i 20 pionkow/code monkeys. Ergo, programista ktory do tej pory pracowal w malych projektach krok po kroku sie odnajdzie, poznawajac po trochu projekt. Nie powiesz mi ze ktos kto pracuje cale zycie w wielkich projektach przychodzi do nowego i od razu wszystko ogarnia? Tam tez jest wszystko porcjowane.

A przynajmniej tak mialem ja, moze jestem len, moze malo zdolny.

Napisałem 1 aplikację za pieniążka w androidzie i wejście było dla mnie banalne. Przeczytanie guida od googla + zrozumienie że pamięć jest kluczowa i już można pisać w tym niewielkim frameworku. W JEE cały czas się uczę i nowych technologii raczej szybko mi nie zabraknie.

Wiadomo, jak sie uzywa tylko frameworka to jest ograniczony. Jednak moje doswiadczenia sa inne (moze zle projekty): w ciagu kariety w EE bylem znalem API, technologie, czytalem cale te specyfikacje EJB JPA i kupe innych, uchodzilem za specjaliste; jednak mi sie znudzilo, zawsze bylo ciagle to samo tylko wiecej (np. z JPA 1 do 2, EJB 3 do 3.1 itp.), czasami sie zdarzalo cos nowego typu CDI, co pozniej sprawialo, ze czesc ludzi pisala tak, czesc tak, nie wszystko ze soba dzialalo itp. itd. Teraz mam odwrotnie, niemal codziennie poznaje cos nowego. Ale moze to kwestia projektow.

0

@krzysiek050, w sumie zgodze sie z jednym: moje doswiadczenia z Java EE sprawily, ze znam sie na wielu rzeczach, o ktorych moi koledzy nie maja pojecia bo nigdy nie musieli sie tym zajmowac. Skalowalnosc, bardziej skomplikowane zapytania, generalnie architektura.

1

Wiele osob mowi ze aplikacje na Andorida sa proste, niezlozone itp., nie wiem skad to sie bierze. A co powiesz o osobie, ktora najpierw pisala 7 lat w Java EE, spring itp., a teraz pisze Android / iOS, projekty w grupie 8 osobowej?

Że jej technologia nie odpowiada lub nie daje rady. Ale mimo powodu zamiast piąć się do góry schodzi stopień w dół.

Mi sie po prostu to bardziej podoba. Poznaje wiecej technologii, szybciej widze efekty.

Jak już powiedziałem, JEE jest nudne i nie wytknąłem tego jako jego zaletę więc pewnie programowanie dla Androida jest ciekawsze.

... ze kazdy z tych 30 Java EE ma pojecie o calym projekcie. Z reguly jest ktos, kto ogarnia architekture (mozliwe ze u was jestes to ty), kilku ktorzy sa dobrzy ale sie specjalizuja w tym lub tamtym module, i 20 pionkow/code monkeys.

Chyba nikt nie zna całego projektu bo on cały czas ewoluuje, ale code monkeys jest niewielu i raczej tylko na starcie. Jeżeli nagle mam przejść pisać inną funkcjonalność to nadal wiem ogół o projekcie i module więc mogę szybko się przystosować. Ale to właśnie o to chodzi, że pracuję w środowisku gdzie nie wszystko mogę pamiętać i pojmować.

Ergo, programista ktory do tej pory pracowal w malych projektach krok po kroku sie odnajdzie, poznawajac po trochu projekt. Nie powiesz mi ze ktos kto pracuje cale zycie w wielkich projektach przychodzi do nowego i od razu wszystko ogarnia?
Nikt kto przychodzi do nowego projektu nie ogarnia wszystkiego od razu, ale ja tego nie powiedziałem. Jednak małe aplikacje od dużych różnią się łatwą architekturą i kawałek brzydkiego kodu można łatwo poprawić. W dużych, czasem mogą zrobić się ogromne zależności i początkowe kilka godzin długu przeradza się w dni lub tygodnie. Sam widziałem to na przykładzie. Źle zaprojektowana aplikacja przynosi masę problemów, ale nie nauczę się znajdywać takich kawałków gdy ich nie zobaczę na oczy. Tego nie da się nauczyć czytając o tym.

Szczerze to nie wiem o jakich technologiach mówisz dla aplikacji androida. Wszystko co do tej pory widziałem to jakieś proste biblioteki wspomagające i nic nad czym trzeba by było posiedzieć z tydzień żeby zrozumieć jak to działa. Skomplikowanych aplikacji też jest mało w markecie, a te które są zwykle używają serwera do większości funkcjonalności a sama apka to jedynie prezentacja treści.

Mówiąc o JEE nie myślę o tym stricte, tylko raczej o pisaniu aplikacji biznesowych a to już bardzo szeroka dziedzina. JEE, Spring, Jasper do szablonów, masa bibliotek do integracji, masa bibliotek do security, JBMP, ESB etc. Gdyby chodziło o samo EJB, JPA, CDI + trochę weba to równie dobrze można by zastąpić to dobrze uporządkowanym phpem.

0

Czyli wniosek z rozmowy jest jeden: programista Java EE > programista Android. Rowniez jako czlowiek, bo jest: niezmarnowany w dazeniu do perfekcji, ciaglego rozwoju, nie nudzi sie latwo, jest stabilny, jest ambitniejszy, ciagle pnie sie do przodu. Masz racje. Przekonales mnie, zmieniam branze.

1

Nie przeliczałbym wielkości na klasy, bo niektórzy w trzech klasach potrafią objąć tyle, co ja w 50, mając przy tym 5 razy więcej kodu. Pisząc o "dużej aplikacji" miałem na myśli taką, która posiada warstwy fizyczne i nie da rady jej uruchomić na jednej maszynie; taką, w której trzeba myśleć o modułowej architekturze i wydajności.

Oczywiście, praca przy takich systemach często jest nudna i polega na mozolnym i nudnym tworzeniu kolejnych ekranów zgodnych z wymaganiami użytkownika przy użyciu jakiegoś frameworka. Ale jeśli siedzi się bliżej projektowania, infrastruktury, albo samemu taki framework tworzy, to jest ciekawiej.

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