随笔分类 - 2020下半年阅读笔记
摘要:我们从系统思维的角度来看一下遗留代码的修改方案。 首先是遗留代码容易出现的问题。 任何代码的修改都需要基于一个原则,那就是保证现有功能的不变。 这是一个难点,越是大的系统,修改起来就越难,由此,开发团队在应对代码修改时往往会选择保守,能不动就不动,这又进而导致第二个问题,代码出现冗余。 基于系统的增
阅读全文
摘要:修改代码的四个主要原因: 1 增加一个功能 2 修复一个bug 3 improve design 4 优化资源利用,例如内存或时间。 衡量单元测试的好坏: 1 运行的非常快。 2 帮助定位问题。 什么决定了不是一个单元测试: 1 和数据库打交道 2 和网络打交道 3 和文件系统打交道 4 需要更改特
阅读全文
摘要:单个断言是个好准则,每个单个测试中的断言数量更应该最小化 每个测试一个概念 每个测试函数只测试一个概念 快速:测试应该够快,能快速的运行 独立:测试应该相互独立,某个测试不应为下一个测试设定条件,我们应该可以独立的运行每个测试 可重复:测试应当可在任何环境中重复通过 自足验证:测试应该有布尔值输出,
阅读全文
摘要:勒布朗法则:稍后等于永不。 Ron: 有意义的命名时体现表达力的一种方式; 整洁代码:消除重复,提高表现力,提早构建简单抽象。 “深合己意”的代码:无需花太多力气,明确,简单,有力。 名副其实:使用指明了计量对象和计量单位的名称; 避免误导,名称选用不同之处大的; 名称:提供正确信息,提供导向作者意
阅读全文
摘要:命名: 避免误导:尽量不适用IO10作为变量名,尽量使命名区别明显 做有意义的区分:水果篮放水果 使用可搜索的名称:同一类或意义差不多的前缀尽量相同 类名方法名:类名应是名词或名词短语。方法名应是动词或动词短语。 添加有意义的语境:需要用良好的命名的类,函数,或者命名空间来放置名称。
阅读全文
摘要:对类的思考,首先类的作用要单一,和函数一样,职责要单一,类中应该保存的是某一个ADT,对外暴露的接口也应该和这个ADT的抽象等级相同,对接口的暴露也要三思,最后类的名字要想好,用一个名字来表达。入参在前,出参在后; 使用宏定义来表明结构体中的出入参;参数最好不要超过5个,参数过多的时候可以考虑封装成
阅读全文
摘要:提出抽象数据类型,是进行模块化(原文为类)的基础。可以让我们只根据当前类型来理解代码,或者操作相应的功能。良好抽象数据类型,让我们有效地隐藏一些数据以及实现的细节,同时提高程序的可读性,降低程序的复杂度(不用去关心底层具体实现),让程序更容易理解。避免使用全局数据,提高程序的可重用性。 保证垃圾进,
阅读全文
摘要:前言中提到本书适合于三种人—经验丰富的程序员、自学成才的程序员、学生。我恰好是第二种。 它提出软件创建的概念在现在大型的软件项目中需要经过以下的流程 问题定义 需求分析 总体设计 详细设计 创建实现 单元测试 系统测试 维护 创建活动包括:详细设计、编码、调试、单元测试。它占软件系统构建的绝大部分。
阅读全文