软件构造
编程 – 调试 – 代码评审
编程
要求:正确可靠,简明清晰,高效率,在清晰的前提下追求效率。
编码风格
标准的书写格式与编码风格。
- 使用缩进与对其体现逻辑结构
- 使用空行分隔逻辑
- 语句分行
命名:
- 使用有意义的名称进行命名,如短句英文取首字母,简单名字取全称
- 命名要遵守惯例。
注释:
- 一般情况下,源程序的有效注释量必须在20%以上
- 注释的原则是有助于对程序的阅读理解,不要注释无意义注释,长篇大论不可取
编程语言与编程工具
程序设计语言
工程特性:
- 可移植性
- 开发工具的可利用性
- 可重用性
- 可维护性
程序设计语言的分类
- 按语言级别分类{低级语言(机器,汇编),高级语言(接近于人的自然语言)}
- 按解决问题的方式分类{面向机器的语言(汇编),面向过程的语言(算法+数据结构)可读性,面向对象的语言(对象+消息),面向问题的语言(只需指出问题做什么,如SQL)}
- 按程序的执行方式{解释执行语言Python,编译执行语言,编译解释语言}
- 按应用领域分类{单机语言,网络编程,数据库,人工智能}
- 按应用范围分类{通用语言,专用语言(单一领域)}
机器语言
组成
- 操作码
- 操作数的地址
- 操作结果的存储地址
- 下条指令的地址
特点
- 大量繁杂琐碎的细节牵制着程序员
- 程序可靠性差,开发周期长
- 程序设计曲高和寡
- 可读性差,不便于交流与合作(全是01二进制)
- 可移植性差,重用性差,依赖于具体的计算机
汇编语言
- 汇编语言是面向具体机型的,它离不开具体计算机的指令系统
- 不同型号的计算机,有着不同结构的汇编语言
- 特定的汇编语言和特定的机器语言指令集是一一对应的。
- 不同平台之间不可直接移植
高级语言
- 按照应用特点划分{基础语言,结构化语言,专用语言,面向对象语言}
- 按照语言的内在特点划分{系统实现语言(克服汇编程序设计的苦难,如C语言),静态高级语言,块结构高级语言,动态高级语言}
调试
程序员每完成或者修改一次程序就会最少执行一次调试程序
经验:
- 找到相应的数据输入重现问题
- 如果在进行了各种手段的诊断后确认程序代码无问题,请验证环境是否有问题
- 灵活的使用编译器提示
- 持续缩小嫌疑代码的范围(二分法)
- 检查刚刚修改过的部分
- 修复缺陷的时候,建议一次修复一个
- 修改前保留旧版本的备份,如果项目使用的配置管理工具,这个工作会由配置管理工具完成,否则就需要程序员手动完成
代码评审
- 代码评审时对代码的系统检查
- 通过评审,可以提高软件的质量和开发者的技巧
- 代码评审包括代码会审,走查,办公桌检查3种方式
实践经验:不能评审完全的代码,至少评审20~33%的代码,以促使程序员编写好的代码,花足够的时间进行评审,但每次不要超过60~90分钟,确定注释是否正确,使用检查列表。
检查列表:确认我本次工作需要检查的内容:
1 条评论
momoc · 2019年11月25日 下午6:05
或许这就是大佬吧。