Ocena:

Książka jest skierowana do programistów z doświadczeniem w programowaniu obiektowym, którzy chcą przejść do programowania funkcjonalnego. Chociaż jej mocną stroną jest dostarczanie przydatnych wzorców i solidne podejście do projektowania funkcjonalnego, wielu czytelników uważa, że brakuje jej wykonania, krytykując nudną prozę, zbyt uproszczone przykłady i błędy w wyjaśnieniach. Niektórzy uważają, że nie obejmuje ona odpowiednio zaawansowanych technik programowania funkcjonalnego lub nie zapewnia kompleksowego zrozumienia koncepcji.
Zalety:⬤ Używa znaczącego przykładu serwera sieciowego
⬤ Podważa imperatywny sposób myślenia o programowaniu
⬤ Dobry do przejścia z OO do funkcjonalnego
⬤ Obejmuje praktyczne zastosowanie wzorców funkcjonalnych
⬤ Dobrze zredagowany i łatwy do zrozumienia
⬤ Pomocny w codziennym rozwiązywaniu problemów
⬤ Dobre odniesienie dla programistów funkcjonalnych na JVM.
⬤ Powtarzalna i nudna proza
⬤ Nadmiernie uproszczone i niedydaktyczne przykłady kodu
⬤ Brak zaawansowanych technik Scali
⬤ Błędy w tekście
⬤ Słaba realizacja koncepcji
⬤ Nieodpowiednia dla zupełnie początkujących w programowaniu funkcyjnym
⬤ Niejasności w tekście spowodowane złym pisaniem
⬤ Niektórzy uważają, że brakuje w niej zrozumienia programowania funkcyjnego.
(na podstawie 13 opinii czytelników)
Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the Jvm
Rozwiązuj rzeczywiste problemy programistyczne za pomocą ułamka kodu, którego wymaga programowanie obiektowe. Używaj Scali i Clojure do rozwiązywania dogłębnych problemów za pomocą dwóch zestawów wzorców: wzorców obiektowych, które stają się bardziej zwięzłe dzięki programowaniu funkcjonalnemu, oraz wzorców natywnie funkcjonalnych. Twój kod będzie bardziej deklaratywny, z mniejszą liczbą błędów i niższymi kosztami utrzymania.
Języki funkcjonalne mają swoje własne wzorce, które umożliwiają rozwiązywanie problemów przy użyciu mniejszej ilości kodu niż w przypadku programowania obiektowego. Ta książka wprowadza doświadczonego programistę Javy w języki Scala i Clojure: praktyczne języki o jakości produkcyjnej, które działają na JVM i współpracują z istniejącą Javą. Używając zarówno statycznie typowanej, wnioskowanej o typie Scali, jak i dynamicznie typowanego, nowoczesnego Lisp Clojure, zdobędziesz szerokie zrozumienie programowania funkcyjnego.
W przypadku każdego wzorca najpierw zapoznasz się z tradycyjnym rozwiązaniem obiektowym, a następnie zagłębisz się w funkcjonalne zamienniki zarówno w Scali, jak i Clojure. Wzorce te są powszechne w świecie funkcjonalnym i zasługują na to, by stać się częścią twojego zestawu narzędzi do rozwiązywania problemów. Po stronie obiektowej zobaczysz wiele popularnych wzorców, takich jak Command, Strategy i Null Object. Po stronie funkcjonalnej poznasz podstawowe wzorce funkcjonalne, takie jak Memoization, Lazy Sequence i Tail Recursion.
Każdy wzorzec pomaga rozwiązać typowy problem programistyczny. Praca z nimi daje ci zestaw wzorców, które możesz wykorzystać do rozwiązywania problemów napotykanych podczas pisania programów. Na koniec dowiesz się, jak wykorzystać istniejący kod Java w nowych projektach Scala lub Clojure. Możesz zacząć od małych kroków, dodając stopniowo kod funkcjonalny, dzięki czemu będziesz mógł uzupełnić swoją dotychczasową wiedzę o Scalę i Clojure, gdy języki te zyskają popularność na JVM.
Czego potrzebujesz
Clojure 1. 5 i Scala 2.10. Opcjonalnie Eclipse z wtyczkami.