软件构造

编程  –  调试  –  代码评审

编程

要求:正确可靠,简明清晰,高效率,在清晰的前提下追求效率。

编码风格

标准的书写格式与编码风格。

  1. 使用缩进与对其体现逻辑结构
  2. 使用空行分隔逻辑
  3. 语句分行

命名:

  1. 使用有意义的名称进行命名,如短句英文取首字母,简单名字取全称
  2. 命名要遵守惯例

注释:

  1. 一般情况下,源程序的有效注释量必须在20%以上
  2. 注释的原则是有助于对程序的阅读理解,不要注释无意义注释,长篇大论不可取

编程语言与编程工具

程序设计语言

工程特性:

  1. 可移植性
  2. 开发工具的可利用性
  3. 可重用性
  4. 可维护性

程序设计语言的分类

  • 按语言级别分类{低级语言(机器,汇编),高级语言(接近于人的自然语言)}
  • 按解决问题的方式分类{面向机器的语言(汇编),面向过程的语言(算法+数据结构)可读性,面向对象的语言(对象+消息),面向问题的语言(只需指出问题做什么,如SQL)}
  • 按程序的执行方式{解释执行语言Python,编译执行语言,编译解释语言}
  • 按应用领域分类{单机语言,网络编程,数据库,人工智能}
  • 按应用范围分类{通用语言,专用语言(单一领域)}

机器语言

组成

  • 操作码
  • 操作数的地址
  • 操作结果的存储地址
  • 下条指令的地址

特点

  • 大量繁杂琐碎的细节牵制着程序员
  • 程序可靠性差,开发周期长
  • 程序设计曲高和寡
  • 可读性差,不便于交流与合作(全是01二进制)
  • 可移植性差,重用性差,依赖于具体的计算机

汇编语言

  • 汇编语言是面向具体机型的,它离不开具体计算机的指令系统
  • 不同型号的计算机,有着不同结构的汇编语言
  • 特定的汇编语言和特定的机器语言指令集是一一对应的。
  • 不同平台之间不可直接移植

高级语言

  • 按照应用特点划分{基础语言,结构化语言,专用语言,面向对象语言}
  • 按照语言的内在特点划分{系统实现语言(克服汇编程序设计的苦难,如C语言),静态高级语言,块结构高级语言,动态高级语言}

调试

程序员每完成或者修改一次程序就会最少执行一次调试程序

经验:

  • 找到相应的数据输入重现问题
  • 如果在进行了各种手段的诊断后确认程序代码无问题,请验证环境是否有问题
  • 灵活的使用编译器提示
  • 持续缩小嫌疑代码的范围(二分法)
  • 检查刚刚修改过的部分
  • 修复缺陷的时候,建议一次修复一个
  • 修改前保留旧版本的备份,如果项目使用的配置管理工具,这个工作会由配置管理工具完成,否则就需要程序员手动完成

代码评审

  • 代码评审时对代码的系统检查
  • 通过评审,可以提高软件的质量和开发者的技巧
  • 代码评审包括代码会审,走查,办公桌检查3种方式

实践经验:不能评审完全的代码,至少评审20~33%的代码,以促使程序员编写好的代码,花足够的时间进行评审,但每次不要超过60~90分钟,确定注释是否正确,使用检查列表

检查列表:确认我本次工作需要检查的内容:


1 条评论

momoc · 2019年11月25日 下午6:05

或许这就是大佬吧。

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注