Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
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:
Czy warto korzystać z toolsów typu Maven, Gradle, Ant? Czy lepiej samemu zarządzać bibliotekami?
Czy posiadacie własne przemyślenia / metodyki, które pomagają w pisaniu aplikacji w "czystej" javie?
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:
Czy warto korzystać z toolsów typu Maven, Gradle, Ant? Czy lepiej samemu zarządzać bibliotekami?
Czy posiadacie własne przemyślenia / metodyki, które pomagają w pisaniu aplikacji w "czystej" javie?
Warto.
Jak piszesz apki desktopowe to wzorzec MVC pomoże. Jak piszesz webowo w JavaEE to wzorzec ECB pomoże.
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.
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.
"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.
Zasady SOLID są bardzo wazne, szczególnie pierwsze pięć :D
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
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."
scibi92
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 :)
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.