Shop Just Ice Tea
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows.
Buy New
$38.00
FREE delivery Saturday, April 25
Ships from: Amazon.com
Sold by: Amazon.com
$38.00
FREE delivery Saturday, April 25
Or Prime members get FREE delivery Tomorrow, April 21. Join Prime
Only 2 left in stock (more on the way).
$$38.00 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$38.00
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Shipper / Seller
Amazon.com
Amazon.com
Shipper / Seller
Amazon.com
Returns
FREE 30-day refund/replacement
FREE 30-day refund/replacement
Quick refund
Usually issued within 24 hours. See exceptions
FREE return
At least one free return option available.
Convenient dropoff
At any of our 50,000 US locations.
See return policy
Gift options
Available at checkout
Available at checkout This item is a gift. Change
At checkout, you can add a custom message, a gift receipt for easy returns and have the item gift-wrapped
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$18.00
Paper cover. A little wear to cover at corners - spine straight and un-creased - pages tightly bound and unmarked - not ex-library. All proceeds benefit our public library in Hillsboro, OR. Paper cover. A little wear to cover at corners - spine straight and un-creased - pages tightly bound and unmarked - not ex-library. All proceeds benefit our public library in Hillsboro, OR. See less
FREE delivery April 24 - 28. Details
Only 1 left in stock - order soon.
$$38.00 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$38.00
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Ships from and sold by tanasbooks.
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

  • Clojure Applied: From Practice to Practitioner

Follow the authors

Get new release updates & improved recommendations
Something went wrong. Please try your request again later.

Clojure Applied: From Practice to Practitioner 1st Edition

4.6 out of 5 stars (53)

