• 【读书笔记】——《代码大全》(三)


    本周选读了设计构造块与使用变量的部分内容。

    Design in Construction

    设计是讲求层次的。

    第二层“分解为子系统和包”的主要任务是确定如何把程序分为主要的子系统。本周结束的结对编程作业中core和ui就相当于整个软件的两个子系统。作者指出,在这一层次中,有一点非常重要,就是制定不同子系统之间相互通信的规则。只有限制子系统之间的通信,每个子系统的存在才更有意义。通过这次结对编程的实践,对这一点有了更深的理解。没有core和ui之间接口的规则制定,ui难以和core组对接,这样ui也就没有了意义。

     

    作者还讨论了封装和继承的特点。本次结对对接的过程中,我们一开始尝试对接的时候,使用的方法是把对方的代码直接复制到我们的代码中,并未使用封装直接调用。事实证明,这并不是一个高效率的方法。封装帮助你管理复杂度的方法是不让你看到那些复杂度。我们只要清楚地知道了接口是怎样设置的,就可以调用动态链接库。

     

    寒假里学了一点python,所以对继承有一定的理解。基本员工是一个类,全职员工与兼职员工拥有基本员工的大部分属性,同时又有自己的特殊点,这时候可以定义全职员工类和兼职员工类,继承基本员工类的某些特征。合理地使用继承,可以简化编程的工作。

     

    一个好的接口,就像是冰山的尖儿一样,尽可能少地暴露其内部工作机制。当然,要保证内部工作的逻辑等没有错误。

     

    General Issues in Using Variables

    做了一下书上的数据认知测试,自己对数据结构的知识掌握得还不够。创建变量听起来很简单,但在一个细小的方面养成一个好的习惯可以省去时间和麻烦。

     

    变量初始化原则:

    1.    在声明变量的时候初始化

    2.    在靠近变量第一次使用的位置初始化它

    3.    在靠近第一次使用变量的位置声明和定义该变量

    这其中体现了就近原则。如果在程序的一开始就声明和初始化所有的变量,那么等到我们要使用它的时候就很难确定它的值是否被修改。

    4.    可能的情况下使用const关键字

    这适用于变量初始化以后值不再发生改变的情况。

    5.    注意计数器和累加器的初值

    6.    在类的构造函数里初始化该类的数据成员

    7.    检查是否需要重新初始化

    8.    一次性初始化具名常量

    9.    检查输入参数的合法性

    这点在本次的结对编程作业中得到了很好的体现。

    10. 使用内存访问检查工具来检查错误的指针。

    指针的使用太容易发生错误了。

     

    另一句耳熟能详的话是尽量避免使用全局变量。全局变量的跨度和生存时间都很长,这样既增加了错误发生的可能性,也降低了程序的可读性。减小作用域的一个很有效的方法是,从一开始就尽量让变量局部化,考虑它所作用的最小的范围,而不是一开始就把它设为全局变量。全局变量通常是无奈之举。

  • 相关阅读:
    MongoDB 与 MySQL 性能比较
    PySpider简易教程
    使用redis有什么缺点
    禅道
    Shell02
    Shell01
    性能测试06
    性能测试05
    性能测试04
    性能测试03
  • 原文地址:https://www.cnblogs.com/Esther-SE/p/8883630.html
Copyright © 2020-2023  润新知