Kindle Price: $29.99

Save $10.00 (25%)

These promotions will be applied to this item:

Some promotions may be combined; others are not eligible to be combined with other offers. For details, please see the Terms & Conditions associated with these promotions.

eBook features:
  • Highlight, take notes, and search in the book
  • In this edition, page numbers are just like the physical edition
You've subscribed to ! We will preorder your items within 24 hours of when they become available. When new books are released, we'll charge your default payment method for the lowest price available during the pre-order period.
Update your device or payment method, cancel individual pre-orders or your subscription at
Your Memberships & Subscriptions

Buy for others

Give as a gift or purchase for a team or group.
Learn more

Buying and sending eBooks to others

  1. Select quantity
  2. Buy and send eBooks
  3. Recipients can read on any device

These ebooks can only be redeemed by recipients in the US. Redemption links and eBooks cannot be resold.

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

Loading your book clubs
There was a problem loading your book clubs. Please try again.
Not in a club? Learn more
Amazon book clubs early access

Join or create book clubs

Choose books together

Track your books
Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that’s right for you for free.

Follow the authors

Something went wrong. Please try your request again later.

Adaptive Code: Agile coding with design patterns and SOLID principles (Developer Best Practices) 2nd Edition, Kindle Edition

4.6 4.6 out of 5 stars 179 ratings

Write code that can adapt to changes.

 

By applying this book’s principles, you can create code that accommodates new requirements and unforeseen scenarios without significant rewrites. Gary McLean Hall describes Agile best practices, principles, and patterns for designing and writing code that can evolve more quickly and easily, with fewer errors, because it doesn’t impede change.

 

Now revised, updated, and expanded, Adaptive Code, Second Edition adds indispensable practical insights on Kanban, dependency inversion, and creating reusable abstractions. Drawing on over a decade of Agile consulting and development experience, McLean Hall has updated his best-seller with deeper coverage of unit testing, refactoring, pure dependency injection, and more.

 

Master powerful new ways to:

• Write code that enables and complements Scrum, Kanban, or any other Agile framework

• Develop code that can survive major changes in requirements

• Plan for adaptability by using dependencies, layering, interfaces, and design patterns

• Perform unit testing and refactoring in tandem, gaining more value from both

• Use the “golden master” technique to make legacy code adaptive

• Build SOLID code with single-responsibility, open/closed, and Liskov substitution principles

• Create smaller interfaces to support more-diverse client and architectural needs

• Leverage dependency injection best practices to improve code adaptability

• Apply dependency inversion with the Stairway pattern, and avoid related anti-patterns

 

About You

This book is for programmers of all skill levels seeking more-practical insight into design patterns, SOLID principles, unit testing, refactoring, and related topics. Most readers will have programmed in C#, Java, C++, or similar object-oriented languages, and will be familiar with core procedural programming techniques.

Due to its large file size, this book may take longer to download
All 22 available for you in this series See full series
See included books
Total Price: $494.21
By clicking on above button, you agree to the Kindle Store Terms of Use

Editorial Reviews

About the Author

Gary McLean Hall is a software developer, architect, and consultant with more than a decade of experience optimizing processes and practices in diverse Agile environments. He recently founded Igirisu to provide developer training for TDD, continuous integration, refactoring, design patterns, SOLID principles, and Git source control; cultural coaching towards Agile; and related services. His book, Adaptive Code via C# (Microsoft Press, 2014), has been translated into German, Japanese, and Korean, and won the Society for Technical Communications

Distinguished Award in 2015.

