Jaką książkę wybrać do nauki projektowania, wzorców oraz tworzenia czystego kodu?

0

Hej

Cel tematu jest prosty. Proszę was o wskazanie, które książki warto przeczytać z niżej podanych lub może znacie inne "must read" dla początkującego.

Składni Javy powiedzmy, że się nauczyłem. Przebrnąłem przez Headfirst. Bardzo lubie ten sposób przekazywania wiedzy szczególnie na początku, nie wiem czy z kolejnymi rzeczami dosyć spore "lanie wody" będzie mi się podobało. Chciałbym, żeby było coś wytłumaczone dokładnie, praktycznie i jak krowie na rowie przy jak największej zwięzłości. Chyba każdy tak lubi....

Wcześniej starałem się pisać kod z tutoriali i tym podobnych, obecnie będę pisał własną aplikację webowa na pewno Java(spring) + angular (może bootstrap),
niestety nie mam pojęcia jak poprawnie zaprojektować klasy i czysto tworzyć kod. W ogóle ciężko jest wystartować. Czarna dziura....

Myślę nad książkami związanymi z projektowaniem aplikacji, tworzeniem czystego kodu oraz wzorcami projektowymi.
Na oku mam:
"Czysty Kod"- R.C.Martin
"Zwinne wytwarzanie oprogramowania. Najlepsze zasady, wzorce i praktyki"
"Head First Object-Oriented Analysis and Design"
"Head First Design Patterns"
"Design Patterns: Elements of reusable Object-Oriented Software"- GoF
Jakiś prosty kursik z podstaw UML i projektowania logiki aplikacji np. http://agilemodeling.com/style/

Zastanawiam się na ile warto brnąc przez całe książki jak np "Czysty kod" gdzie znalazłem gdzieniegdzie pdf'y z prezentacjami/ streszczeniami. Przykład "Dobre zasady tworzenia oprogramowania w kropelce"-Łukasz Baran na pewno nie jest to 100% wyczerpany materiał.

Która z powyższych będzie najlepsza na początek? Które kolejne? Potrzebuję czegoś co wskaże mi drogę i poprowadzi, ale nie będzie zasypywało zbędnymi rzeczami,które na ta chwile mi się nie przydadzą

1

Zależy co chcesz, nie znam tego PDF-u Łukasza Barana, ale w książce Wuja Boba masz nie tylko co dobrze jest robić, ale i dlaczego. A ponieważ to co nalezy robić nie działa we wszystkich przypadkach, to wtedy wchodzi dlaczego, więc dlaczego sa przypadki, ze coś lepiej jest zrobic inaczej.

0

Tak z pewnością wolę wiedzieć po co i dla czego, dzięki temu zapamiętuje. Także zaopatrzę się w "Czysty kod". Co natomiast z innymi książkami? Które z pozostałych warto przeczytać?

2

"Head First Design Patterns" - polecam, zwłaszcza jeśli podobała Ci się inna z tej serii. Wzorce projektowe niewątpliwie warto znać, a tutaj masz podane przykłady wprawdzie abstrakcyjne, ale dobrze pokazujące, po co te wzorce są.

"Design Patterns: Elements of reusable Object-Oriented Software" - dla mnie to raczej encyklopedia niż książka ucząca czegoś, zwłaszcza osobę początkującą. Przykłady bardzo do mnie nie trafiały, archaiczne tematycznie i częściowo technologicznie (niektóre przykłady w języku Smalltalk - zna ktoś?), w każdym rozdziale są jakieś realne zastosowania wzorca pochodzące - tak jak książka - sprzed ponad 20 lat... Zaglądam do tego jedynie przed rozmowami kwalifikacyjnymi.

0

Widzę chyba, że jednak zostanę wierny Head First, dużo ludzi poleca przymierzam się do takiego zestawu na kolejne miesiące czytania:
Jako pierwsze: "Czysty kod" wuja boba + "Head First Object-Oriented Analysis and Design"
Jak skumam 2 pierwsze to kolejno wezmę się za "Head First Design Patterns".

Tutaj jeszcze zastanawiam się nad wyborem "Head First OOA&D" vs. "zwinne wytwarzanie oprogramowania" Martina. Ze spisu treści wynika, żę content dosyć podobny z tym, że u Martina jest dużo o Agile i sa zawarte tez wzorce projektowe, więc materiał sie powtórzy z HF Design patterns. Zastanawiać się na "zwinnym" czy raczej odpuścić sobie na późniejsze etapy nauki?

1

Design Patterns: Elements of reusable Object-Oriented Software"- GoF

Za każdym razem jak to widzę/słyszę to zastanawiam się czy ktokolwiek z polecających przeczytał tą książkę, czy każdy poleca bo tak wypada ;) Zamiast tego polecam "Refactoring to Patterns" Joshua Kerievsky, skupia się bardziej na tym kiedy użyć którego wzorca i dlaczego, a jak to zrobić to tylko szczegół. IMO bardziej sensowne podejście. Z tego co wiem nie ma wersji polskiej.

Polecam też "Czysty Kod", to jest podstawa. W prawdziwym życiu pewnie przyda ci się też "Working Effectively with Legacy Code", chociaż niektóre fragmenty są już mało aktualne (zamiast manualnych refactoringów, są do tego narzędzia).

Jakiś prosty kursik z podstaw UML i projektowania logiki aplikacji np. http://agilemodeling.com/style/

Przez 5 lat pracy UML nie przydał mi się ani raz, ostatni raz użyłam na studiach. Jasne, każdy rysuje jakieś strzałki i kwadraty, ale pewnie nie ma to wiele wspólnego z porządnym UMLem ;)

Zwinne wytwarzanie oprogramowania. Najlepsze zasady, wzorce i praktyki

Nie czytałam, ale patrząc po spisie treści trochę mi się kojarzy z mało przydatnymi rzeczami ze studiów. Na temat SOLID jesteś w stanie wygooglać dużo dobrych materiałów, uncle bob ma na ten temat artykuły na swoim blogu, to chyba będzie najbardziej wartościowe z tej książki.

Ze swojej strony polecam

Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja - Sandro Mancuso

Czytałam po angielsku, więc nie wypowiadam się na temat jakości tłumaczenia, ale jest to bardzo fajna książka i żałuję, że nie przeczytałam jej parę lat wcześniej. Bardzo pragmatyczne podejście do wielu tematów i przydatne rady dotyczące kariery i rozwoju i "miękkich" aspektów pracy, takich jak dobre praktyki czy przekonywanie do nich. Jeśli miałbyś wybrać tylko dwie to polecam zacząć od tej, a potem "Czysty Kod". Jako trzecią "Refactoring to Patterns".

0

Z UMLem bywa różnie, ja trochę diagramów namalować musiałem (ECSS-E-ST-40C ;] ), niemniej faktycznie w większości sytuacji się nie przyda.

0

@weralabaj z tym UML'em gdziekolwiek nie czytałem o nim to pojawia się rada, że uml trzeba dostosować do siebie, a nie siebie do umla i można jak najbardziej wtrącać własne inwencje twórcze :) więc te kwadraciki i prostokąty mają sens. Ja przeczytałem o activity diagram ( schemat blokowy, szał pał hehe ), use case diagram, i class diagram, tyle wystarczy. Chcę tego używać do zaplanowania, zobrazowania sobie aplikacji czy jakiegoś rozwiązania, a nie do tworzenia "profesjonalnej dokumentacji" :)
Dzięki wielkie za rady dopisałem do swojej listy: "Refacotring to patterns" i "Software Craftsman". Obecnie czytam Clean Code i Hed First OOA&D.

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