zoukankan      html  css  js  c++  java
  • 读书笔记:代码大全(第二版)


    # 第二部分
    ## 第7章 高质量的子程序
        输入变量的值不应该被改变
        慎用全局变量
        子程序的作用应该单一而明确
        注意防范错误的输入数据
        不应该直接使用意义不明的数值
        子程序参数不应太多,最好不要超过7个
        子程序的参数应按照规律顺序排布
        子程序的有效注释要充分
        子程序的命名要能概括其作用

    ### 7.1 创建子程序的正当理由
        降低复杂度
        引入中间、易懂的抽象
        避免代码重复
        支持子类化
        隐藏顺序
        隐藏指针操作
        提高可移植性
        简化复杂的布尔判断
        改善性能
        确保所有子程序都很小
        隔离复杂度
        隐藏实现细节
        限制变化所带来的的影响
        隐藏全局数据
        行程中央控制点
        促成可重用的代码
        达到特定的重构目的

    ## 7.2 在子程序层上设计
    内聚性,子程序中各种操作之间联系的紧密程度

        功能的内聚性
        顺序上的内聚性
        通讯上的内聚性
        临时的内聚性
        过程上的内聚性
        逻辑上的内聚性
        巧合上的内聚性

    ## 7.3 好的子程序名字
        描述子程序所做的所有事情
        避免使用无意义的、模糊或表述不清的动词
        不要仅通过数字来行程不同的子程序名字
        根据需要确定子程序名字的长度
        给函数命名时要对返回值有所描述
        给过程起名时使用预期强烈的动词加宾语的形式
        准确使用对仗词
        为常用操作确立命名规则

    ## 7.4 子程序可以写多长
    最好在200行之内

    ## 7.5 如何使用子程序参数
        按照输入-修改-输出的顺序排列参数
        考虑自己创建in和out关键字,C++中的const来定义输入参数更为适宜
        如果几个子程序都用了类似的一些参数,应该让这些参数的排列顺序保持一致
        使用所有的参数
        把状态或出错变量放在最后
        不要把子程序的参数用作工作变量
        在接口中对参数的假定加以说明,合理使用断言
        把子程序的参数个数限制在大约7个以内
        考虑对参数采用某种表示输入、修改、输出的命名规则
        为子程序传递用以维持其接口抽象的变量或对象
        使用具名参数
        确保实际参数与形式参数相匹配

    ## 7.6 使用函数时要特别考虑的问题
    ## 7.7 宏子程序和内联子程序
        把宏表达式整个包含在括号内
        把含有多条语句的宏用大括号括起来
    ```
    #define LookupEntry(key,index){
        index = (key - 10)/5;
        index = min(index,MAX_INDEX);
        index = max(index,MIN_INDEX);
    }
    ```
        用给子程序命名的方法来展开后代码形同子程序的宏命名,以便在需要时可以用子程序来替换宏

    宏子程序在使用上的限制


  • 相关阅读:
    安全测试基础知识
    Python思维导图(一)—— 基础
    Java 高级点的东西
    安全测试通用用例
    测试基础篇(一)—— 面试终极常见
    测试基础篇(二)—— 面试挺常见
    差分约束基本讲解
    0x42 数据结构进阶树状数组
    Codeforce Problem 711A Bus to Udayland (正则表达式)
    POJ 1456 Supermarket【贪心 + 并查集】
  • 原文地址:https://www.cnblogs.com/bog-box/p/14735965.html
Copyright © 2011-2022 走看看