Értékelés:

A könyv olyan objektumorientált háttérrel rendelkező fejlesztőknek szól, akik át szeretnének térni a funkcionális programozásra. Bár a könyv erősségei közé tartozik, hogy hasznos mintákat és a funkcionális tervezés szilárd megközelítését nyújtja, sok olvasó hiányolja a kivitelezést, és az unalmas prózát, a túlzottan leegyszerűsített példákat és a magyarázatokban található hibákat kritizálják. Egyesek úgy vélik, hogy nem foglalkozik megfelelően a haladó funkcionális programozási technikákkal, illetve nem nyújt átfogó képet a fogalmakról.
Előnyök:⬤ Értelmes webkiszolgáló példát használ
⬤ Kihívja az imperatív programozási gondolkodásmódot
⬤ Jó az OO-ról a funkcionálisra való áttéréshez
⬤ A funkcionális minták gyakorlati alkalmazásával foglalkozik
⬤ Jól szerkesztett és könnyen érthető
⬤ Hasznos a mindennapi problémamegoldáshoz
⬤ Jó referencia a JVM-en dolgozó funkcionális programozók számára.
⬤ Ismétlődő és unalmas prózai rész
⬤ Túlságosan leegyszerűsített és unidiomatikus kódpéldák
⬤ Hiányoznak a fejlett Scala technikák
⬤ Hibák a szövegben
⬤ Gyenge a fogalmak kivitelezése
⬤ Nem alkalmas a funkcionális programozás teljesen kezdő alkalmazottainak
⬤ Kétértelműségek a szövegben a rossz írás miatt
⬤ Egyesek szerint nem eléggé érthető a funkcionális programozás megértéséhez.
(13 olvasói vélemény alapján)
Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the Jvm
Valós programozási problémák megoldása a tiszta objektumorientált programozáshoz szükséges kód töredékével. A Scala és a Clojure segítségével mélyreható problémákat oldhat meg kétféle mintakészlet segítségével: objektumorientált mintákkal, amelyek a funkcionális programozással tömörebbé válnak, és natívan funkcionális mintákkal. A kódja deklaratívabb lesz, kevesebb hibával és alacsonyabb karbantartási költségekkel.
A funkcionális nyelveknek megvannak a saját mintáik, amelyek lehetővé teszik, hogy kevesebb kóddal oldjon meg problémákat, mint az objektumorientált programozás önmagában. Ez a könyv megismerteti Önt, a tapasztalt Java-programozót a Scalával és a Clojure-ral: praktikus, gyártásra alkalmas nyelvekkel, amelyek a JVM-en futnak, és együttműködnek a meglévő Javával. Mind a statikusan tipizált, típuskövetkeztetésű Scala, mind a dinamikusan tipizált, modern Lisp Clojure használatával széleskörű ismereteket szerezhet a funkcionális programozásról.
Minden egyes minta esetében először a hagyományos objektumorientált megoldást nézzük meg, majd a Scala és a Clojure funkcionális helyettesítését. Ezek a minták gyakoriak a funkcionális világban, és megérdemlik, hogy a problémamegoldó eszköztárad részévé váljanak. Az objektumorientált oldalon számos gyakori mintát fogsz látni, mint például a Command, Strategy és a Null Object. A funkcionális oldalon olyan alapvető funkcionális mintákat fogsz megtanulni, mint a Memoization, Lazy Sequence és Tail Recursion.
Mindegyik minta egy-egy gyakori programozási probléma megoldását segíti. Ezek átdolgozásával olyan mintákat kapsz, amelyeket a programírás során felmerülő problémák megoldására használhatsz. Végül megtanulja, hogyan dolgozhatja be meglévő Java-kódját új Scala- vagy Clojure-projektekbe. Kicsiben kezdheted, apránként funkcionális kódot adva hozzá, így a meglévő tudásodat kiegészítheted a Scalával és a Clojure-ral, ahogy ezek a nyelvek egyre népszerűbbek lesznek a JVM-en.
Amire szüksége van
Clojure 1. 5 és Scala 2. 10. Opcionálisan Eclipse pluginekkel.