Aplikacja JAVA od zera - best practicles.

Aplikacja JAVA od zera - best practicles.
0

Dzień dobry, mam pytanie odnośnie pisania aplikacji java od zera, co mam na myśli pisząc "od zera" mianowicie bez żadnych frameworków (spring). Chodzi głównie o aplikacje, które nie zawsze wymagają działania na bazie danych.

Szczegółowe pytania:

  1. Czy warto korzystać z toolsów typu Maven, Gradle, Ant? Czy lepiej samemu zarządzać bibliotekami?
  2. Czy posiadacie własne przemyślenia / metodyki, które pomagają w pisaniu aplikacji w "czystej" javie?
MO
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
0
Cosiek napisał(a):

Dzień dobry, mam pytanie odnośnie pisania aplikacji java od zera, co mam na myśli pisząc "od zera" mianowicie bez żadnych frameworków (spring). Chodzi głównie o aplikacje, które nie zawsze wymagają działania na bazie danych.

Szczegółowe pytania:

  1. Czy warto korzystać z toolsów typu Maven, Gradle, Ant? Czy lepiej samemu zarządzać bibliotekami?
  2. Czy posiadacie własne przemyślenia / metodyki, które pomagają w pisaniu aplikacji w "czystej" javie?
  1. Warto.
  2. Jak piszesz apki desktopowe to wzorzec MVC pomoże. Jak piszesz webowo w JavaEE to wzorzec ECB pomoże.
jarekr000000
Jak w czystej javie to raczej miejsca na JavaEE nie ma - to jest nawet bardziej brudne od Springa.
MO
Adam Bien ma chyba inne zdanie jezeli chodzi o JaveEE
MO
Zaryzykuje stwierdzeniem, ze z tego powodu, iz fan base Javy dzieli sie na 3 obszary - tych co ja uwielbiaja (np. Adam), tych co ja obrazaja (np. Ty) i tych co maja to gdzies. Jednak chetnie uslysze Twoje uzasadnienie.
jarekr000000
Ale tu akurat nie o javę chodzi.
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 17 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
1

Narzędzia do zarządzania bibliotekami to bezpieczeństwo - ręcznie ściągając masz zawsze jakiś procent szansy, że ściągniesz nie wiadomo co z niewiadomego miejsca - literówka w nazwie i nieszczeście gotowe.
Maven repo itp. to jednak dość sprawdzone źródła - nie wszystkie biblioteki tam sa bezpieczne, ale zasadniczo wiadomo jaką mają historię.
Tak samo w przypadku wykrycie błędów - mając toola podbijasz tylko numer wersji. Gradle, maven są ok.

Jak robisz aplikację dla uczenia się i do to lej na metodyki i best practices. Nic tak nie nauczy Cie dobrych wzorców jak zrobienie czegoś źle. Nie mówiąc o tym, że krążące obecnie różne "wzorce" (włączając klasyczne design patterns) są w pewnej części przestarzałe.

Polecam stosowanie repozytorium kodu od dnia 0. Github i gotowe. Nie ma się czego wstydzić, możesz sobie wziąć zupełnie głupiego nicka, żeby się nie stresować. Commituj przynajmniej raz na 2 godziny prac. Najlepiej jak się kompiluje.

Testy raczej warto robić i uczyć się pisania testowalnego kodu.


jeden i pół terabajta powinno wystarczyć każdemu
KR
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 dni
  • Postów:166
0

"Czy lepiej samemu zarządzać bibliotekami?"
Lepiej używać Gradle/Maven bo inaczej jak nie będziesz sam to się okazuje, że wszyscy muszą zarządzać bibliotekami (i pisać jak krok po kroku przygotować środowisko ^^').
Poza zarządzaniem narzędzia te oferują automatyzację (powtarzalność), więc nawet w małym projekcie pewnie się zwróci czas poświęcony na naukę/używanie narzędzi budujących.

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
0

Zasady SOLID są bardzo wazne, szczególnie pierwsze pięć :D

  1. Stosowanie polimorfizmu zamiast if-logi. Dla przykładu masz aplikace która wylicza koszty parkowania, ale dla rożnych kierowców sa rózne koszty. Zamiast pisać ify, robisz interfejs z kilkoma implementacjami, robisz np. mapę która będzie wiązała typ kierowcy z implementacją kalkulatora, dzięki czemu nie musisz pisac ifów.
    EDIT:
    ifologia tzn nadmierne stosowanie ifów gdzie bardziej by pasował np. polimorfizm, umiarkowania ilość ifów nie jest szkodliwa społecznie :D
    2)Stosowanie niemutowalnych struktor danych (choć nie zawsze się da)
    3)Kompozycja nad dziedziczenie (generalnie w 99% dziedziczenie to odchody)
    4)Wstrzykiwanie zależności przez konstruktor, settery to zło
    5)Nauczysz się popełniając błędy

"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
edytowany 2x, ostatnio: scibi92
Zobacz pozostałe 3 komentarze
R3id4k
Jak to powiedział pewien Linus: "The fact is, there aren't just two sides to any issue, there's almost always a range of responses, and IT DEPENDS is almost always the right answer in any big question."
S9
Ale ja nie twierdze że ify sa zawsze zle, termin "ifologia" odnosi się do stosowania nadmiernej ilości ifow i tam gdzie nie pasują. W przykładzie podałem chodziło o tworzenie rozszerzalnego kodu :)
jarekr000000
Nie dam tego w poście, żeby nie siać zamętu. Generalnie ify w javie są w zasadzie zawsze złe. Ify w kotlinie i scali są już ok. Bo to zupełnie inne ify. Żeby było śmieszniej to i w Scali i w Kotlinie używa się ifa (i pętli) dużo mniej. Żeby było jeszcze śmieszniej to javowy operator trójargumentowy c ? t : f jest dobry. Tylko tak sobie czytelny w kodzie biznesowym.
S9
Czemu ify w Javie są "w zasadzie zawsze złe"?
jarekr000000
@scibi92 bo to cholerne statementy, a nie wyrażenia, łatwo przez to o czymś zapomnieć (np. w else).
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
  1. Tak. Nie.
  2. http://www.foundbit.com/pl/zasoby/programowanie/podstawy/articles/zasady-kodowania.html
    "Effective Java" - Joshua Bloch, w tym roku wyszło 3-cie wydanie
    "Java Coding Guidelines" - praca zbiorowa
edytowany 1x, ostatnio: vpiotr

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.