Bewertung:

Das Buch richtet sich an Entwickler mit einem objektorientierten Hintergrund, die in die funktionale Programmierung einsteigen wollen. Es hat zwar seine Stärken, indem es nützliche Muster und einen soliden Ansatz für funktionales Design bietet, aber viele Leser finden die Ausführung mangelhaft und kritisieren langweilige Prosa, zu vereinfachte Beispiele und Fehler in den Erklärungen. Einige sind der Meinung, dass es fortgeschrittene funktionale Programmiertechniken nicht angemessen abdeckt oder ein umfassendes Verständnis der Konzepte vermittelt.
Vorteile:⬤ Verwendet ein aussagekräftiges Webserver-Beispiel
⬤ Hinterfragt die Denkweise der imperativen Programmierung
⬤ Gut für den Übergang von OO zu funktional
⬤ Deckt die praktische Anwendung funktionaler Muster ab
⬤ Gut aufbereitet und leicht verständlich
⬤ Hilfreich für die tägliche Problemlösung
⬤ Gute Referenz für funktionale Programmierer auf der JVM.
⬤ Sich wiederholende und langweilige Prosa
⬤ Übervereinfachte und unidiomatische Code-Beispiele
⬤ Fehlende fortgeschrittene Scala-Techniken
⬤ Fehler im Text
⬤ Schlechte Ausführung von Konzepten
⬤ Nicht für komplette Anfänger in funktionaler Programmierung geeignet
⬤ Mehrdeutigkeiten im Text aufgrund schlechter Schreibweise
⬤ Einige glauben, dass es am Verständnis funktionaler Programmierung vorbeigeht.
(basierend auf 13 Leserbewertungen)
Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the Jvm
Lösen Sie reale Programmierprobleme mit einem Bruchteil des Codes, den reine objektorientierte Programmierung erfordert. Verwenden Sie Scala und Clojure, um tiefgreifende Probleme mit zwei Gruppen von Mustern zu lösen: objektorientierte Muster, die durch funktionale Programmierung prägnanter werden, und nativ funktionale Muster. Ihr Code wird deklarativer, mit weniger Fehlern und geringeren Wartungskosten.
Funktionale Sprachen haben ihre eigenen Muster, mit denen Sie Probleme mit weniger Code lösen können als mit objektorientierter Programmierung allein. Dieses Buch führt Sie, den erfahrenen Java-Programmierer, in Scala und Clojure ein: praktische, produktionsreife Sprachen, die auf der JVM laufen und mit dem vorhandenen Java interagieren. Indem Sie sowohl das statisch typisierte, typgeleitete Scala als auch das dynamisch typisierte, moderne Lisp Clojure verwenden, werden Sie ein breites Verständnis der funktionalen Programmierung erlangen.
Für jedes Muster werden Sie zunächst die traditionelle objektorientierte Lösung kennenlernen und sich dann mit den funktionalen Ersatzlösungen in Scala und Clojure beschäftigen. Diese Muster sind in der funktionalen Welt weit verbreitet und verdienen es, Teil Ihres Problemlösungs-Toolkits zu werden. Auf der objektorientierten Seite werden Sie viele gängige Muster sehen, wie Command, Strategy und Null Object. Auf der funktionalen Seite werden Sie zentrale funktionale Muster wie Memoization, Lazy Sequence und Tail Recursion kennenlernen.
Jedes Muster hilft Ihnen, ein gängiges Programmierproblem zu lösen. Wenn Sie sie durcharbeiten, erhalten Sie eine Reihe von Mustern, die Sie zur Lösung von Problemen verwenden können, auf die Sie beim Schreiben von Programmen stoßen. Schließlich lernen Sie, wie Sie Ihren vorhandenen Java-Code in neue Scala- oder Clojure-Projekte einbinden können. Sie können klein anfangen und nach und nach funktionalen Code hinzufügen, so dass Sie Ihre vorhandenen Kenntnisse mit Scala und Clojure ergänzen können, wenn diese Sprachen auf der JVM an Popularität gewinnen.
(Was Sie brauchen)
Clojure 1. 5 und Scala 2. 10. Optional: Eclipse mit Plugins.