1、目的
- 读书继续 快乐继续
2、准备的重要性
如果你想做一件精美的首饰,那么就得用钻石作原料。如果 你用的是砖头,那你所能得到的最好结果不过是块漂亮的砖头
优秀程序员的一个突出特点是他们采用高质量的过程来创建软件。这种过程在计划的开始、 中间和末尾都强调高质量
3、造成准备不足的原因
准备非常重要,之前在外企(但在国内私企 往往更强调快速迭代)时,我们开发前的准备工作往往占据了开发时间的1/3 左右,将一切不确定的事情都准备好之后再进行开发
1.需求文档(每一部分 都要确认清楚)
2.需求梳理(需要流程图,需要逻辑合理)
3.技术方案实现(大体的技术方案要非常明确,并且项目组的成员都要清晰)
4.细节技术方案实现(实现细节部分 需要明确不能模糊,如果项目成员欠缺,及时列出来帮忙补充)
5.时间评估 需要预留 某些异常的时间
...
- 自身经验 不足
一些程序员并不作准备工作,因为他们抵制不了立刻开始进行编码工作的渴望。如果你就 是这种程序员,那我对你有两条忠告。第一,阅读一下下一部分工作的内容提示,或许你会从中发现一些你没想到的问题。第二,要注意自己的问题。只要创建过几个大的程序,你就会明 白强调准备工作的必要性。不要忘记自己的经验教训
第一,你应该平静地拒绝按照错误顺序工作。如果你与老板的关系很正常的话,那么这太 好了。 第二,你可以假装正在编码而事实上没有。把一个旧的程序清单放到桌角上,然后埋头从事你的需求和构想文件编写工作,不管你的老板同不同意。这样你可以把工作做得更快更好。 从你老板的观点来看,这个忽视是一个福音。 第三,你可以用技术项目的开发方式来教育一下老板。这是一个好办法因为这可以增加这世界上开明老板的数量。 最后,你可以另找一份工作。优秀的程序员是非常短缺的。可以找到更好的工作,干吗非 要呆在一个很不开明的程序店里徒损生命呢?
4、需要做什么 ?
5、如何问题定义 ?
6、如何需求分析 ?
7、需求变更心理预期 ?
8、如何应对需求变更 ?
- 简单来说 给变更范围 评估时间影响 实行
- 列出一份 需求 确认表
9、结构设计先决条件 ?
- 模块化 讲究功能独立 且分开 一个模块不依赖其他模块 单独作用
-
讲究写的组件或者 方法的扩展性,尽可能考虑更多的情况,或者有个不错的方式 去扩展
-
极端情况下 公司资源无法 支持快速迭代和开发,花钱
先买一个版本 也是一个办法 ,但往往 第二期维护时就很困难往往需要重新写
- 开发前期 选择适合的 数据结构
数据 如何交互的,数据间有什么联系? 关键算法 非常重要
- 错误处理的 考虑
- 代码健壮性
- 结构设计检查表
10、选择编程语言 先决条件 ?
-
使用 熟悉的高级语言
-
编程约定
- 应花在先决条件上的时间
小结
- 本节完