这篇文章的意义? To be Disciplined
### Todo
-1.
(1)写代码过程中的积累和学习: 使用 一些特殊的标记作为代码注释,标记出值得注意的地方。在当天commit的时候,使用 grep 提取并且导入到 一个 list 中去。
(2)PAR的注释:只是使用不同的标记而已。
0. 先不要急着 coding, 先找到价值所在。
1. 一键 git push
(1)使用 org / markdown 来撰写开发 log
(2)将 log 放入 开发目录中
(3)使用 ssh key 来 push 到 git 中( Done )
(4)使用 一个 script ,定时将所有 repo 压入到
2. 学会单元测试 和 编写有效的测试样例
vzch:正确的代码是测出来的
3. 争取找到自己的流程
(1)适用环境?技术?工具?(版本控制整合:git ,进度跟踪:todo list ,工作分配,集成发布和迭代规划:scripts,论坛和软件缺陷的报告和跟踪: bug trace database)
reading list:
a.clean code : A handbook of Agile software craftmanship
b. Agile Software Development, Principles, Patterns, and Practices
c. Refactoring
敏捷 ? 迭代 ? (区别 : 敏捷方法的周期可能更短,并且更加强调队伍中的高度协作。)
敏捷 的 方法学中: 极限?
(2)BDD ? TDD?
4.
###
1. 为什么 source control ? 一个主要原因,roll back 是很重要的。 需要学习。
2. 为什么 一步 build ? 重点在一步:自动化地build,可以减少人为出错的可能心。
但是,具体呢? checkout -> rebuild -> create installation package 。 rebuild时,还需要考虑:in all their various versions, languages, and #ifdef combinations, 需要学习。
3. 为什么每天都要build 一回? (skipped) 一旦build 出错,那么,其他协作人员
4. 为什么 bug database ? 因为脑子里面记不住。
具体呢? 对于 个人来讲 , crucial 的 是:
- complete steps to reproduce the bug
- expected behavior
- observed (buggy) behavior
5. 为什么 new code 之前要修正所有的 old bug ?因为:
In general, the longer you wait before fixing a bug, the costlier (in time andmoney) it is to fix.
这一点,《The Art of Software Testing》也讲过 。 为什么 ?
原理:将 detail load 进 brain 是需要 take some time 的。
而 越早,那么,花的时间越短。
1. 记忆力有限,容易忘
2. 更糟糕的是,如果 几个月 之后再来修bug,那么,很可能这个人离职了。那怎么办? 你来修bug,就需要一套 工程化 的方法:太慢了。
fixing the bug is like science: you have to be slow, methodical, and meticulous, and you can't be sure how long it will take to discover the cure.
3. 项目进度 更容易 schedule。因为,修bug所需要的 time cost 比 new code 更难估计(这一点,已经观察到。)
具体呢? 我觉得,单人的时候,做好一个模块,再去做另一个模块。
6. 实时更新的schedule
1)商业应用需要
2)有了schedule,就会逼迫你去选择性地做一些feature,避免 特征蠕变
特征蠕变(有时也被称作需求蠕变或者范围蠕变)是在产品或项目开发期间,需求驱动发生变化或增长并跟原来的不同,带来一些开始没有计划的产品特点,对产品质量或时间表产生影响。特征蠕变来自于客户增长的“需求列表”,或者是开发者本身发现了提升产品的机会。为控制特征蠕变,项目管理工具,比如需求稳定指数(requirements stability index,RSI),有时被提倡。
7. 有“规格说明”么?
1)英语(文字语言)是 最快 的 编程语言:不需要 debug, 只要改 几行 就够了。
How-to:intensive course in writing 或者 program manager 来写
至于如何写? 4-part series
8.