软件项目管理培训讲座系列之四——代码管理规范2020年1月24日软件项目管理培训之三——代码管理规范2内容提要代码管理的作用和内容代码编写与调试的规范代码控制与管理的规范2020年1月24日软件项目管理培训之三——代码管理规范3代码管理的作用代码——软件功能和性能的核心流程与结构,软件功能的基础算法与接口,软件性能的基础安全与稳定,软件维护的基础代码——产品升级和系统维护的对象代码注释与说明,提高软件的可复用性系统设计与结构,提高功能的可扩展性版本控制与备份,保持软件团队的价值2020年1月24日软件项目管理培训之三——代码管理规范4软件开发的艺术性分析一种需求可用多种思路实现不同的系统平台、不同的应用环境一种思路可用多种方法实现千差万别的算法思想一种方法可用多种工具实现C/C++、VisualBasic、Delphi、ASP、C#一种实现可用多种方法评测黑盒测试、白盒测试、压力测试、安全测试软件开发的艺术性==不确定性规范的代码折射相同的思想2020年1月24日软件项目管理培训之三——代码管理规范5代码管理的内容代码编写规范变量命名与数据结构定义空格、括号、Tab的使用注释、说明的使用代码调试习惯如何增加调试输出或添加调试开关?如何保证调试过程的稳定?代码提交规范版本的定义与应用代码的集中管理,Checkin/Checkout代码维护习惯影响代码运行的环境因素影响代码性能的工作方法2020年1月24日软件项目管理培训之三——代码管理规范6对代码管理的认识误区误区1:代码体现个人风格,统一规范扼杀创造性骑士时代的落后观点——团队远比个人重要误区2:代码风格只是个人习惯,无需刻意统一软件价值观点:代码也是一种商品,统一规格很重要软件出口观点:欧美市场、日本市场都要求规范代码误区3:代码规范只是细枝末节,提高精妙程度才重要天才培养模式和蚂蚁工场模式:规范胜于精妙武林高手与前军万马:还记得郭靖和杨过吗?误区4:代码规范只是规定如何编写代码代码规范包括编写代码、维护代码和管理代码代码=思想=良好的文字作品2020年1月24日软件项目管理培训之三——代码管理规范7内容提要代码管理的作用和内容代码编写与调试的规范代码控制与管理的规范2020年1月24日软件项目管理培训之三——代码管理规范8代码编写规范的内容命名规范如何定义代码文件名与模块名如何定义变量与数据结构名称如何定义函数名与接口名称语句编写规范Tab、空格、括号的使用语句排列与空行代码注释规范文件头注释与函数头注释函数内部注释2020年1月24日软件项目管理培训之三——代码管理规范9案例分析代码编写规范示例代码片断示例分析和总结良好的代码规范是团队精神和职业素养的体现习惯的培养是保证团队成功的关键2020年1月24日软件项目管理培训之三——代码管理规范10代码编写的工程习惯习惯1:使用空格和空行,增进易读性习惯2:注重多重嵌套语句的起止注释习惯3:避免使用过于复杂、难懂的算法习惯4:尽可能不要使用递归2020年1月24日软件项目管理培训之三——代码管理规范11代码调试规范的内容如何尽可能的减少出错概率?增加对数据合法性的检查增加对各类异常的处理增加关键处理步骤的调试输出代码调试规范出错控制机制的设计:ErrorCode如何定义调试输出机制的设计:如何Output、Return调试代码的编写规范2020年1月24日软件项目管理培训之三——代码管理规范12如何减少出错概率示例1:计算窗口的宽高比usWHRatio=usWeight/usHeight;可能出错的机会:除零错如何保证出错概率少?示例2:如何处理各类可能的异常返回值控制:ErrorCodeC++中的Catch…Try…应用应用界面中的消息框2020年1月24日软件项目管理培训之三——代码管理规范13代码调试规范如何设计ErrorCodeErrorCode的定义规则ErrorCode的使用规则ErrorCode的分析规则如何添加调试代码和调试输出预编译宏定义的使用:代码运行的开关调试输出的设计:文件输出和界面输出调试代码运行控制:Debug版和Release版2020年1月24日软件项目管理培训之三——代码管理规范14内容提要代码管理的作用和内容代码编写与调试的规范代码控制与管理的规范2020年1月24日软件项目管理培训之三——代码管理规范15代码控制的规范软件开发的分工每一个模块、文件均指定固定人员首要的工作是确定接口次要的工作是确定数据结构和相关常量定义代码权限的控制应用VSS建立代码管理环境针对Project分配合理的权限保证每个人规范的使用Checkin/Checkout2020年1月24日软件项目管理培训之三——代码管理规范16代码控制的常见错误重复分工的危害多人同时写一个文件或一个函数造成冲突多人Checkin/Checkout造成代码丢失资源的重复投入和浪费不注重权限和版本的危害无法重复、永远丢失的代码无法跟踪、无法重现的错误无法控制、无法管理的团队2020年1月24日软件项目管理培训之三——代码管理规范17案例剖析——代码管理示范VSS的架构示例建立目录结构、增加管理文件分配权限、添加版本控制VSS的应用示例如何Checkin/CheckOut如何增加版本说明如何实现开发过程的可重复2020年1月24日软件项目管理培训之三——代码管理规范18结束语代码管理——软件生产线的操作规范优秀的程序员=优秀的作家代码管理:团队协作——思想交流——产业价值2020年1月24日软件项目管理培训之三——代码管理规范19Thanksforyourtime!Questions&Answers