构建之法阅读笔记
第三章 软件工程师的成长
3.1 个人能力的衡量与发展
①软件工程包括了开发、运用、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。
②初级软件工程师的成长包括以下几种:
(1)积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。例如:对JAVA、C/C++、C#的掌握,诊断/提高效能的技术,对设备驱动程序、内核调试器的掌握,对于某一开发平台的掌握
(2)积累问题领域的知识和经验(例如对医疗或金融行业的了解)
(3)对通用的软件设计思想和软件工程思想的理解
(4)提升职业技能(区别于技术技能),包括:自我管理的能力、表达交流的能力、与人合作的能力、按质按量完成任务的执行力
(5)实际成果——最重要的评价标准
3.2 软件工程师的职业发展
自我评估,自我评价清单:
第四章 两人合作
4.1 代码规范
包括代码风格规范和代码设计规范
4.2 代码风格规范
代码风格原则:简明、易读、无二异性
缩进:4个空格,而不是TAB
行宽:限定为100字符
括号
断行与空白的{}行
分行
命名:匈牙利命名法
下划线:分隔变量名字中的作用域标注和变量语义
大小写(Pascal形式和Camel形式)
注释
4.3 代码设计规范
函数:只做一件事,并且要做好
goto:有助于程序逻辑的清晰体现
错误处理:参数处理、断言
类的处理
4.4 代码复审
①形式:自我复审、同伴复审、团队复审
②目的:找出代码错误、发现逻辑错误、发现算法错误、发现潜在的错误和回归性错误、发现可能需要改进的地方、传授经验
③代码复审后把记录整理出来:
(1)更正明显的错误
(2)记录无法很快更正的错误
(3)把所有的错误记在自己的一个“我常犯的错误”表中,作为以后自我复审的第一步
4.5 结对编程
①角色:
驾驶员:控制键盘输入
领航员:起到领航、提醒的作用
②好处:(1)在开发层次,可以提供更好的设计质量和代码质量,两人合作解决问题的能力更强。
(2)对开发人员,带来更多的信心,高质量的产出带来更高的满足感。
(3)企业管理层次上,有效地交流,相互学习和传递经验,分享知识,取得更高的投入产出比。