软件开发操作规范SOP

时间:2022-12-15 10:23:28

 

软件开发操作规范SOP

 

版本

修订内容

v0.0.1

[20160620]完成草稿.

 

 

 

 

  • 1.源码开发

使用到的工具,SVN,SourceInsight3.5,BeyondCompare.

 

  • 2.善用工具

SourceInsight是很强大的代码编辑和阅读工具.但是标准版本是不支持UTF8字符编码的,中文是使用ANSI编码才显示正常的. 幸好我们有一些插件帮忙. 我建议使用这些插件,从而支持UTF8编码,能够在各种编辑器和编译平台完美显示. SourceInsight还有一些可自定义的宏,极大提高编码效率. 此外建议使用我提供的配置文件,主要是使用等宽字体以及关键字标注风格.

BeyondCompare是用于对比两个目录或者两个文件的,它还能对比两个压缩包(tar,tgz,zip,rar),两个文本(xml,txt,cpp),两个wordexcel文档,甚至于两个图片文件. 我建议修改其配置,

软件开发操作规范SOP

软件开发操作规范SOP

 

SecureCRT是用于远程会话的工具,通常telnet到设备上会用到它,它比windows自带的telnet客户端好处多多. 能记录日志文件,能够搜索文本,很方便的回滚和复制粘贴,等等.建议使用我提供的SecureCRT工具包,和标准版本相比改变了默认配置,可自动记录日志文件.

  

  • 3.准备工作

1.SVN服务器上源码导出(export)PC上某个目录,作为编辑目录.

使用SourceInsight导入编辑目录中的源码文件.比如,E:\project\temp\default-hi3518.

2.在编译服务器或虚拟机上,创建一个同名的编译目录.

比如,Y:\project\temp\default-hi3518.

3.SVN服务器上源码检出(checkout)PC上某个目录,作为SVN操作目录.

比如, E:\svn\temp\default-hi3518.

 软件开发操作规范SOP

 

  • 4.修改源码的过程

1.通过SourceInsight查看和修改编辑目录的源码.

2.通过BeyondCompare将编辑目录的源码同步到编译目录. 此过程中,可以确认BeyondCompare中差异点是本次修改和要验证的.

3.在编译目录,编译源码和验证.

 

下图显示了编辑目录和编译目录通过BeyondCompare的对比操作.

 软件开发操作规范SOP

 

  • 5.提交源码的过程

1.SVN操作目录执行更新(update).

因为可能在我上次执行更新(update)后有其他人提交了修改,我必须更新这些修改,否则直接提交我的源码,可能会覆盖其他人的修改.

2.通过BeyondCompare将编译目录与SVN操作目录进行同步和合并.

此过程中,查看BeyondCompare中的差异点,确认是本次将要提交的修改,要同步到SVN操作目录,或者是SVN操作目录中更新到的其他人的修改,要同步到我的编译目录中.

3.如果合入了其他人的修改,就需要在编译目录,再次编译源码和验证.验证完毕后,将编译目录的修改同步到编辑目录. 此过程中,确认这些差异点都是其他人提交的修改.

4.SVN操作目录执行提交(commit).[Notes1:提交前还有些事情要做,请看下文]

 

下图显示了编译目录和SVN操作目录通过BeyondCompare的对比操作.

 软件开发操作规范SOP

 

  • 6.DeWarning

程序要完成功能,还要干的漂亮.编译中出现的每个warning都要找到并消除.虽然大部分warning都无害,但有些可能会致命,可能导致难以复现和查找的死机问题. 消除每一个隐患,从消灭warning开始.

将要提交的修改,需要做dewarning处理,确保不会引入新的warning.

 

  • 7.代码检视

在向SVN提交修改前,除了要做自测试和dewarning,还需要请其他同事帮助检查修改的代码.这称之为代码检视.

必须完成自测试之后,才能进行代码检视.

代码检视的目的,一是检查修改是否能解决现有问题,是否会引入新问题.二是检查所做的修改是否符合大家约定的代码规范. 代码提交之后,代码就是所有人的,”不合群”的代码不受欢迎.

 

代码检视之前,要准备好修改前后的两份代码,通过BeyondCompare展示出每个修改点.然后邀请其他同事一起检查代码.

代码检视过程中,应该让别人明白我此次修改的目的,我的实现思路,以及每个修改点的意义.如果对源码注释不够,代码风格不符合约定标准,也会让人难以明白.

代码检视通常会做的,检查代码规范和注释,检查有没有资源泄漏(内存没释放,句柄没关闭等等),检查条件分支是否完整无遗漏,检查边界条件是否合适,是否有冗余的代码.其他各种挑剔.

 

做代码检视时如果被别人发现有明显缺陷,对程序员来说多少有点丢脸,这是正常的. 如果没有这样的压力,可能就没有那种动力去做得完美. 如果我修改代码的时候,知道明天每行修改都会被别人围观,那今天我就尽量做得完美点.否则,我也可以糊弄一下,程序能在实验室环境下测试过就不管代码会不会变质腐败. 如果摆好心态,把代码当成大家的作品,不让我们的作品出现人为不慎导致的瑕疵. 检视代码就是一起围观,不因为检查到别人代码的缺陷而认为自己更高明,也不因为被别人检查到自己代码的缺陷而感觉被嘲笑.

 

问题单处理