Adaptive Code
Home > Computing and Information Technology > Computer programming / software engineering > Adaptive Code: Agile coding with design patterns and SOLID principles(Developer Best Practices)
29%
Adaptive Code: Agile coding with design patterns and SOLID principles(Developer Best Practices)

Adaptive Code: Agile coding with design patterns and SOLID principles(Developer Best Practices)


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

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.

Table of Contents:
TOC Chapter 1 Introduction to Scrum                                           Scrum versus waterfall Roles and responsibilities Product owner Scrum master Development team Artifacts The Scrum board Charts and metrics Backlogs The sprint Release planning Sprint planning Daily Scrum Sprint demo Sprint retrospective Scrum calendar Agile in the real world Rigidity Untestability Metrics Conclusion   Chapter 2 Introduction to Kanban                                          Kanban quickstart The information radiator Limiting work in progress Protecting against change Defining “done” Event-driven ceremonies Classes of service Service level agreements Class WIP limits People as a class of service Analysis Lead time and cycle time Cumulative flow diagrams Conclusion   Part II  Foundations of adaptive code Chapter 3 Dependencies and layering                                     Dependencies A simple example Framework dependencies Third-party dependencies Modeling dependencies in a directed graph Managing dependencies Implementations versus interfaces The new code smell Alternatives to object construction Resolving dependencies Dependency management with NuGet Layering Common layering patterns Cross-cutting concerns Asymmetric layering Conclusion   Chapter 4 Interfaces and design patterns                                What is an interface? Syntax Explicit implementation Polymorphism Adaptive design patterns The Null Object pattern The Adapter pattern The Strategy pattern Further versatility Duck-typing Mixins Fluent interfaces Conclusion   Chapter 5 Testing                                                                Unit testing Arrange, Act, Assert Test-driven development More complex tests Unit-testing patterns Writing maintainable tests The Builder pattern for tests The Builder pattern Clarifying unit test intent Writing tests first What is TDD? Test-driven design Test-first development  Further testing The testing pyramid Testing pyramid anti-patterns The testing quadrant Testing for prevention and cure How do you decrease MTTR? Conclusion   Chapter 6 Refactoring                                                          Introduction to refactoring Changing existing code A new account type Aggressive refactoring Red, green, refactor…redesign Making legacy code adaptive The golden master technique Conclusion   Part III SOLID code      Chapter 7 The single responsibility principle                             Problem statement Refactoring for clarity Refactoring for abstraction SRP and the Decorator pattern The Composite pattern Predicate decorators Branching decorators Lazy decorators Logging decorators Profiling decorators Decorating properties and events Conclusion   Chapter 8 The open/closed principle                                       Introduction to the open/closed principle The Meyer definition The Martin definition Bug fixes Client awareness Extension points Code without extension points Virtual methods Abstract methods Interface inheritance “Design for inheritance or prohibit it” Protected variation Predicted variation A stable interface Just enough adaptability Predicted variation versus speculative generality Do you need so many interfaces? Conclusion   Chapter 9 The Liskov substitution principle                              Introduction to the Liskov substitution principle Formal definition LSP rules Contracts Preconditions Postconditions Data invariants Liskov contract rules Code contracts Covariance and contravariance Definitions Liskov type system rules Conclusion   Chapter 10  Interface segregation                                           A segregation example A simple CRUD interface Caching Multiple interface decoration Client construction Multiple implementations, multiple instances Single implementation, single instance The Interface Soup anti-pattern Splitting interfaces Client need Architectural need Single-method interfaces Conclusion   Chapter 11  Dependency inversion                                         Structuring dependencies The Entourage anti-pattern The Stairway pattern An example of abstraction design Abstractions Concretions Abstracting capabilities The improved client Abstracting queries Further abstraction Conclusion   Part IV Applying adaptive code Chapter 12  Dependency injection                                          Humble beginnings The Task List application Constructing the object graph Beyond simple injection The Service Locator anti-pattern Illegitimate Injection The composition root Convention over configuration Conclusion   Chapter 13  Coupling, cohesion, and connascence                     Coupling and cohesion Coupling Cohesion Connascence Name Type Meaning Algorithm Position Execution order Timing Value Identity Measuring connascence Locality Unofficial connascence Static vs. dynamic connascence Conclusion   Appendix   Adaptive tools                                                      Source control with Git Cloning a repository Switching to a different branch Continuous integration 

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.  


Best Sellers


Product Details
  • ISBN-13: 9781509302628
  • Publisher: Microsoft Press,U.S.
  • Publisher Imprint: Microsoft Press
  • Language: English
  • Sub Title: Agile coding with design patterns and SOLID principles
  • ISBN-10: 150930262X
  • Publisher Date: 18 Apr 2017
  • Binding: Undefined
  • Series Title: Developer Best Practices


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Adaptive Code: Agile coding with design patterns and SOLID principles(Developer Best Practices)
Microsoft Press,U.S. -
Adaptive Code: Agile coding with design patterns and SOLID principles(Developer Best Practices)
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Adaptive Code: Agile coding with design patterns and SOLID principles(Developer Best Practices)

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!