。所有这些讨论都是有价值的,但是软件设计的核心问题在很大程度上仍然没有触及。David Parnas的经典 ...
软件系统的设计和开发过程中,增加系统复杂性的 中危险信号: 危险信号 :浅层模块 浅层模块的接口相对于它提供的功能来说是复杂的。浅层模块在与复杂性的斗争中帮助不大,因为它们提供的好处 不需要了解它们内部如何工作 被学习和使用它们的接口的成本所抵消。小模块往往是浅层的。 危险信号 :信息泄漏 当在多个地方使用相同的知识时,例如两个不同的类都理解特定类型文件的格式,就会发生信息泄漏。 危险信号 :时间 ...
2020-01-04 10:08 0 686 推荐指数:
。所有这些讨论都是有价值的,但是软件设计的核心问题在很大程度上仍然没有触及。David Parnas的经典 ...
“ 作者简介:常柱,微信公众号【架构未来】作者,十多年一线互联网研发从业经验;前五八同城商业会员技术负责人,宝驾租车技术总监,现58到家业务中台技术负责人。 这本书是关于如何设计软件系统来最小化它们的复杂性。第一步是了解敌人。到底什么是“复杂性”?你怎么知道一个系统是不是不必要 ...
目录 8.1 示例:编辑器文本类 8.2 示例:配置参数 8.3 做过了头 8.4 结论 本章介绍了另一种思考如何创建更深层次类的方法。假设您正在开发一个新模块,并且发现了一个不可避免的复杂性。哪个会更好呢:应该让模块的用户处理复杂性,还是应该在模块 ...
2020年必读书籍推荐:软件设计的哲学(A Philosophy of Software Design),本书190多页,豆瓣的点评分在9分以上,目前只有英文版本,中文版还未上市,英文好的同学建议去直接阅读原版。 内容简介 书中讨论了软件设计的主题:如何将复杂的软件 ...
2020年必读书籍推荐:软件设计的哲学(A Philosophy of Software Design),本书190多页,豆瓣的点评分在9分以上,目前只有英文版本,中文版还未上市,英文好的同学建议去直接阅读原版。 作者简介 John Ousterhout是斯坦福大学计算机科学教授。他目前 ...
目录 设计软件是困难的,所以你对如何构建一个模块或系统的最初想法不太可能产生最好的设计。如果您为每个主要的设计决策考虑多个选项,您将得到一个更好的结果:设计两次。 假设您正在为GUI文本编辑器设计管理文件文本的类。第一步是定义类将呈现给编辑器其余部分的接口;与其选择 ...
目录 13.1 选择约定 13.2 不要重复代码 13.3 低级注释增加了精确性 13.4 更高层次的注释增强直觉 13.5 接口文档 13.6 建议:什么和为什么,而不是如何 13.7 跨模块设计决策 13.8 结论 13.9 对第13.5 ...
目录 20.1 如何考虑性能 20.2 修改前的测量 20.3 围绕关键路径进行设计 20.4 一个示例:RAMCloud缓冲区 20.5 结论 到目前为止,软件设计的讨论都集中在复杂性上,我们的目标是使软件尽可能的简单和易懂。但是,如果您正在开发 ...