读C#代码整洁之道笔记07_代码评审和集成测试

1. 代码评审注意事项
1.1. 始终保持代码评审的意识
1.2. 保证代码构建成功
1.3. 确保所有的测试都是通过的
1.4. 注意YAGNI原则
1.5. 检查重复代码
1.6. 使用静态分析器
1.7. 在代码开发完成之后,进入QA部门进行测试之前执行
1.8. 小步提交是有效传递信息的方式
1.9. 少量的代码比大量的代码更容易评审
1.10. 需要审查的代码越多,越容易出现漏网之鱼
1.11. 在等待代码审查时,请不要再对代码进行任何更改
2. 代码评审人员技能和知识
2.1. 技术权威性
2.2. 具备良好的软技能
2.3. 不要过于挑剔
3. 评审内容
3.1. 应当仅限于开发人员更改并提交的代码
3.2. 公司编码规范与业务需求
3.3. 命名规则
3.3.1. 命名是否足够长,使人容易阅读和理解
3.3.2. 体现代码意图又足够短
3.3.3. 评审人必须能够读懂代码
3.4. 代码格式
3.5. 测试
3.5.1. 易于理解并涵盖尽可能多的用例
3.6. 性能和安全性
3.6.1. 是否存在性能瓶颈
3.6.2. 是否能够防范SQL注入或者拒绝服务(Denial-of-Service,DoS)攻击
3.6.3. 是否对数据进行了充分的验证以保证数据的清洁
3.6.4. 是否只有验证通过的数据才能存储在数据库中
3.6.5. 是否检查了用户界面、文档和错误消息中的拼写错误
3.6.6. 是否有魔法数字(magic number)或者硬编码的值
3.6.7. 配置数据是否正确
3.6.8. 是否有意外提交的密钥
3.7. 架构规范和设计模式
3.7.1. GoF设计模式
3.7.1.1. Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides
4. 设计模式
4.1. 创建型
4.1.1. 单例设计模式(singleton)
4.1.1.1. 确保在应用程序级别只会创建一个实例
4.1.2. 工厂方法设计模式(factory method)
4.1.2.1. 在不使用具体类的前提下创建对象
4.1.3. 抽象工厂设计模式(abstract factory)
4.1.3.1. 无须指定具体类而创建一组相关的或者依赖的对象
4.1.4. 原型设计模式(prototype)
4.1.4.1. 指定要创建的原型的类型来创建原型的副本
4.1.5. 建造者设计模式(builder)
4.1.5.1. 将对象的创建和对象的表示区分开
4.2. 结构型
4.2.1. 适配器模式
4.2.1.1. 令接口不兼容的类顺畅地协同工作
4.2.2. 桥接模式
4.2.2.1. 抽象和实现解耦以降低代码的耦合度
4.2.3. 组合模式
4.2.3.1. 将对象组合并使用统一的方式使用各个对象或对象的组合
4.2.4. 装饰器模式
4.2.4.1. 在保持接口一致性的同时动态地向对象添加新的功能
4.2.5. 外观模式
4.2.5.1. 简化庞大的或复杂的接口
4.2.6. 享元模式
4.2.6.1. 节省内存并在对象之间传递共享数据
4.2.7. 代理模式
4.2.7.1. 可以截获客户端和API之间的调用
4.3. 行为型
4.3.1. 职责链模式
4.3.1.1. 对象顺序组成一个流水线来处理传入的请求
4.3.2. 命令模式
4.3.2.1. 将对象某个时间点需要调用方法的所有信息封装起来
4.3.3. 解释器模式
4.3.3.1. 解释特定语法
4.3.4. 迭代器模式
4.3.4.1. 用于顺序访问聚合对象的每一个元素而无须暴露对象的内部表示
4.3.5. 中介者模式
4.3.5.1. 对象通过中介互相通信
4.3.6. 备忘录模式
4.3.6.1. 捕获并存储对象的状态
4.3.7. 观察者模式
4.3.7.1. 观察对象,并在被观察对象的状态发生改变时通知观察者
4.3.8. 状态模式
4.3.8.1. 在状态变化时更改对象行为
4.3.9. 策略模式
4.3.9.1. 定义了一类可更换的封装算法
4.3.10. 模板方法
4.3.10.1. 定义了可以在子类中重写的算法及算法中的步骤
4.3.11. 访问者模式
4.3.11.1. 可以在现有的一组对象中添加新的操作而无须更改这些对象
5. 端到端(End-to-end,E2E)系统测试
5.1. 集成测试
5.2. 工厂方法模式
5.2.1. 当类无法确认应该实例化何种类型时
5.2.2. 当子类必须指明需要实例化的对象类型时
5.2.3. 当类控制其对象的实例化时
5.3. 依赖注入(Dependency Injection,DI)
5.3.1. 将代码的行为与依赖项分离而产生低耦合的代码
5.3.2. 构造器注入
5.3.3. 属性/setter注入
5.3.4. 方法注入
5.4. 模块化
5.4.1. 测试模块之间的交互以确保模块之间能够按照预期协同工作
读C#代码整洁之道笔记07_代码评审和集成测试的更多相关文章
- <代码整洁之道>、<java与模式>、<head first设计模式>读书笔记集合
一.前言 几个月前的看书笔记 ...
- 《代码整洁之道 中文版》高清 PDF 电子书下载
代码整洁之道.PDF 下载 代码整洁之道.PDF 中文版 高清 PDF 电子书下载 代码整洁之道下载 点我下载 作者简介 · · · · · · Robert C. Martin,Object ...
- <读书笔记> 代码整洁之道
概述 1.本文档的内容主要来源于书籍<代码整洁之道>作者Robert C.Martin,属于读书笔记. 2.软件质量,不仅依赖于架构和项目管理,而且与代码质量紧密相关,本书提出一 ...
- 《代码整洁之道》ch5~ch9读书笔记 PB16110698(~3.15) 第二周
<代码整洁之道>ch5~ch9读书笔记 本周我阅读了本书的第5~9章节,进一步了解整洁代码需要注意的几个方面:格式.对象与数据结构.错误处理.边界测试.单元测试和类的规范.以下我将分别记录 ...
- 《代码整洁之道》ch1~ch4读书笔记 PB16110698 (~3.8 第一周)
<代码整洁之道>ch1~ch4读书笔记 <clean code>正如其书名所言,是一本关于整洁代码规范的“教科书”.作者在书中通过实例阐述了整洁代码带来的种种利处以及混乱代码 ...
- 读《Clean Code 代码整洁之道》之感悟
盲目自信,自认为已经敲了几年代码,还看什么整洁之道啊.我那可爱的书架读懂了我的心思,很明事理的保护起来这本小可爱,未曾让它与我牵手 最近项目中的 bug 有点多,改动代码十分吃力,每看一行代码都带一句 ...
- 读<<代码整洁之道>>的感想
花去了近一周的时间浏览一下这本书.总体感觉这本书写得不错. 我发现自己以前写的代码时多么的糟糕.有很多改进之处... 同时我也发现写出优秀的代码不易.优秀的代码不仅仅易读,并且易修改,易维护,程序易维 ...
- 如何写出如散文般的代码――《代码整洁之道》读书笔记(Ch1-Ch3)
不知道有多少人像我一样,程序出现问题时添加函数添加变量解决,变量名用a,b,c等"简单"的字母来表示.不知道有多少人像我一样,看完自己的代码,心里暗骂"什么玩意儿!&qu ...
- 《代码整洁之道》(Clean Code)- 读书笔记
一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...
- 2015年第11本:代码整洁之道Clean Code
前一段时间一直在看英文小说,在读到<Before I fall>这本书时,读了40%多实在看不下去了,受不了美国人啰啰嗦嗦的写作风格,还是读IT专业书吧. 从5月9日开始看<代码整洁 ...
随机推荐
- 你不知道的React Developer Tools,20 分钟带你掌握 9 个 React 组件调试技巧
壹 ❀ 引 React Developer Tools 是 React 官方推出的开发者插件,可以毫不夸张的说,它在我们日常组件开发中,对于组件属性以及文件定位,props 排查等等场景都扮演者至关重 ...
- 8、将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数。如果s1 = s2,输出零。如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是比较两字符串相应字符的ascii码的差值。
/* 将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数.如果s1 = s2,输出零.如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是 ...
- centos8换可用公网yum源
这个咋说呢,总之就是非常简单 百度上找一个公网源替换进去就好 但是就是麻烦,在此做个笔记,也当给大家一个现成的范例 以下为https://vault.centos.org官网源的一个简单的替换脚本,一 ...
- Selenium4+Python3系列(九) - 上传文件及滚动条操作
一.上传文件操作 上传文件是每个做自动化测试同学都会遇到,而且可以说是面试必考的问题,标准控件我们一般用send_keys()就能完成上传, 但是我们的测试网站的上传控件一般为自己封装的,用传统的上传 ...
- CodeGeeX:vscode中全新的智能代码补全插件
大家好我是费老师,代码智能补全是近几年非常热门的话题,有前不久宣告项目终结的kite,反响平平的tabnine,以及最近吃了一堆官司的copilot. 而广大从事编程工作的用户只关心市面上的代码智能补 ...
- Codeforces Round #836 (Div. 2) A-D
比赛链接 A 题意 给一个字符串 \(s\) ,对其加倍,即每个字符后面追加一个相同字符. 加倍后可以重排列,要求构造一个回文串. 题解 知识点:构造. 既然可以重排列了,那顺序是随意的了,直接翻转加 ...
- 解决PyQt5报错defaultServiceProvider::requestService(): no service found for..
简述 之前因为这个报错解决了很长时间,因为我之前一直是用 pip3 工具安装的 PyQt5 ,但是用 pip3 工具安装 PyQt5 后, 自己写的音乐播放器一直没有声音,而且还有不能调用 fcitx ...
- 第二十六节:urllib、requests、selenium请求库代理设置
1.urllib代理设置 1 from urllib.error import URLError 2 from urllib.request import ProxyHandler 3 from ur ...
- 使用Google OR-Tools分析过去20年中国金融资产最佳配置组合
前两天,在朋友圈里看到一张截至2022年Q2的金融资产历年收益图如下,图中列举了国内从2005年到2022年近20年主要的金融资产历年收益率,随产生想法分析和验证下面几个问题: 过去20年,基于怎样的 ...
- input限制只能输入汉字
<el-form class="det_foot" :model="form" :rules="rules" ref="fo ...