close menu
Bookswagon-24x7 online bookstore
close menu
My Account
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)

          
5
4
3
2
1

Out of Stock


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Notify me when this book is in stock
Add to Wishlist

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:

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 


Best Seller

| | See All

Product Details
  • ISBN-13: 9781509302604
  • Publisher: Microsoft Press,U.S.
  • Publisher Imprint: Microsoft Press
  • Language: English
  • Series Title: Developer Best Practices
  • ISBN-10: 1509302603
  • Publisher Date: 18 Apr 2017
  • Binding: Digital download
  • No of Pages: 448
  • Sub Title: Agile coding with design patterns and SOLID principles


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Be The First to Review
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

    | | See All


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA