9780262045490-0262045494-Software Design for Flexibility: How to Avoid Programming Yourself into a Corner

Software Design for Flexibility: How to Avoid Programming Yourself into a Corner

ISBN-13: 9780262045490
ISBN-10: 0262045494
Author: Gerald Jay Sussman, Chris Hanson
Publication date: 2021
Publisher: The MIT Press
Format: Hardcover 448 pages
FREE US shipping on ALL non-marketplace orders
Rent
35 days
from $28.10 USD
FREE shipping on RENTAL RETURNS
Marketplace
from $35.61 USD
Buy

From $35.61

Rent

From $28.10

Book details

ISBN-13: 9780262045490
ISBN-10: 0262045494
Author: Gerald Jay Sussman, Chris Hanson
Publication date: 2021
Publisher: The MIT Press
Format: Hardcover 448 pages

Summary

Software Design for Flexibility: How to Avoid Programming Yourself into a Corner (ISBN-13: 9780262045490 and ISBN-10: 0262045494), written by authors Gerald Jay Sussman, Chris Hanson, was published by The MIT Press in 2021. With an overall rating of 3.5 stars, it's a notable title among other Systems Analysis & Design (Computer Science, Microsoft Programming, Programming) books. You can easily purchase or rent Software Design for Flexibility: How to Avoid Programming Yourself into a Corner (Hardcover) from BooksRun, along with many other new and used Systems Analysis & Design books and textbooks. And, if you're looking to sell your copy, our current buyback offer is $14.29.

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

Rate this book Rate this book

We would LOVE it if you could help us and other readers by reviewing the book