
灵活性的软件设计
Software Design for Flexibility
Chris Hanson、Gerald Jay Sussman · 初版 2021 年
8人推荐
27位读者提及
32次提及
为什么值得读
- 被视为SICP的精神续作
- 密集呈现具有挑战性且自洽的激进概念
- 深入剖析如何避免将程序写进死胡同
Hacker News 上怎么说
正在加载完整评论……

Software Design for Flexibility
Chris Hanson、Gerald Jay Sussman · 初版 2021 年
正在加载完整评论……
1. SICP 2. How to Design Programs 3. Software Design for Flexibility: How to Avoid Programming Yourself Into a Corner
1. SICP 2. How to Design Programs 3. Software Design for Flexibility: How to Avoid Programming Yourself Into a Corner
> 这门课用了一本我和 Chris Hanson 写的教材草稿。书名是《Software Design for Flexibility (how to avoid programming yourself into a corner)》;很快会由 MIT Press 出版,采用知识共享相同方式共享(CC BY-SA)许可(书中配套的所有代码均采用 GNU GPL)看起来……
> The class used a draft textbook that Chris Hanson and I have written. The book is entitled “Software Design for Flexibility (how to avoid programming yourself into a corner)”; it will be published by MIT Press soon, with a Creative Commons Share Alike license (and all the code in support of the book is under the GNU GPL) Looking…
……推荐两本书:《A Philosophy of Software Design》。非常实用且接地气的书,提供了切实可行的建议,以及一些扎实的思维模型,能直接用在接口设计、错误处理、模块划分等方面。《Software Design for Flexibility》。SICP 的精神续作。极具挑战性、信息密度极高,某种程度上也很激进。典型的 Sussman 风格:用逻辑缜密清晰的语言,连珠炮似地向你抛出一连串烧脑的概念。……
…recommend two books: A Philosophy of Software Design. Very practical, friendly book, actionable advice and some sound mental models to apply to designing interfaces, error handling, modules and so on. Software Design for Flexibility. Spiritual successor of SICP. Very challenging, dense and in some ways radical. Typical Sussman-style of throwing challenging concepts at you in rapid succession in a logically sound and clear language.…
1. SICP 2. How to Design Programs 3. Software Design for Flexibility: How to Avoid Programming Yourself Into a Corner
1. SICP 2. How to Design Programs 3. Software Design for Flexibility: How to Avoid Programming Yourself Into a Corner
……<https://docs.google.com/spreadsheets/d/1kgFSWp7rM3ZegweXAoMN...> 在我看来,最顶级的“必读书目”有:-- John K Ousterhout,《A Philosophy of Software Design》-- Titus Winters 等人,《Software Engineering at Google》-- Hanson 和 Sussman,《Software Design for Flexibility》。其他吸引我眼球的有趣书目:-- Peter Naur,《Programming as Theory Building》-- Scott Wlaschin,《Domain Modeling Made Functional》-- Yehonathan Sharvit,《Data-Oriented Programming: Unlearning……
…<https://docs.google.com/spreadsheets/d/1kgFSWp7rM3ZegweXAoMN...> From my perspective, the top "must-reads" are: -- John K Ousterhout, A Philosophy of Software Design -- Titus Winter (et al), Software Engineering at Google -- Hanson and Sussman, Software Design for Flexibility Other interesting titles that caught my eye: -- Peter Naur, Programming as Theory Building -- Scott Wlaschin, Domain Modeling Made Functional -- Yehonathan Sharvit, Data-Oriented Programming: Unlearning…
好吧,我是用 Scheme 写的,但完全没理由在 Julia 里行不通。如果你对这方面感兴趣,Chris Hanson 和 GJS 相对较新的《Software Design for Flexibility》[1] 里有几个非常棒的章节,专门讲如何构建通用过程系统(generic procedure system,还有很多其他超酷的东西)。编辑:事实上,书里正好就有一个做这个例子的示例:……
Well I did it in Scheme, but there's no reason it wouldn't have worked in Julia. If you're interested in this, the relatively recent Software Design for Flexibility by Chris Hanson and GJS [1] has a pretty good couple of chapters on creating a generic procedure system (and a lot of other really cool things). Edit: In fact, it has an example doing just this example:…