zoukankan      html  css  js  c++  java
  • 关于嵌入式软件开发流程上的一些思考

    一.提纲

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

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

  • 相关阅读:
    注册登录过程点滴(一):初始的想法分享是王道
    根据Cron表达式,通过Spring自带的CronSequenceGenerator类获取下次执行时间
    解决jqGrid中,当前页一直显示为0的问题
    使用JDK自带功能,实现一个简单的Web Service接口发布
    Linux 僵尸进程 ( Zombie or defunct )
    C语言赋值操作符
    面试题 ( ++a )和( a++ )
    关于学习Linux的经典书籍
    C语言中的 sizeof 问题
    条件变量 pthread_cond_wait ()
  • 原文地址:https://www.cnblogs.com/yeanz/p/11061119.html
Copyright © 2011-2022 走看看