VOOZH about

URL: https://www.amazon.com/dp/0138176396

⇱ Functional Design: Principles, Patterns, and Practices (Robert C. Martin Series): Martin, Robert: 9780138176396: Amazon.com: Books


πŸ‘ Image
πŸ‘ Image
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows.
Buy New
-23% $38.50$38.50
FREE delivery Friday, July 3
Ships from: Amazon.com
Sold by: Amazon.com

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


Follow the authors

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

OK

Functional Design: Principles, Patterns, and Practices (Robert C. Martin Series)


{"desktop_buybox_group_1":[{"displayPrice":"$38.50","priceAmount":38.50,"currencySymbol":"$","integerValue":"38","decimalSeparator":".","fractionalValue":"50","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"lLwhRp2uUh5xavcfbXNuFXIcWyROWu4HJC44Io6Pl9dnXB0PDpfdR5UoSoL3MlY5BCHeLzqLfg30U7Xi39Lm3%2B6k%2FKs0VPcLaE%2FNrmZ7195ufxD%2BYyAGrA9Ilq4Yxe%2FOhLMKlqgxB81PJp0JR67%2FGw%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$35.00","priceAmount":35.00,"currencySymbol":"$","integerValue":"35","decimalSeparator":".","fractionalValue":"00","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"lLwhRp2uUh5xavcfbXNuFXIcWyROWu4HA0X09k%2B14rf0FNP8ixZhJQkb0pb5ndMPb2CcK%2BxTXpJLuydhN8CVLAh1FDxXOB3cGCWa424xNJhkmae%2B01yjATnDS3UqjlP0vpTNKiLIVrbRt3zc4%2BV2SqNPj6rZcCRbc7fjIclbRAB7ahqLMZXKgA%3D%3D","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons


A Practical Guide to Better, Cleaner Code with Functional Programming

In Functional Design, renowned software engineer Robert C. Martin ("Uncle Bob") explains how and why to use functional programming to build better systems for real customers. Martin compares conventional object-oriented coding structures in Java to those enabled by functional languages, identifies the best roles for each, and shows how to build better systems by judiciously using them in context.

Martin's approach is pragmatic, minimizing theory in favor of "in the-trenches" problem-solving. Through accessible examples, working developers will discover how the easy-to-learn, semantically rich Clojure language can help them improve code cleanliness, design, discipline, and outcomes. Martin examines well-known SOLID principles and Gang of Four Design Patterns from a functional perspective, revealing why patterns remain extremely valuable to functional programmers, and how to use them to achieve superior results.

  • Understand functional basics: immutability, persistent data, recursion, iteration, laziness, and statefulness
  • Contrast functional and object approaches through expertly crafted case studies
  • Explore functional design techniques for data flow
  • Use classic SOLID principles to write better Clojure code
  • Master pragmatic approaches to functional testing, GUIs, and concurrency
  • Make the most of design patterns in functional environments
  • Walk through building an enterprise-class Clojure application

"Functional Design exudes 'classic-on-arrival'. Bob pulls back the curtain to reveal how functional programming elements make software design simple yet pragmatic. He does so without alienating experienced object-oriented programmers coming from languages like C#, C++, or Java."
--Janet A. Carr, Independent Clojure Consultant

Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

πŸ‘ Image
Report an issue with this product or seller


Frequently bought together

This item: Functional Design: Principles, Patterns, and Practices (Robert C. Martin Series)
$38.50$38.50
Get it as soon as Friday, Jul 3
Only 4 left in stock - order soon.
Ships from and sold by Amazon.com.
$39.99$39.99
Get it as soon as Friday, Jul 3
Only 6 left in stock - order soon.
Ships from and sold by Amazon.com.
$33.36$33.36
Get it as soon as Sunday, Jul 5
Only 3 left in stock - order soon.
Sold by Azure Raven Media and ships from Amazon Fulfillment.
Total price: $00$00
To see our price, add these items to your cart.
Try again!
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy together.

Customers who viewed this item also viewed

Page 1 of 1 Start over

Customers also bought or read

Page 1 of 1Start over
Loading...

From the Publisher

Who is this book for?

This book is a practical guide for programmers aiming to use functional programming languages effectively. It focuses on real-world applications and avoids delving into theoretical aspects like Monads, Monoids, Functors, and Categories, which are already integrated into common languages, libraries, and frameworks. Instead, it emphasizes how and why to use functional programming in everyday software development, comparing coding structures in object-oriented languages like Java to those in functional languages like Clojure. These languages were chosen for their widespread use (Java) and simplicity (Clojure).

Explore how and why to use it in your day-to-day development. Start coding more efficiently today!

Editorial Reviews

About the Author

Robert C. Martin ("Uncle Bob") wrote his first line of code at the age of 12 in 1964 and has been employed as a programmer since 1970. He is cofounder of cleancoders.com, offering online video training for software developers, and is founder of Uncle Bob Consulting LLC, offering software consulting, training, and skill development services to major corporations worldwide. He served as the Master Craftsman at 8th Light, Inc., a Chicago-based software consulting firm. Mr. Martin has published dozens of articles in various trade journals, authored many books, and is a regular speaker at international conferences and trade shows.


Product details

Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Product Videos

πŸ‘ Image
Pearson Technology Group
Customer ReviewWhy should you read this book?See Full Review

About the authors

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

Customer reviews

4 out of 5 stars
33 global ratings
How customer reviews and ratings work

Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.

To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.

Learn more how customers reviews work on Amazon


There was a problem filtering reviews. Please reload the page.

Top reviews from the United States

  • Lawrence A Jones
    5 out of 5 stars
    A reconciliation between (object-oriented) design and functional programming
    Reviewed in the United States on August 30, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Although many argue that using a functional language eliminates much design, "Uncle Bob" does a great job illustrating that the two approaches are not mutually exclusive, but actually beneficial. Kudos!

    Sending feedback...
    Thank you for your feedback.
    Sorry, we failed to record your vote. Please try again
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again
  • Calvin Grunewald
    1 out of 5 stars
    Terrible Printing
    Reviewed in the United States on November 26, 2024
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I was looking forward to this book, but am returning it due to poor print quality. Many pages appear blurry because the font seems like it was subtly smeared during printing.

    Sending feedback...
    Thank you for your feedback.
    Sorry, we failed to record your vote. Please try again
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again
  • WIKTOR ZYCHLA
    3 out of 5 stars
    I wish the book used Scala rather than Clojure
    Reviewed in the United States on August 25, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This book contains a solid amount of knowledge and ideas behind the functional approach.

    The main drawback, however, is the programming language used: Clojure.

    It is dynamically typed, with no types in function signatures.

    This makes it rather difficult to follow long blocks of codeβ€”and believe me, there are long blocks of undocumented code in this book.

    And yes, I believe Mark Seemann can follow it, as he wrote in his review. But no, I cannot.

    I really wish Scala had been the language of choice instead; it is much more readable and statically typed. With type annotations, Scala code is much easier to follow.

    Not to mention all the parentheses and prefix notation in Clojure. Being not an expert, what you mostly notice when looking at Clojure code are the parentheses, not the actual logic.

    Thus, I give it a 3 out of 5. I highly appreciate the effort, but I believe there were better options available.

    One person found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sorry, we failed to record your vote. Please try again
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again
  • 4 out of 5 stars
    Great content, but you need to know (or learn) Clojure to get the most out of this book
    Reviewed in the United States on October 9, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I'm a big fan of both Uncle Bob and functional programming. However, I found this to be the least approachable of any of his books. Why? Uncle Bob explains on page 259:

    "I expect that as you read this book, you will have a good Clojure reference nearby"

    That warning should have been on the cover. All of his functional programming examples are in Clojure. He does explain the basics of Clojure, and ramps it up with lots of footnotes. That was fine for the simple examples, but as the code became more involved, it was harder and harder to follow since my brain doesn't think in Clojure.

    That being said, it is still a good book even if you start glossing over the code examples. Uncle Bob does a great job of contrasting FP and OOP. However, he goes from there back to showing how they are actually quite similar. He spends much of the book showing how the SOLID principles and a selection of design patterns are equally useful to either paradigm, just executed differently.

    Uncle Bob also adds some much needed nuance to some of the oft sited advantages of functional programming. For example: "You can't have race conditions in functional programming." -> "Wrong. FP eliminates certain types of race conditions. Here is an example of a race condition in a functional program."

    In the end, this book helped expand my ability to work within the strengths of both paradigms, and stop seeing them as mutually exclusive.

    11 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sorry, we failed to record your vote. Please try again
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again

Top reviews from other countries

  • 2 out of 5 stars
    Terrible printing
    Reviewed in Canada on December 3, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I am commenting on the terrible printing job the publisher has done. Pages are black speckled and not pure white. The paper is very thing and see-through so you can see the text/images printed on the reverse of a page. Reads more like a news-paper than a book. Pearson Addison-Wesley: shame on you! ...with my apologies to one of my favorite authors, uncle Robert C. Martin. (Pls send me a "real book" free of charge when you can.)

    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again
  • 5 out of 5 stars
    Mus read
    Reviewed in Germany on August 3, 2024
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    The book completely demystifies Functional Programming. Amazing explanation of SOLID principles with practical examples.

    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again
  • 3 out of 5 stars
    How to write patterns in Clojure
    Reviewed in the United Kingdom on October 25, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    If you follow uncle Bob you'll know he's been threatening to write a book on Clojure for some time: this is it.

    So if you're not after a book on how to write Clojure, this one's not likely to scratch your itch.

    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again
  • 5 out of 5 stars
    Uncle Bob Quality Level
    Reviewed in Spain on October 27, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I'm still reading but, the name of the author says it all. Focus on what it really matters on a topics, or at least in my opinion, he has this skill to guide me connecting all the dots.

    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Sorry, We failed to report this review. Please try again