开发不只是写代码

软件工程师的开发周期中,主要有两类开发:雇主的需求、个人开源项目/参与的开源项目。这两类开发需求中,软件工程师的职责不只是写代码,明确这一点对软件工程师的成长和项目的进度至关重要。由于笔者参与雇主开发比较多,这里笔者简单总结下参与雇主需求开发中的注意事项。

雇主中的开发主要有以下几个点:

  1. 产品规范,主要是需求的提出、审核、讨论等
  2. 项目规范,主要是项目进度的把控,时间、难度、人员分配等
  3. 研发规范,分支规范、review规范、测试/上线规范等(git flow)
  4. 测试规范,测试、自动化测试、AB测试、灰度测试、bug fix流程等
  5. 运维规范,项目上线、故障恢复等

上面的点只是提供了一个思考的角度,并不是所有公司都要满足这些。事实上,每个公司根据自身情况(服务外包、自身业务、优先级、紧急情况等)会有不同的体现。

DB

DB兼容性

多个开发人员修改同一个项目,使用同一个测试环境,如果A修改了DB schema,B没有修改,A、B二人同时用同一个DB测试自己的代码,如果修改的DB schema没有考虑兼容性,则会导致B的测试环境无法使用,因为DB schema不一致,查询DB报错。好的DB schema要考虑向下兼容,则不会出现这个问题,以Djanog为例,考虑一下几点:

  • 新加字段要加上null=true

TODOs

comments powered by Disqus