Clojure Applied gives you the practical, realistic advice and depth of field that’s been missing from your development practice. You want to develop software in the most effective, efficient way possible. This book gives you the answers you’ve been looking for in friendly, clear language.
We’ll cover, in depth, the core concepts of Clojure: immutable collections, concurrency, pure functions, and state management. You’ll finally get the complete picture you’ve been looking for, rather than dozens of puzzle pieces you must assemble yourself. First, we focus on Clojure thinking. You’ll discover the simple architecture of Clojure software, effective development processes, and how to structure applications. Next, we explore the core concepts of Clojure development. You’ll learn how to model with immutable data; write simple, pure functions for efficient transformation; build clean, concurrent designs; and structure your code for elegant composition. Finally, we move beyond pure application development and into the real world. You’ll understand your application’s configuration and dependencies, connect with other data sources, and get your libraries and applications out the door.
Go beyond the toy box and into Clojure’s way of thinking. By the end of this book, you’ll have the tools and information to put Clojure’s strengths to work.
This is a book with a solid rationale and an ambitious goal. Amidst the dullness and the futility of Clojure books for beginners, "Clojure Applied" actually targets the medium level of expertise. It is written for people who studied the basics – the syntax and some core concepts – and now are looking for advice on how to put this knowledge together into something meaningful. For that, I applaud the authors.
The book could be better though. It mentions plenty of topics, some quite important, some skippable (subjectively). The coverage is, however, cursory – some sections leave more questions than answers. Sometimes, the material feels rushed as if authors assume too much about the reader's familiarity with the topic.
I'd give this book 3.5, but I round up towards 4 because there are no other books in this niche (except for Joy of Clojure). Before there exists a competition in this segment, Clojure Applied will remain a book I will recommend to those who learn Clojure.
The book positions itself as a bridge from theoretical knowledge of a language to practical development. In fact, there is no any "practical" topics here: we have only very shallow examples (describing some architecture being based on functions that do nothing is normal for this book) and manifestations of some principles. The most exhaustive information we can find here is about organizing data, but in my opinion it's spoiled with strong overuse of records (looks like authors are mostly OOP-guys came from Java). The book contains some (but not many) useful tips and tricks though and introduces (very shallowly again) a reader to some more recent Clojure technologies: reducers, transducers and core.async. To be frankly much more profound explanations of these topics can be easily found in online tutorials. The last chapter that covers deploying to Heroku, Amazon Cloud and so on is totally useless and looks like it is written only to provide the required amount of pages. Making long story short, this book is not worth reading for anyone who has already read Clojure Programming: "Clojure Applied" doesn't include topics more "practical" or "advanced" than one can find in "Clojure Programming".
Clojure Applied is one of the best books I've read on software design in Clojure.
I've read or skimmed many of the introductory Clojure texts which focus mainly on the language itself. Clojure Applied really brings all of the pieces together. It discusses how to take a domain and its interactions and bring it down into applicable components, understanding how state applies to applications and how to handle it, how to work with external services, etc, etc.
Kniha je průvodcem středně pokročilého vývojáře v Clojure do tvorby dobře navržených a udržovatelných služeb a aplikací. Od návrhu doménového modelu a abstrakcí, přes generativní testování po strukturování a kompozici kompletních aplikací. Must read, pokud to s Clojure myslíte vážně.
It's a practical and handy book with well written material. The only problem I saw in this book was over explaining a clear and easy to understand concept which makes me bored
This is an excellent book for learning how to write Clojure for the real world. It will teach you async programming and all of Clojure's directives to support this type of programming. It covers code organization and how to build a live system (maintaining a component-based application where the components are the live aspects of your system, like a database connection).
I took a lot of value from this book as it transforms Clojure from a fun but esoteric language into a practical language to build products for the modern era.
I really like this book. Not as a first Clojure book, but as a second or third. It does an excellent job of covering the practical realities of how to structure a real-world project in Clojure. Which is something that's only implicit in most other tutorials. This got me from being someone who can write algorithms in Clojure to someone who can make real projects with it. Very solid.
Clojure Applied's strongest contributions are in Part II, helping readers through the following topics moreso than other books on Clojure: - Managing state in a language which deeply emphasizes immutability - Parallelism and concurrency - Application wiring
This is a fine Clojure book, but it's unbalanced on seniority of topics.
I read recommendation on the internet that this should be the "second" book about Clojure, just after reading of some beginner's book. I can agree with this just partially.
There are some topics which are very basic and essential: collections, sequences, half of the concurrency stuff (obligatory atoms, refs and agents), or testing via clojure.test.
On the other hand, there are quite advanced topics. Right in the first chapter about domain modeling, you can find topics like multimethods and protocols which rather obscure the main theme of the chapter.
Similarly, in the chapter named Use Your Cores, there are concepts of transducers and pipelines. I have to admit, that my knowledge gap was to wide here and I lost the path. Need to review the topic again (probably repeatedly).
So, my recommendation? You should pick some "other" Clojure book as the "second" one, according a domain of your interest. And you can read bites of Clojure Applied simultaneously.
You've read the beginner Clojure books. You've completed every online tutorial. You've deployed a small Clojure application into production. You have your Clojure newbie badge, but where do you go from here? What's the next step in your progress towards Clojure mastery? This book is your next step. With real-world examples and clear explanations, this book delivers on its tag line: you will cease practicing and become a practitioner.
This is probably the most Pragmatic of Clojure books I had read so far. Would not recommend as a first read, but come back to this after reading an introduction to the language etc. Really gets down to helping to think build applications in the Clojure world. P.S. The appendix is great as well.
Really nice overview of how to level up from advanced beginner to intermediate in Clojure. I'm not quite the target audience, but I learned some new things from the book, and found it really well organised. The chapter on deployment at the end felt a bit tacked on and halfhearted, though.
The books delivers on its title and presents a practical overview of developing in Clojure. However, I felt the Appendix 1 about the roots of Clojure is a bit misplaced in this book.