技巧 6:使用处理器示例代码进行测试
设计硬件时,构建原型测试电路总是有益的,这样可确保工程师对电路有正确的理解,然后再做电路板布局,这在设计软件时也同样适用。
硅片制造商通常都有示例代码,可用来测试微处理器的各个部分,这样工程师们就可判定该部分的工作情况。
此方法使人们明确知道应该如何设计软件体系架构,以及可能碰到的任何问题。在设计初期了解可能存在的障碍,比在产品交付前的最后几小时才发现它们要好得多。
这是预先测试一段代码的好方法,但需提醒的是,制造商代码往往不是模块化的,要经过彻底的修改才可用于实际应用。
随着技术的进步,也许某一天芯片供应商会提供可用于生产的代码。
技巧 7:限制功能复杂度
工程学中有一个旧词叫“KISS”——保持简单和直接。
无论在处理何种复杂的工作时,最简单的方法就是把它分解为更小、更简单、更易处理的任务。
随着工作或功能变得越来越复杂,人们要准确无误地记录所有的细节也变得更困难。
在写一个函数时,其复杂度在当时看似适中,然而还必须考虑到,6个月后当工程师进行维护时,还需要查看代码。
测量函数复杂度(如循环复杂度)的方法很多,现在已经有工具可以自动计算某个函数的循环复杂度。
由经验可知,函数的循环复杂度保持在10以下是最理想的。
无论在处理何种复杂工作时,最简单的方法就是把它分解为更易处理的任务。
技巧 8:使用源代码存储库并频繁提交代码
人都是会犯错误的,写代码时也会犯错。这就是为什么开发人员使用源代码存储库是如此重要。源代码存储库可使开发人员“存入”一个好的代码版本,并描述对该基础代码所做的修改。这不仅使开发人员可以复原或追溯到的旧版代码,还可以比较旧版代码之间的不同。如果开发人员做的一系列修改破坏了系统,只需点击一下即可恢复好代码版本!请谨记,如果不频繁提交代码,存储库就不会达到预期目的。如果做了不可修复的改变,过两周才提交代码再恢复的话,就会造成大量工作和时间的损失!
技巧 9:代码注释
在紧张的软件开发中,开发人员很容易把注意力集中在编写和调试代码上,而忽略做详细的注释。
在压力之下,注释工作往往拖到最后,因为开发人员认为这是最后的一件事。
然而,趁代码在你脑中记忆犹新时就做注释是至关重要的,这样做可使其他开发人员或以后你自己读懂注释,理解代码是如何工作的。
技巧 10:使用Agile开发流程
无论做何种类型的工程设计,都建议先设定并遵守某种流程,以便质量和成本都保持稳定的并能按时交付。
软件开发人员已成功使用Agile开发流程开发高质量软件,这一流程可按任务的优先顺序做开发。
优先级别最高的任务在指定的时间内首先完成,这被称为迭代。
这种方法的好处是可以使软件开发流程保持顺畅,还可以根据结果和客户的需要,使需求和任务适应每一次迭代并做相应的修改。