目前我们在学校完成的测试之类的,都是个人单独完成。确实,软件工程项目通常是一个开发团队去做,但不可因此忽略个人技术,这里就提到了一个重要的流程:单元测试。我个人对自己写的代码从来都是写完一个功能,随便写几个样例扔上去简单测试一下,至少书中那样详细的单元测试流程,我没有做到。但不可否认,这样的测试十分重要。闷头写完所有代码,测试最终结果时报错,当你回顾所有代码时你会感到非常头疼,倒不如一步一脚印慢慢走。这只是个人项目,如果放在开发团队上,每个人负责一个模块,自己的模块出了问题,也是很没面子的事情。此外,在开发项目上,还有一个回归测试,这个在我的理解看来,大概就是更新软件后出了bug,倒退到原来没出bug的情况。最后在流程上的重点,注释是关键,毫不夸张地说,现在让我去看之前写过的,没有注释的项目,若非时间短还有些印象,我要看懂也有些麻烦。注意一点,注释是写给别人看的,尽量写得简练一些。
怎样成为一个合格软件工程师,最基础的技术功底一定要过硬,在通过阅读书籍和老师传授的经验之后,软件工程师要有一定的思想基础,我们是工程师,要讲究分析设计,而不是单纯的“码农”。先谈谈技术功底,衡量技术总归需要项目来看,一个软件开发的工作量和质量的衡量标准有4点:项目/任务大小;花费时间;质量如何;是否按时交付。分摊在个人身上的话,最直观的也就是完成时间了。以前我一直觉得,只要在最短时间内完成,就是最好的,但显然我考虑得少了,首先你要保证缺陷不要太多,“re-work”的时间是记入完成时间内的,同时“re-work”过多也从侧面上反应了开发者的技术不严谨,还有就是时间的测量方式,之前提到过软件上讲究稳定性,一个程序员是否有稳定且扎实的技术功底,要根据他完成工程时的时间方差来看。是的,除了直观的时间结果之外,还要通过方差来看看这个程序员是否“稳重”。
在第三章的最后,书里提了一些很现实的东西,考级啊职业啊什么的。让我印象较深的还是“技术的反面”,想成为一个专业的程序员,我们不能一直犯低级错误,目前实现一些工程,作为大学生的我们尚且需要上网查资料,问题就在于是否产生了依赖性,要知道,我们最终的目的不是应付了事,而是把技术变成自己的。