美文网首页
软件设计的哲学 小结

软件设计的哲学 小结

作者: EarsXin | 来源:发表于2019-12-28 23:15 被阅读0次

软件设计的哲学 A Philosophy of Software Design - John Ousterhout

作者约翰·奥斯特豪特是美国斯坦福大学计算机科学博萨克·勒纳教授,他是 Tcl 脚本 语言的创始人。

这本书是作者在斯坦福授课基础上编写的的一本有关与软件设计的书。

书的前半部分讲解软件复杂度和modules should be deep的观点,基本是精华所在,作者提出的关于软件设计的观点大部分我还是比较认同的。但是这本书是从学术课堂上诞生出来的,难免会有一些理想化的情况,所以,建议带着实践的角度去阅读这本书。

下面拉出书中的一两个设计原则来聊聊
▌工作不仅仅是编写代码;
软件复杂度是慢慢累积的,初始的设计多少是有理有据的,但是真实开发的情况是不可预估的,每一次的迭代需要我们践行“零容忍”哲学,不断迭代维护整体设计,在完整的框架下来扩展功能。

▌模块设计应该深;
▌接口设计应当使得最常用的路径越简单越好;
这两条我感觉是本书的核心部分了,把接口interface设计的简单,就可以允许实现Implement比较复杂,同时还能确保常用的路径非常简单(这一设计方式让我想到了哈夫曼),这两点我认为能极大的降低系统复杂度的设计。

读到最后我觉得作者写这本书的目的并非提供给了大家一个降低系统复杂度的设计指南,而在于激发大家去讨论与思考降低软件复杂度的设计原则。

就像设计模式是解决某一特定问题的最常用的解决方案一样,作者提出的一些设计原则可能是某些场景下总结出来的原则,实际的开发工作中共总会遇到各种各样的问题不一定能用书中提供的一些原则进行处理,我们认为可以借鉴吸收用到实际工作当中去

FuLStsFfqn3SfiVlggbs_F4IuYI7.jpeg

相关文章

  • 软件设计的哲学 小结

    软件设计的哲学 A Philosophy of Software Design - John Ousterhout...

  • 免费送书啦!细数Github大神们的开源书籍![二]

    计算机软件设计 《软件设计的哲学》 《软件设计的哲学》斯坦福教授、Tcl 语言发明者 John Ousterhou...

  • 软件设计的哲学

    计算机科学中最基本的问题是问题分解:如何处理一个复杂的问题并将其分解为可以独立解决的部分。编写软件的最大限制是我们...

  • 07、软件设计小结

    1、代码混乱,是因为没有把多个业务逻辑分开梳理清楚,就开始写业务交叉代码。凡是涉及三个及以上业务逻辑交叉的,都应该...

  • 哲学小结

    《西方哲学史》读到今天,是应该做个总结了。 古希腊时代是哲学启蒙,那个时代灿烂而光明,是个在地中海乘个小舟就能四处...

  • 如何降低软件的复杂性?

    今年四月,他出版了一本新书《软件设计的哲学》(A Philosophy of Software Design)。这...

  • 哲学读书小结

    又集中时间看了些书,想停下来总结总结,思考点儿东西。 这次看的主要是西方哲学的书。之前看过罗素的西方哲学史,也零零...

  • 读书笔记-软件设计的哲学

    https://github.com/gdut-yy/A-Philosophy-of-Software-Desig...

  • 《软件设计的哲学》读书笔记

    深模块/浅模块 作者使用深模块和浅模块的概念来形容模块封装的不同程度。 深模块:即暴露给用户极少的必要接口,其它的...

  • P1设计模式简介

    软件设计的目标: 什么是好的软件设计?软件设计的金科玉律:复用! 常用的软件设计方法: 分解(分而治之) VS ...

网友评论

      本文标题:软件设计的哲学 小结

      本文链接:https://www.haomeiwen.com/subject/xbueoctx.html