Product details

  • ASIN ‏ : ‎ B071YC5ML9
  • Publisher ‏ : ‎ Microsoft Press; 2nd edition (April 18, 2017)
  • Publication date ‏ : ‎ April 18, 2017
  • Language ‏ : ‎ English
  • File size ‏ : ‎ 52772 KB
  • Simultaneous device usage ‏ : ‎ Up to 5 simultaneous devices, per publisher limits
  • Text-to-Speech ‏ : ‎ Enabled
  • Screen Reader ‏ : ‎ Supported
  • Enhanced typesetting ‏ : ‎ Enabled
  • X-Ray ‏ : ‎ Not Enabled
  • Word Wise ‏ : ‎ Not Enabled
  • Sticky notes ‏ : ‎ On Kindle Scribe
  • Print length ‏ : ‎ 450 pages
  • Customer Reviews:
    4.6 4.6 out of 5 stars 179 ratings

About the authors

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

Customer reviews

4.6 out of 5 stars
4.6 out of 5
179 global ratings

Top reviews from the United States

Reviewed in the United States on September 22, 2018
First, I don't know how anyone could possibly give this book only 2 stars (maybe their dog died that day and they were just in a bad mood). Look at the other ratings: so far, all 10 reviewers other than that one dude gave the book 5 stars. He is the outlier, not the norm.

There is so much good information in this book: there is no filler - it's all quality, need-to-know material. This book is well worth the price ... and then some.

This book uses C# in its code examples, but the majority of the book applies to Agile development in general, not being specifically tied to C#, or even to Microsoft. Think of it like Robert Martin's book Clean Code, which has Java code examples, but whose material applies to far more than just Java developers.
12 people found this helpful
Report
Reviewed in the United States on July 6, 2017
I am not done with the book yet but even half way through I can say that every serious programmer has to read this book. I have a lot of books that are really great for references on how to most effectively use certain technologies. This is a very different book, though. It teaches you how to write code that is 'future-proof', i.e. that allows you to make changes to existing code without breaking other code that depends on the modified code. The importance of this cannot be overemphasized. Not only does it changes, unit tests, etc much easier but it also makes things so much easier for the users of your code, be it fellow programmers that base their code on your code, customers that use your libraries, etc.
12 people found this helpful
Report
Reviewed in the United States on January 24, 2022
I enjoyed this book a great deal. It contains a lot of instructive patterns and refactorings. For my taste, it has the right mix of theory and example. The reasons I don't give it a 5:
* The process chapters in the beginning seem out of place. The book is primarily about design and code and that's what I expected. So I just skipped over them.
* The SRP chapter applies an incorrect understanding of the SRP. I actually mention this in a blog post (http://www.softwareonthebrain.com/2022/01/the-misunderstood-single-responsibility.htmhttp://www.softwareonthebrain.com/2022/01/the-misunderstood-single-responsibility.html?m=1), not because it's specific to this book but because almost everything that I read about the SRP misunderstands it. Uncle Bob seems to agree because he tweeted a link to the post.
* SOLID is useful and well-known but it does not capture the richness of everything the author has to say. There are a lot of good points made in the SOLID chapters that are forced into the SOLID framework.

If I could I speak to the author, I'd suggest:
* Remove the agile chapters. Write another book about that if you like. Leave the word Agile out of the title. Seems contrived so a keyword search will work.
* Drop SOLID from the title. Don't force-fit everything into SOLID as it does not capture everything. Structure things in a more natural way.
* Consider that there is anti-Microsoft bias in the OSS community. So half the market won't even look at it based on the fact that it's an MS book. That's silly but true. Under a different publisher with a mix of C# and, say, Java examples it'd likely be read by a broader audience.

The book is rich with insight. Despite what I say above it is definitely worth picking up. As an illustration of how much I liked it, when I saw the advertisement for the 3rd edition I was prepared to order it right after reading the 2nd edition. But it's not ready yet. :-(
3 people found this helpful
Report
Reviewed in the United States on April 26, 2022
I wish it were written for Java, because that is what I use at work, but it is still useful. Chapters follow a pattern of 'Here's the idea', 'Here's how you do it in C#'. C# is close enough to Java to get the point.
Reviewed in the United States on September 6, 2017
This is one of the most helpful software engineering books I've ever read. It is most useful for people who have some real world experience in .NET development. I couldn't have gotten so much out of the book without my last year of work developing API services for a major thermostat manufacturer.

I've encountered a lot of the pain this book hopes to remove. I devoured this book. I read 10 chapters of it while on "vacation" and don't regret a minute spent reading it. I'm excited about taking the concepts one bite at a time and trying to integrate them into my real work. Great book.
6 people found this helpful
Report
Reviewed in the United States on October 1, 2017
Definately a nice book to read, got a clear understanding of most concepts discussed in it.
A reviewer said that it just provided an overview of the concepts... While it may be true, i feel like the only way to master these skills is to apply them in real world projects. You simply won't get good at software development by just reading books.
The best way to learn from it is to read the whole thing the first time, and then get back in the book after you encounter a problem on your project.
5 people found this helpful
Report
Reviewed in the United States on October 24, 2019
Ojalá hubieran escrito este libro hace 10 años, el contenido es increíble, fundamental para cualquier persona que desee mejorar sus conocimientos y habilidades como ingeniero de software. Muestra el camino correcto y sencillo para construir software de calidad. Totalmente recomendado.
Reviewed in the United States on August 21, 2019
I must admit to being a very aged programmer. I have many battle with software architects who choose purity and abstraction over performance. If you're writing a system that must be completely agnostic, run on any platform and any database, then this is your book. If you need a system that actually performs, and don't want to either throw ever expanding hardware to compensate that lousy performance, then this is NOT your book. I've litterally come across purist systems like the ones written here, and improved performance from 100X to 1000X by removing some of the pointless abstractions. Also I strongly disagree that a unit test should NOT test the underlying database. Really what's the point if you have a beautiful test, but doesn't check it against the underlying hardware / software.
23 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Fernando
5.0 out of 5 stars Muy bueno pero básico
Reviewed in Mexico on November 14, 2020
Está muy bien escrito y muy claro pero sí es muy básico si ya tienes experiencia con patrones de diseño
KelPluk
5.0 out of 5 stars Very good book
Reviewed in Canada on August 11, 2019
Very good book, specially to show the SOLID concepts and patterns.
Martin
5.0 out of 5 stars Utile pour ceux qui débutent le C# et ceux qui s'intéressent aux principes SOLID
Reviewed in France on November 9, 2019
Livre très intéressant qui introduit bien les spécificités du langages C#, ainsi que quelques designs patterns et ainsi que les principes SOLID.
Les exemples sont clairs, les chapitres bien structurés. Je recommande ce livre à toutes les personnes qui ont déjà programmé dans un autre langage que le C# et qui veulent se lancer dedans, tout en ayant un livre abordant les bonnes pratiques de programmation
Kunde
5.0 out of 5 stars Great book
Reviewed in Germany on August 17, 2018
I started working as a junior dev about half a year ago. At that time I only knew how to create classes and methods and do some simple interactions between them. So as everyone might imagine, I was completely lost at work and overwhelmed. Gladly, my coworkers were nice and tried to explain the concepts I didn't know. But of course work needed to be done and due to that the explanations were short. So I bought this book with the expectation to finally understand what I am doing everyday. So far I have read 3 chapters and I love this book. It already helped me understand some of the things we are doing and why we are doing it. Great book for everyone who recently started programming and wants to improve their skills.
One person found this helpful
Report
Kindle Customer
5.0 out of 5 stars This is an easy to follow comprehensive book on techniques to make your ...
Reviewed in the United Kingdom on October 6, 2017
This is an easy to follow comprehensive book on techniques to make your programming more adaptive to change. It provides a very good high level overview of a development process. Some areas such as Agile and Testing it can't go into details so you will need to read other books to learn more but it does give you a very good idea of why they are important.

It goes into more detail when it talks about SOLID principles. The examples are simple but I don't think that's a bad thing. This is the sort of book you want to read, do some development and then come back and read again to see if there is something more you could learn.
2 people found this helpful
Report
Report an issue

Does this item contain inappropriate content?
Do you believe that this item violates a copyright?
Does this item contain quality or formatting issues?