{"desktop_buybox_group_1":[{"displayPrice":"$38.00","priceAmount":38.00,"currencySymbol":"$","integerValue":"38","decimalSeparator":".","fractionalValue":"00","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"molFnSwh4Nh7QAQGsQW%2BXpi3KDKFxLPeIuXPdzj9m0e0FLeBJlGHkOuGkg1TEEP%2FNfjg9U%2B9pozbFq9%2FKcTf7B0oUzDWy%2BdhJxdVMCZn97z4rcvaJI%2BmKKse2W%2Fd2LTjLypbnaH6GXR5xLQaMYptiA%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$18.00","priceAmount":18.00,"currencySymbol":"$","integerValue":"18","decimalSeparator":".","fractionalValue":"00","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"molFnSwh4Nh7QAQGsQW%2BXpi3KDKFxLPesSOGZr5obL%2BUz%2BiwQARRns%2FTmypbWMDkWlUHlIo3Ye%2BVRZDxmDOp9yUK0wkJpOCRUOwNo3yxbMgewFN2lXsFT2mQ9OrXm9fpKIoK3aU30SQLpgK4mgCFDQKRUOG7qFae%2Bo8lTVCippPAeHg%2BBt%2FzhQ%3D%3D","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

Think in the Clojure way! Once you're familiar with Clojure, take the next step with extended lessons on the best practices and most critical decisions you'll need to make while developing. Learn how to model your domain with data, transform it with pure functions, manage state, spread your work across cores, and structure apps with components. Discover how to use Clojure in the real world, and unlock the speed and power of this beautiful language on the Java Virtual Machine.

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.

Dive into 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, explore the core concepts of Clojure development: learn how to model your domain with immutable data; choose the ideal collection; and write simple, pure functions for efficient transformation. Next you'll apply those core concepts to build applications: discover how Clojure manages state and identity; spread your work for concurrent programming; and create and assemble components. Finally, see how to manage external integration and deployment concerns by developing a testing strategy, connecting with other data sources, and getting 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.

What You Need:

To follow along with the examples in the book, you will need Clojure 1.6, Leinegen 2, and Java 6 or higher.
Sponsored

Frequently bought together

This item: Clojure Applied: From Practice to Practitioner
$38.00
Get it as soon as Saturday, Apr 25
Only 2 left in stock (more on the way).
Ships from and sold by Amazon.com.
+
$42.55
Get it as soon as Saturday, Apr 25
In Stock
Ships from and sold by Amazon.com.
+
$43.49
Get it as soon as Saturday, Apr 25
Only 3 left in stock (more on the way).
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy together.

Customers also bought or read

Loading...

From the Publisher

Image

Q&A with Ben Vandgrift and Alex Miller, authors of Clojure Applied

Why did we write Clojure Applied?

When Ben was first getting to know Clojure, he found himself awash in tutorials about syntax, toy example applications, and a few places to start. These things were immensely helpful, and he was grateful to their authors.

Eventually, there came a time when he wanted to apply Clojure to a real-world application. Something for a client. Something production-quality and deployable. The publicly available information grew a bit thin. Ben wanted to learn how to think in Clojure, not just at the function level, but across the board. He wanted to take this beautiful language and apply it to something bigger than a bread box.

Fast forward a couple of years. On several occasions, Ben and Alex had spoken about this problem. They referred to it as the 201 Problem. Programmers who understood the basic syntax and had a fair amount of experience in software development couldn't connect the dots up to a large-scale project in Clojure.

During one of these conversations Alex said, “We need to decrease the angle of the ramp,” and the phrase stuck. Clojure is perfectly capable of solving life-size problems—wonderfully and elegantly—but developers needed a few more lines between the dots.

We joined forces on a quest to go beyond the syntax and provide a guide to practical application of the Clojure language.

Is this book's approach idiomatic?

Together, we have used Clojure to build a number of applications from small to large. While we believe the style and forms we describe are in wide use, it’s difficult to say what is and isn’t idiomatic, especially among members of an innovative and opinionated community.

Every application is unique, but they share common problems and patterns. Whether you begin with the data structures and push outward, or at the component or subsystem level and slice downward, you’re going to need to make decisions about which processes to push into the background, how to manage state, component life cycles, inter-process communication, etc. There are many common points of decision when constructing an application.

Instead of laying down hard and fast rules, we focus on the Clojure-specific tradeoffs related to each topic. We recommend some practices, introduce several advanced concepts as options, and provide context to help support good decision-making. This approach will apply to all Clojure developers in their professional practice.

Additionally, we try and impress on the readers the flow of Clojure development. Developing in Clojure means adopting some of its values and history. We want them to be able to swim with the current, rather than against it.

As a growing community, why call out libraries and tools that may change?

In Clojure Applied, we point out several libraries that we use regularly for communication, configuration management, validation, and other functionality most applications will need. Yes, they may change, and our recommendations might change with them. That’s the nature of open source software. We have chosen libraries that are useful right now.

Image

Over time, we might choose differently. Other tools may come to the fore.

When that happens, we’ll update the readers via the book's web site, and through digital updates and future editions. Clojure is mature for its age, but much of its ecosystem is still a moving target. As authors and contributors, we have to move with it.

Our goal was to provide a leg up, a good start. A talented software developer will do their own homework and make their own choices around tooling. It’s nice, however, to have a few places to start. As we mentioned earlier, our goal is to decrease the angle of the ramp. It’s equally important that we don’t try and reinvent wheels—especially early in our practice when learning a new language.

Any final words?

Solving a life-size problem is entirely possible in Clojure—simpler, in fact, than it would be in many other languages. Getting to that point from bare syntax is the journeyman's tale. We've had the good fortune to work alongside many skilled Clojurists, and learn from their examples.

Not everyone is this lucky, and so we're passing on our hard-won knowledge. This is why we’ve written Clojure Applied. We hope you enjoy the journey, and we'll see you on the other side.

Editorial Reviews

Review

"Starting your first Clojure job? Kicking off your first big open source Clojure project? This is the book you need to get started building Clojure projects." - Bridget Hillyer

"While other Clojure books enumerate the beautiful, pristine qualities derived from immutability and functional programming, this book is about getting your hands very dirty. Clojure Applied takes you step by step through the process of designing, writing, and shipping robust high-performance production systems." -
David Nolen

About the Author

Ben Vandgrift struggles daily with a compulsion to solve problems. His decades-old journey has most recently led him to Clojure, allowing him to solve many software problems elegantly and efficiently. He works as a software engineer when he's not being mauled by his rescue panther.

Alex Miller was about to give up on programming as irretrievably complex when he found Clojure, which renewed his love for code. Alex works by day on improving Clojure and spends his off hours organizing the Strange Loop conference and playing music with his kids.

Product details

  • Publisher ‏ : ‎ Pragmatic Bookshelf
  • Publication date ‏ : ‎ October 6, 2015
  • Edition ‏ : ‎ 1st
  • Language ‏ : ‎ English
  • Print length ‏ : ‎ 240 pages
  • ISBN-10 ‏ : ‎ 1680500740
  • ISBN-13 ‏ : ‎ 978-1680500745
  • Item Weight ‏ : ‎ 2.31 pounds
  • Dimensions ‏ : ‎ 7.5 x 0.51 x 9.25 inches
  • Best Sellers Rank: #1,977,269 in Books (See Top 100 in Books)
  • Customer Reviews:
    4.6 out of 5 stars (53)

About the authors

Follow authors to get new release updates, plus improved recommendations.
Sponsored

Customer reviews

4.6 out of 5 stars
53 global ratings
Sponsored

Top reviews from the United States

  • Reviewed in the United States on April 25, 2017
    Format: PaperbackVerified Purchase
    Great step by step on actually implementing a Clojure project from start to finish
    3 people found this helpful
    Report
  • Reviewed in the United States on October 21, 2016
    Format: PaperbackVerified Purchase
    This book filled in some gaps I was missing. Really well written.
    3 people found this helpful
    Report
  • Reviewed in the United States on September 17, 2015
    Format: PaperbackVerified Purchase
    While I love the content that I've been able to read so far, I was a bit confused to find out that an extra copy of pages 15-30 come BEFORE page 1. Stranger things have happened in printing I guess... Anyway, I assume this to be an issue w/ the printers and I hope that it's fixed in later printings but it is a bit disconcerting and makes one doubt the quality of the content right off the bat.
    Several corners of the book were damaged in transit but this doesn't detract from the content of course.
    So far this is definitely an intermediate -> advanced level book (which is fantastic, btw!)
    5 people found this helpful
    Report
  • Reviewed in the United States on March 2, 2016
    Format: PaperbackVerified Purchase
    Really great book
    5 people found this helpful
    Report
  • Reviewed in the United States on September 27, 2015
    Format: Paperback
    Clojure Applied fills an important niche in the ecosystem of Clojure books by doing a couple things really, really well:

    1. The book conveys how to write programs in "Clojure style" exhibiting good judgment and taste. Clojure is not an especially difficult language to learn in terms of its constructs and syntax, but for many newcomers, it is difficult to learn how think and solve problems in the natural Clojure way. Furthermore, there are often several features in Clojure with overlapping functionality (e.g., protocols vs multimethods, records vs maps), and this book provides clear guidelines about the tradeoffs and which features are better to use when.

    2. The book is quite open about a number of "gotchas" in the language, and helps you avoid those pitfalls.

    Overall, the book is the next best thing to pairing with an expert Clojure programmer, and will likely shave months off of your Clojure ramp-up time.

    I rated the book 5 stars because there's nothing else on the market that offers exactly what this book does, and I consider this book an important step forward for the Clojure community. However, I should note that the book is by no means perfect. There is still room for improvement:

    * Chapter 6 is too high-level, and doesn't give enough specific examples. For example, the chapter talks about the importance in large projects of breaking out protocols, data structures, and implementations into separate namespaces, but doesn't really show how to do this. I personally have found it incredibly difficult to break large projects into separate namespaces without creating cyclic dependencies, and I consider this a real weakness of Clojure. Yet, I've heard Alex Miller and a few others say it's not really a big deal to accomplish this separation of concerns without creating cyclic dependencies. I was truly looking forward to discovering from this book how he pulls that off, figure out what he does differently than I, but the book contained no concrete details on this important matter.

    * No discussion of debugging strategies, and what does and does not work for debugging when using Clojure on large-scale projects. Specifically, I expected this book to address the question of how to handle errors in core.async-driven programs. It is not at all obvious how to use channels in a robust way that is fault-tolerant, and given the amount of coverage this book gives to core.async, fault tolerance should also have been covered.

    * There were a few random things that I thought were misleading and could benefit from an additional sentence or two of clarification. For example, "The keep function combines the capabilities of map and filter in one convenient package, applying a function to each element and keeping any non-nil results." The problem with this sentence is that if you combine map and filter, you would end up keeping all non-falsey results, not all non-nil results. I think most readers will either not notice the clarifying "non-nil" and think keep works just like map+filter, or they will notice "non-nil" but incorrectly assume that filter behaves the same way and filters out nil values (as opposed to all falsey values).
    36 people found this helpful
    Report
  • Reviewed in the United States on October 14, 2015
    Format: PaperbackVerified Purchase
    Clojure Applied discussed many aspects of using Clojure that are relevant to real world projects. I enjoyed the author's approach and found the entire book very useful and enlightening. One area that I wish would have been covered was persistence. While most other aspects of real world systems are treated, persistence options and ideas on how to treat persistence in a functional manner were left out. That is my only reason for not giving this five stars.
    16 people found this helpful
    Report
  • Reviewed in the United States on September 21, 2015
    Format: Paperback
    I've gone through quite a few Clojure tutorials/online resources/books by now... For me this has been the best.

    I have met Alex Miller in person and have taken a couple day course from him (which was absolutely excellent). It isn't surprising to me that this book ended up being as clear in text as he can be in person doing presentations.

    Overall I feel like the information from this book is really essential for me as my team moves forward in our Clojure projects. It has helped me get to the next level in my learning and application of Clojure to our projects, and it bridges a lot of gaps for me between several intro tutorials and real-life work.

    Anyhow I definitely recommend this book, for me it's a required modest investment in my journey.
    8 people found this helpful
    Report
  • Reviewed in the United States on September 15, 2015
    Format: Paperback
    I think I have all the beginning clojure books and have been studying them for a year, I was excited to hear about this book being written for intermediate clojure and waited anxiously for publication. The book did not disappoint. It teaches you how to do clojure in the real world with practical application. From modeling your domain, to using components to create your application and how to deploy it. The examples are fun (modeling planets) and somewhat practical (change from oz to pounds for a recipe). I also really liked the section on organizing your application. This is a great book for the intermediate clojure developer who is looking to move beyond the basics. Highly Recommend!!
    9 people found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • river125
    5.0 out of 5 stars 理論から実践へ
    Reviewed in Japan on September 20, 2017
    Format: PaperbackVerified Purchase
    関数型プログラミングに入門し、練習問題を解いたり小さなツールを作ったりしながら訓練した人が、いよいよ実践的な本物のプログラムを作ろうかというときに役立つ本だと思う。

    自分が関数型プログラミングを覚え始めたころ、その簡明さの虜になる一方で、設計手法的にはオブジェクト指向より前(C言語の手続き指向)の時代に退化したような印象を感じた(クラス無しで、どうやってモジュール化するか?)。そんな悩める子羊を救ってくれる本だ。

    扱うトピックは、設計からテスト、デプロイまで幅広い。中でも独自コレクションの実装方法(IPersistentCollectionやILookupなど)やEDNの拡張方法まで解説してるのは珍しい。ちょっとだけtransducerにも言及する。1つのアプリを作り上げながら解説を進めるスタイルではないので注意。題材として使う個々のアプリ例は断片的だ。

    こういう本の日本語訳が無いというのは残念。
    Report
  • アッカ78
    3.0 out of 5 stars Kindle版だとソースコードのインデントがガタガタです
    Reviewed in Japan on October 15, 2021
    内容は良いと思います。基礎を終えた人向けに、やや実践寄りのコードを示して解説してくれます。

    しかし、Kindle版だとソースコードのインデントがガタガタです(iPadやPCブラウザで確認しました)。
    Lispはインデントが命なので、これは困ります。