Software Design for Flexibility - How to Avoid Programming Yourself into a Corner (Hardcover)

,
Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications. Time pressures encourage programmers to write code that works well for a narrow purpose, with no room to grow. But the best systems are evolvable; they can be adapted for new situations by adding code, rather than changing the existing code. The authors describe techniques they have found effective--over their combined 100-plus years of programming experience--that will help programmers avoid programming themselves into corners. The authors explore ways to enhance flexibility by: - Organizing systems using combinators to compose mix-and-match parts, ranging from small functions to whole arithmetics, with standardized interfaces - Augmenting data with independent annotation layers, such as units of measurement or provenance - Combining independent pieces of partial information using unification or propagation - Separating control structure from problem domain with domain models, rule systems and pattern matching, propagation, and dependency-directed backtracking - Extending the programming language, using dynamically extensible evaluators

R1,417
List Price R1,585
Save R168 11%

Or split into 4x interest-free payments of 25% on orders over R50
Learn more

Discovery Miles14170
Mobicred@R133pm x 12* Mobicred Info
Free Delivery
Delivery AdviceShips in 9 - 15 working days



Product Description

Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications. Time pressures encourage programmers to write code that works well for a narrow purpose, with no room to grow. But the best systems are evolvable; they can be adapted for new situations by adding code, rather than changing the existing code. The authors describe techniques they have found effective--over their combined 100-plus years of programming experience--that will help programmers avoid programming themselves into corners. The authors explore ways to enhance flexibility by: - Organizing systems using combinators to compose mix-and-match parts, ranging from small functions to whole arithmetics, with standardized interfaces - Augmenting data with independent annotation layers, such as units of measurement or provenance - Combining independent pieces of partial information using unification or propagation - Separating control structure from problem domain with domain models, rule systems and pattern matching, propagation, and dependency-directed backtracking - Extending the programming language, using dynamically extensible evaluators

Customer Reviews

No reviews or ratings yet - be the first to create one!

Product Details

General

Imprint

MIT Press

Country of origin

United States

Release date

March 2021

Availability

Expected to ship within 9 - 15 working days

Authors

,

Dimensions

229 x 178 x 7mm (L x W x T)

Format

Hardcover - Cloth over boards

Pages

448

ISBN-13

978-0-262-04549-0

Barcode

9780262045490

Categories

LSN

0-262-04549-4



Trending On Loot