code complete笔记

2017/01/18

项目风险最常见的是需求分析和项目规划,前期工作如果没有做好,接下来只会更痛苦。程序猿大部分不能做好需求分析,只想尽快编码,这时候可以想想那些听到或是见到或是经历过的失败项目来让自己冷静一下,克制编码的冲动。

这个功能做什么,实际的应用场景如何,用户如何使用,我们要如何做到这些,是否跟现有的设计/实现由冲突,若有如何协调这种冲突?或者是对功能理解不够完善。别人是否有做到这些,是如何做到,我们为什么不能做到,是架构不一样还是我们系统自身有限制?

架构师吃掉需求,设计师吃掉架构,而程序猿消化设计。

是选择迭代开发还是序列式开发很大程度上取决于对于需求是否吃透,是否稳定。一般情况下都是采取迭代式,稳定需求的情况较少。

做事情的第一步,当然是进行问题定义,只有明白问题是什么,才能开展需求分析。提出问题,应该是用一种普通人能理解的方式,或者说是从客户的角度来描述问题。错误的问题定义会浪费大量的时间。

P244: 内存填充来发现一些误用未初始化的指针的情况,如用0xDEADBEEF这一常量来填充内存。因为在调试器里很容易识别它;对于Intel x86处理器来说,OXCC是一个不错的数值,因为它是断点中断(int 03h)的机器码。

一个好记的名字反映的通常都是问题,而不是解决方案。一个好名字通常表达的是“什么”(what),而不是“如何”(how)。

如果你无法在电话中向他人读出你的代码,就请重新给变量起一个更清晰的名字吧。

Search

    Table of Contents