What this book covers
Chapter 1, Live Programming with Clojure, helps you review how the Clojure basics work with different data types, how the code control flows, and also how to integrate third-party libraries. You probably know this already, but you simply cannot start a good cookbook without a strong base.
Chapter 2, Interacting with Collections, covers selecting, filtering, transforming, merging, joining, and how to become lazy. Laziness is one of the greatest Clojure feature, and we want to make sure that you will always be lazy enough.
Chapter 3, Clojure Next, introduces you to macros, advanced macros, transducers (what transducers are, anyway), and logic programming. It covers preprocessing and postprocessing of Clojure data as code features.
Chapter 4, File Access and the Network, covers StreamingQueues and real-time networking, which gives you the power to think about distributed systems and how to connect your IoT devices. It also covers files and how to manipulate files to help you with lightweight processing for interconnections.
Chapter 5, Working with Other Languages, introduces you to the basic Clojure tooling that allows you to easily integrate code written in other languages, such as Java, Scala, and .NET, all the way to Clojure on the JavaScript runtime, ClojureScript.
Chapter 6, Concurrency and Parallelism, helps you learn multiple ways of splitting jobs among Clojure processes, interacting with Scala-like actors, and to also sharing states between different instances. Of course, this chapter covers the simplest way of writing a parallel code in Clojure, core.async.
Chapter 7, Advanced Tips, helps you if you want to know how to perform not only pair programming but also shared real-time pair programming. You will also see how to hack the Clojure source code yourself.
Chapter 8, Web Applications, takes you through web applications, web services, or API endpoints or whatever you call them. You also learn how to use nice-looking widgets with Vaadin, how to write rest-like APIs with Liberator, and use Immutant, a set of server-side services at the finger of your Clojure code.
Chapter 9, Testing, not only helps you with validating your code but also with using random pattern testing for the cases you had not thought about. This chapter also introduces behavior-driven development in Clojure with some OpenCV validation, and finally, explains how to benchmark the speed of your code.
Chapter 10, Deployment and DevOps, covers dockerizing your Clojure code, making it run locally as it would in the Cloud, putting real-time monitoring in place for your critical services, and finally, your favorite Amazon tricks are also covered here.