关于嵌入式软件开发流程上的一些思考

一.提纲

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.问题定位

  在出现问题之后,如何快速准确地定位问题。首先,出现问题的版本确认,回退测试,确认是由于版本修改引入的问题,还是本身就存在的问题。这里就需要说到上面的版本管理了。如果对提交的版本都有非常好的控制,以及日志说明,那即使搜关键字都能查找到一些问题。问题的定位,其实主要看程序员对项目模块的掌握程度,之前良好的开发和记录习惯则可以让你在问题定位时事半功倍。

 

posted @ 2019-07-08 15:17  稀客  阅读(810)  评论(0编辑  收藏  举报