第九章 伪代码编程过程

在创建类的过程中,我们按照以下步骤进行:

  1. 创建总体设计。
  2. 设计子程序。
  3. 复查并测试。

而在创建子程序时,则按照以下步骤进行:

  1. 设计子程序。
  2. 检查设计。
  3. 编写代码。
  4. 复查并测试。

在这个过程中,我们引入了伪代码的概念。伪代码是使用近似于英文的语句,以精确描述子程序中特定操作的一种方法。在编写伪代码时,可以忽略语法细节,专注于抽象层次,并可以忽略下一层次的实现细节。

伪代码的优点包括:

  • 有利于审查和修改子程序设计。
  • 支持迭代思想的实现。
  • 减少注释量,因为伪代码本身可以充当注释。

设计子程序的具体过程如下:

  1. 检查前置条件。
  2. 定义需要解决的问题,包括需要隐藏的信息、输入输出、确保前置条件和后置条件的成立。
  3. 命名原则要符合之前提到的规范。
  4. 决定如何进行测试。
  5. 查看标准库是否有已有工具可用。
  6. 考虑错误处理。
  7. 在一些情况下需要关注效率。
  8. 选择合适的数据结构与算法。
  9. 编写伪代码。
  10. 复查伪代码,尝试几种设计,留下最佳的方案。

设计好子程序并编写良好的伪代码后,将代码实现变得更加容易。这包括声明函数,可能需要提前声明变量(如在C语言中),将每行伪代码转化为注释,并相应地填充代码。

如果代码较多,可以将伪代码中代码量较大的部分拆分为单独的子程序,或者使用递归编写伪代码,直到可以将其简化为实际代码。

在编写完代码后,需要进行代码检查:

  1. 进行自检或同行检查。
  2. 编译代码,提高编译器警告级别,使用类似lint的检查工具,并检查每一个error和warning。
  3. 逐行调试,找出并消除错误。
  4. 进行收尾工作,包括检查接口、设计的内聚性和防御性、变量命名的合理性、语句逻辑、布局、文档,以及去除冗余注释。

伪代码的替代方案包括测试先行的编程方式、重构、以及契约式设计,详见《程序员修炼之道》中的详细阐述。

第十章 变量

在变量的使用中,隐式声明可能引入错误。因此,我们应尽量避免隐式声明,并遵循良好的命名规则进行频繁检查。

变量的初始化策略包括:

  1. 在声明时进行初始化。
  2. 在第一次使用时初始化。
  3. 在类的构造函数中初始化成员变量。
  4. 使用final和const,根据需要。
  5. 特别注意计数器和累加器的初始化。

在选择变量的持续性时,需要注意减小"攻击窗口"。这意味着尽量使变量局部化,减小变量引用之间的跨度,以及减少变量的存活时间。理想情况下,变量的存活时间应该从第一次引用到最后一次引用。

减小变量作用域的一般原则包括:

  1. 循环变量应在循环开始时定义。
  2. 将相关联的代码放在一起,可以将其抽出为一个子程序。
  3. 采用最严格的可见性,根据需要进行拓展。

在变量的使用中,注意绑定时间。晚绑定时间可以在编写时绑定(硬编码)不灵活、难拓展的情况下更为灵活,晚绑定时间可以在编译时、加载时、对象实例化时或调用函数时进行。

数据结构和处理数据的控制结构应该相互对应。变量的命名应该完全、准确地反映变量指代的事物,避免使用无意义的变量名。变量名的长度最好在10~16个字符之间。

第十一章 变量名的力量

变量名应该准确地表示变量指代的事物,避免使用无意义的变量名。要避免使用类似x、xx、xxx一类的无意义变量名,以及像dat、tmp一类泛泛的变量名。

变量名的长度最好在10~16个字符之间,8~20个字符也可以接受。

变量名与作用域的关系需要注意。短变量名,如i、tmp,通常用作临时变量。虽然短变量名存在一定的风险,但有些情况下它们仍然是合适的。无论如何,短变量名暗示了变量的局部作用。

在编写代码时,变量名的力量在于准确表达其指代的内容。因此,我们应该坚持使用有意义的、准确的变量名,避免过于泛泛或无意义的命名。

posted on   XiSoil  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用



点击右上角即可分享
微信分享提示