zoukankan      html  css  js  c++  java
  • 《代码大全》阅读笔记-31-布局与风格

    格式化的基本原理指出,好的布局凸现程序的逻辑结构。

    对于C++,请仔细组织源文件中内容的次序为:

    1. 文件的描述性注释
    2. #include文件行
    3. 在多个类里使用的常量定义(如果文件里有多个类)
    4. 在多个类里使用的枚举(如果文件里有多个类)
    5. 宏函数定义
    6. 在多个类里使用的类型定义(如果文件里有多个类)
    7. 导入的全局变量和函数
    8. 导出的全局变量和函数
    9. 本文件私用的变量和函数
    10. 各个类,包括各个类中的常量定义、枚举以及类型定义

    核对表(布局)

    一般问题

    • 格式化主要是为了展现代码的逻辑结构吗?
    • 你的布局方案能统一地运用吗?
    • 你的布局方案能让代码易于维护吗?
    • 你的布局方案是否有利于代码的可读性?

    控制结够的布局

    • 你的代码中避免begin-end对或{}的双重缩进了吗?
    • 相邻的块之间用空行分隔了吗?
    • 对复杂表达式格式化时考虑到可读性吗?
    • 对只有一条语句的块的布局始终如一吗?
    • 语句与其他控制结构的格式化保持一致了吗?
    • 对goto语句的格式化是否让其显眼了呢?

    单条语司的布局

    • 为逻辑表达式、数组下标和子程序参数的可读性而使用空格了吗?
    • 不完整的语句在行末是以明显有错的方式结束吗?
    • 后续行按照标准数目缩进了吗?
    • 每行顶多只有一条语句吗?
    • 所写的每个语句都没有副作用吗?
    • 每行顶多只声明一个数据吗?

    注释的布局

    • 注释与其所注释的代码的缩进量相同吗?
    • 注释的风格便于维护吗?

    子程序的布局

    • 你对每个子程序参数的格式化方式便于看懂、修改、注释吗?
    • 采用空行分隔子程序的各部分了吗?

    类、文件和程席的布局

    • 多数类和文件之间是一一对应的关系吗?
    • 如果文件内有多个类,各类中的子程序按类分组了吗?各类都清楚标识了
    • 文件中的子程序用空行清楚地分开了吗?
    • 在没有更好的组织形式的场合,所有子程序都按字母顺序排列了吗?

    要点

    • 可视化布局的首要任务是指明代码的逻辑组织。评估该任务是否实现的指标包括准确性、一致性、易读性和易维护性。外表悦目比起其他指标是最不重要的。然而,如果其他指标都达到了,代码又质量好,那么布局效果看上去也会不错。
    • VisualBasic具有纯代码块风格,而Java的传统做法就是使用纯块风格,所以若用这些语言编程,就请使用纯代码块风格。C++中,模拟纯代码块或者begin-end块边界都行之有效。
    • 结构化代码有其自身目的。始终如一地沿用某个习惯而少来创新。不能持久的布局规范只会损害可读性。
    • 布局的很多方面涉及信仰问题。应试着将客观需要和主观偏好区分开来。
    • 定出明确的指标,在此基础上冉讨论风格参数的选择。
  • 相关阅读:
    (转)C# BackgroundWorker组件的原理分析
    (转)App.Config详解及读写操作
    (转)C# 控制蜂鸣器发声
    存储过程小例子
    DB通用类:MySQL通用类
    poj 1936 All in All
    Bone Collector 01背包问题
    sdut1359 求最大和子矩阵
    求最大值
    后缀式求值
  • 原文地址:https://www.cnblogs.com/taceywong/p/8726406.html
Copyright © 2011-2022 走看看