Software Design for Flexibility: How to Avoid Programming Yourself Into a Corner (DHL)

Hanson, Chris, Sussman, Gerald Jay

  • 出版商: MIT
  • 出版日期: 2021-03-09
  • 售價: $2,390
  • 貴賓價: 9.8$2,342
  • 語言: 英文
  • 頁數: 448
  • 裝訂: Hardcover - also called cloth, retail trade, or trade
  • ISBN: 0262045494
  • ISBN-13: 9780262045490
  • 相關分類: 軟體工程
  • 立即出貨(限量) (庫存=2)

買這商品的人也買了...

商品描述

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

商品描述(中文翻譯)

建構大型系統的策略,能夠透過僅需進行輕微的程式修改,便能輕鬆地適應新情境。

時間壓力促使程式設計師撰寫只適用於特定目的的程式碼,沒有發展的空間。然而,最好的系統是可演進的;它們可以透過新增程式碼而不是修改現有程式碼來適應新情境。作者們描述了他們在超過100年的程式設計經驗中發現的有效技巧,這些技巧將幫助程式設計師避免將自己限制在某個困境中。

作者們探討了以下增強彈性的方法:
- 使用組合子來組織系統,以組合各種不同的部分,從小型函數到整個算術,並具有標準化的介面
- 透過獨立的註釋層(例如單位或來源)來擴充資料
- 使用統一或傳播來結合部分獨立的資訊
- 透過領域模型、規則系統和模式匹配、傳播以及依賴導向的回溯,將控制結構與問題領域分離
- 使用動態可擴展的評估器來擴展程式語言

作者簡介

Chris Hanson is on the technical staff at Datera.

Gerald Jay Sussman is Panasonic Professor of Electrical Engineering at MIT. He is the coauthor of Structure and Interpretation of Computer Programs, Structure and Interpretation of Classical Mechanics, and Functional Differential Equations (all published by the MIT Press).

作者簡介(中文翻譯)

Chris Hanson是Datera的技術人員。

Gerald Jay Sussman是麻省理工學院的Panasonic電機工程教授。他是《計算機程序的結構和解釋》、《古典力學的結構和解釋》和《功能微分方程》(都由麻省理工學院出版社出版)的合著者。