前言:A good workman is known by his tools。外国谚语如此,我们也有这样的古话,“工欲善其事,必先利其器”。好的开发团队自然有自己一套比较完好的工具,用来提高生产力以及生产效率。
在学习编程的某一段岁月,我喜欢尝试用各种Java的开发工具,editplus、eclipse、jcreator、myeclipse、netbeans等等,最后,我决定使用eclipse。这一段探索的岁月,也证明了brooks的观点,在工作环境中,如果开发人员的工具不够统一的话,就会制约沟通效率。
我记得在开发交易平台的web管理端时,一个组员使用的myeclipse,而我使用的是eclipse,她不会使用eclipse,这在开发中出现了一些问题。在eclipse下,可以看到WEB-INF目录下的classes文件夹,但是myeclipse不行,必须Windows的资源管理器看到;另外,eclipse中支持@override的标签,而myeclipse中则会报错。
以上两点都对我们之间的工作造成了麻烦。
当然Brooks提供的解决方案是针对比较大型的项目,而小型团队没有这个精力,但是其中一些观点,对于小型团队来说也不谋而合。
目标机器
这个小节有几个特别好的观点:
内存容量要大。机器的内存容量大的话有很多好处,比如说mysql的的配置项中如果合理安排的话,会提升很大性能。
要对内存有一定程度上的监督。很多时候,内存监督能够让我们发现程序的性能bug。
进度安排要更合理。Brooks提供的证据得出,在调度人员对机器的操作间隔中,增长人员的使用时间,尽量降低人员之间切换的频率,会显著的提升生产效率。
辅助机器和数据服务
这个小节有个观点非常值得推广。辅助机器一定要和目标机器保持尽量的一致性。
如果辅助机器和目标机器差异大的话,可能根本不会在目标机器上出现的问题在辅助机器上出现,这个时候就很糟糕,因为好的程序员已经被灌输了一种思想,就是出现问题时,先从自身找起,如果因为辅助机器带来的意外bug,会降低程序员的工作情绪。
辅助机器的功效自不必提,我们喜欢把目标机器的运行环境在本地搭建,然后在本地先进行测试,因为本地测试便于我们尽快的定位到bug和调试bug。
集成测试是一个非常好的测试观点。在之前的公司,由于人力资源、硬件设备充足,我们的代码会进行一系列的测试,包括代码review、代码测试、集成测试、性能测试。在进行集成测试期间,我们不允许任何人去修改这个版本中的bug,只有等待下个测试版本出现之前,这个版本的代码是不允许人修改的,只有等这个版本的集成测试bug全部修复完毕后,再进行一个版本的测试。
高级语言和交互式编程
高级语言,就不用说了,现在的我们几乎都会使用Java、C++等等高级编程语言来完成我们的项目编程。
对于交互式编程,我并没有读懂这个内容。??????????????