《代码大全》阅读笔记-4-关键的“构建”决策

核对表:主要的构建实践

编码

  • 你有没有确定多少设计工作将要预先进行,多少设计工作在键盘上进行(在编写代码的同事)?
  • 你有没有规定诸如名称、注释、代码格式等“编码约定” (编码规范)
  • 你有没有规定特定的由软件架构确定的编码实践,比如如何处理错误条件,如何处理安全性事项,对于类接口有哪些约定、可重用的代码遵循哪些标准,在编码实考虑多少性能因素
  • 你有没有找到自己在技术浪潮中的位置,并相应调整自己的措施?如果必要,你是否知道如何“深入一种语言去编程”,而不受限于语言*(仅仅“在一种语言上编程”)

团队工作

  • 你有没有定义一套集成工序——即,你有没有定义一套特定的步骤,规定程序员在把代码check in(签入)到主源码(代码库)中之前,必须履行这些步骤
  • 程序员是结对编程、还是独自编程,或者这二者的某种组合

质量保证

  • 程序员在编写代码之前,是否先为之编写测试用例 (测试驱动)
  • 程序员会为自己的代码写单元测试吗?(无论先写还是后写)、
  • 程序员在check in 代码之前,会调用调试器但不追踪整个代码流程吗?
  • 程序员在check in 代码之前,是否进行集成测试(integration-test)
  • 程序员会复审(review)或检查别人的代码吗?

工具

  • 你是否选用了某种版本控制工具 (svn,git)
  • 你是否选定了一种语言,以及语言的版本或编译器版本
  • 你是否选择了某个编程框架(framework,如j2ee 、。net),或者明确地决定不使用编程框架
  • 你是否决定允许使用非标准的语言特性?(在使用非标准的情况下,要保证其整体迁移能力,比如hack了某一部分,要将其整体实现包括到项目内)
  • 你是否选定并拥有了其他将要用到的工具——编辑器、重构工具、调试器、测试框架、语法检查器?

要点

  • 每种编程语言都有其优点和弱点。要知道你使用的语言的明确优点和弱点
  • 在开始编程之前,做好一些约定。“改变代码”使之符合这些“约定”是几乎不可能的
  • “构建的实践方法”的种类比任何单个项目能用到的要多。有意识地选择最适合你的项目的时间方法
  • 问问你自己,你采用的编程实践是对你所用的编程语言的正确响应,还是受它的控制?清记得“深入一种语言去编程”,不要仅“在一种语言上编程”
  • 你在技术浪潮中的位置决定了哪种方法是有效的——甚至是可能用到的。确定你在技术浪潮中的位置,并响应调整计划和预期目标
posted @ 2018-04-03 21:29  Tacey Wong  阅读(484)  评论(0编辑  收藏  举报