。所有这些讨论都是有价值的,但是软件设计的核心问题在很大程度上仍然没有触及。David Parnas的经典 ...
目录 设计软件是困难的,所以你对如何构建一个模块或系统的最初想法不太可能产生最好的设计。如果您为每个主要的设计决策考虑多个选项,您将得到一个更好的结果:设计两次。 假设您正在为GUI文本编辑器设计管理文件文本的类。第一步是定义类将呈现给编辑器其余部分的接口 与其选择第一个出现在脑海中的想法,不如考虑几种可能性。一种选择是面向行的接口,它具有插入 修改和删除整行文本的操作。另一个选项是基于单个字符 ...
2019-12-22 07:25 0 284 推荐指数:
。所有这些讨论都是有价值的,但是软件设计的核心问题在很大程度上仍然没有触及。David Parnas的经典 ...
2020年必读书籍推荐:软件设计的哲学(A Philosophy of Software Design),本书190多页,豆瓣的点评分在9分以上,目前只有英文版本,中文版还未上市,英文好的同学建议去直接阅读原版。 作者简介 John Ousterhout是斯坦福大学计算机科学教授。他目前 ...
2020年必读书籍推荐:软件设计的哲学(A Philosophy of Software Design),本书190多页,豆瓣的点评分在9分以上,目前只有英文版本,中文版还未上市,英文好的同学建议去直接阅读原版。 内容简介 书中讨论了软件设计的主题:如何将复杂的软件 ...
1 如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所有关系人:“我在这里修改了某某界面 ...
目录 20.1 如何考虑性能 20.2 修改前的测量 20.3 围绕关键路径进行设计 20.4 一个示例:RAMCloud缓冲区 20.5 结论 到目前为止,软件设计的讨论都集中在复杂性上,我们的目标是使软件尽可能的简单和易懂。但是,如果您正在开发 ...
目录 18.1 使代码更简单的东西 18.2 使代码不那么明显的事情 18.3 结论 晦涩是2.3节中描述的复杂性的两个主要原因之一。当系统的重要信息对新开发人员来说不明显时,就会出现模糊现象。模糊问题的解决方案是用一种简单易解的方式来写代码。本章讨论 ...
9.9 结论 软件设计中最基本的问题之一是:给定两部分功能,它们应该在同一个地方一起实 ...
目录 15.1 延迟的注释是糟糕的注释 15.2 先写注释 15.3 注释是一个设计工具 15.4 早期的注释很有趣 15.5 早期的注释代价高昂吗? 15.6 结论 许多开发人员将编写文档的工作推迟到开发过程的末尾,即编码和单元测试完成之后 ...