一.提纲
1.流程管理
2.代码规范
3.确定最高效的开发工具
4.版本管理
5.问题定位
二.正文
1.流程管理
整个的流程可以分为几个小的部分:
1)开发需求确认流程
2)开发流程
3)测试版本发布提交流程
1)开发需求确认流程
在开发编码或者是性能压力测试前,首先要明确开发或者测试的需求,一般需求都必须要由PM提出,或者是上面直接分配。根据提出的需求,我们再明确设计的框架,测试的要素。确认过程中的所有交互,尽量由邮件进行,保存好整个需求确认流程。每个程序员都是自己的产品经理,在确认的过程中,要充分考虑到边缘情况,比方说超出阈值的情况如何处理等等。问题在设计前期的提出,能极大减少之后出现低级问题的概率,这些是很小的细节把控,但是确实良好思考习惯的养成。
除了对开发内容的把控确认外,时间的评估也是一件非常重要的能力和不能缺少的环节,尽量在不影响项目整体进展的前提下,为自己争取开发时间,这样可以充分的考虑整个功能情况,和自测。
2)开发流程
开发中最多涉及到的是编码的规范,除了一些硬性的代码规范外,程序员最好还要根据自己所处项目的详细情况,思考自己产出代码的可阅读性,可维护性,可移植性,可拓展性。
3)测试版本发布提交流程
嵌入式研发往往不会直接处理对外的版本发布,嵌入式最大的客户,可能就是测试部,可能还有一部分前线调试。在我们发布版本提交给测试部测试的时候,我们要和测试部明确好这个版本中所携带的问题,一般来说,合格的测试,除了对版本进行basic function测试外,还会针对版本新修复问题,或者增加功能进行相应的压力测试。要牢记,开发和测试是相互协作的,我们的目的是绝对保证对外版本的稳定性。所以,在提交给测试版本时,研发需要非常明确地说明整个版本的详细内容。
2.代码规范
(转自http://c.biancheng.net/view/158.html)
代码规范化基本上有七大原则,体现在空行、空格、成对书写、缩进、对齐、代码行、注释七方面的书写规范上。
......
3.确定最高效的开发工具
工欲善其事必先利其器,你的电脑,你的服务器,你的开发板等等就是你的小作坊,你必须了解这个小作坊,用哪些工具能让它更高产,让它的产出质量更高。对于程序员来说,每个人都是从入门到熟练到精通。并不是每个人都那么幸运,在刚开始的时候就能碰到好的师傅,引路人,养成比较好的开发习惯。因此,在我们心中要有自我怀疑否定的观念,再简单点就是自我反思。工具一直在更新,也许一直都追求不到一个 最 ,但是你必须要有这种反思的观念,才能不断提高效率,对你的开发环境精益求精。
4.版本管理
版本管理主要有svn和git。其实稍微规范一点的的公司,都会对每一个版本的提交严格控制,出现regression是一件非常严重的事情,regression一般是由于功能未实现,或者由于提交导致的一些比较严重的side effect问题。在版本提交前,code review是一件非常重要以及必要的事情。另外,对于每个一个提交的版本,写好版本日志log也是一件非常重要的事情,写好日志log有助我们之后问题的定位,也有助于其他人理解对应的修改。理应来讲,每个版本拉下来,都必须是能正常工作的稳定版本。
5.问题定位
在出现问题之后,如何快速准确地定位问题。首先,出现问题的版本确认,回退测试,确认是由于版本修改引入的问题,还是本身就存在的问题。这里就需要说到上面的版本管理了。如果对提交的版本都有非常好的控制,以及日志说明,那即使搜关键字都能查找到一些问题。问题的定位,其实主要看程序员对项目模块的掌握程度,之前良好的开发和记录习惯则可以让你在问题定位时事半功倍。