7.重复的危害
系统中的每一项只是都必须具有单一,无歧义,权威的表示
不要重复自己
- 强加的重复
- 无意的重复
- 无耐性的重复
- 开发者之间的重复
强加的重复
- 信息的多种标识
- 代码中的文档
- 文档与代码
- 语言问题
无意的重复
无耐性的重复
开发者之间的重复
让复用变得容易
8.正交性
正交性系统:消除无关事物之间的影响
好处: 提高生产率和降低风险
编码:
- 让你的代码保持解耦
- 避免使用全局数据
- 避免编写相似的函数
测试
文档
认同正交性
9. 可撤销性
不存在最终决策
灵活的架构
10. 曳光弹
在黑暗中发光的代码
- 用户能够及早看到能工作的东西
- 开发者构建了一个他们能在其中工作的结构
- 你有了一个集成平台
- 你有了可用于延时的东西
- 你讲更能够感觉到工作进展
曳光弹并非钟恩能够击中目标
曳光代码VS原型制作
11.原型与便笺
应制作原型的事物
- 架构
- 已有系统中的新功能
- 外部数据的结构或内容
- 第三方工具或组件
- 性能问题
- 用户界面设计
为了学习而制作原型
怎样使用原型
可忽略的细节
- 正确性
- 完整性
- 健壮性
- 风格
制作架构原型
- 主要组件的责任是否得到了良好定义?是否适当
- 只要组件间的协作是否得到了良好定义
- 耦合是否得以最小化
- 你能否确定重复的潜在来源
- 接口定义和各项越是是否可接受
- 每个模块在执行过程中是否能访问到其所需的数据?能否在需要时进行访问
怎样不使用原型
12.领域语言
语言的界限就是一个人的世界的界限
靠近问题领域编程
实现小星预言
数据语言与命令语言
独立语言与嵌入式语言
易于开发还是易于维护
13.估算
估算,以避免发生意外
多准确才足够准确
估算来自哪里
理解提问内容
建立系统的模型
把模型分解为组件
给每个参数指定值
计算答案
追踪你的估算能力
估算项目进度
- 检查需求
- 分析风险
- 设计,实现,集成
- 向用户确认
通过代码对进度表进行迭代
在被要求进行估算时说什么
放慢估算速度,并花一点时间仔细检查我们在这一节描述的步骤,你几乎总额能得到更好的结果.
- 本文链接: https://halo.cjh.kim/archives/计算机程序的构造和解释8
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!