读C#代码整洁之道笔记05_使用工具改善代码和单元测试
|
1. 高品质的代码
1.1. 性能(Performance)
- 1.1.1. 只执行需要的操作,而且执行迅速
- 1.1.2. 不会使系统陷入停顿
1.2. 可用性(Availability)
- 1.2.1. 持续在所需的性能水平上保持可用
- 1.2.2. Topic1
1.3. 安全性(Security)
- 1.3.1. 正确验证输入
- 1.3.2. 防止无效的数据格式或超范围的无效数据
- 1.3.3. 防止恶意攻击代码
- 1.3.4. 身份验证
- 1.3.5. 鉴权操作
- 1.3.6. 具备容错性
1.4. 可伸缩性(Scalability)
- 1.4.1. 安全地处理指数级增长的用户数目,而不会令系统停顿
1.5. 可维护性(Maintainability)
- 1.5.1. 修复缺陷并添加新功能的难易程度
- 1.5.2. 低耦合高内聚
1.6. 可访问性(Accessibility)
- 1.6.1. 能力受限的成员也能够根据自己的需要轻松地修改和使用软件
- 1.6.2. 高对比度的用户界面
- 1.6.3. 针对阅读困难者和盲人添加的旁白
1.7. 可部署性(Deployability)
- 1.7.1. 针对软件的用户
- 1.7.1.1. 独立用户
- 1.7.1.2. 远程访问的用户
- 1.7.1.3. 局域网用户
- 1.7.2. 软件都应当易于部署而不会出现任何问题
1.8. 可扩展性(Extensibility)
1.9. 简记为PASSMADE
2. 代码度量
2.1. 关注软件的复杂性与可维护性
2.2. 维护性指标
- 2.2.1. 应用程序生命周期管理的重要组成部分
- 2.2.1.1. (Application Lifecycle Management,ALM)
- 2.2.2. 20及以上的分数颜色级别为绿色
- 2.2.2.1. 良好的维护性
- 2.2.3. 10分到19分的分数颜色级别为黄色
- 2.2.3.1. 中等维护性
- 2.2.4. 小于10分的分数颜色级别为红色
- 2.2.4.1. 难以维护
2.3. 圈复杂度
2.4. 继承深度
- 2.4.1. 相互继承类的数量的度量值
- 2.4.2. 理想的继承深度为1
2.5. 类耦合度
- 2.5.1. 类的代码耦合度决定了类之间的耦合级别
- 2.5.2. 基于接口编程
2.6. 面向对象编程编程范式的影响
- 2.6.1. (Object-Oriented Programming,OOP)
2.7. 代码行数
2.8. 可执行代码行数
2.9. Visual Studio 自带
3. 工具
3.1. 使用快速操作
3.2. JetBrains dotTrace
3.3. JetBrains ReSharper
3.4. JetBrains dotPeek
3.5. JetBrains dotCover
3.6. JetBrains dotMemory
3.7. JetBrains 全家桶
3.8. Telerik JustDecompile
4. 单元测试
4.1. TDD绝对是提升程序能力的一个必要之选
- 4.1.1. Test-Driven Development
4.2. 行为驱动开发(Behavior-Driven Development,BDD)
- 4.2.1. BDD是由TDD演进而来的一种软件开发方法。
4.3. 软件越关键,就越需要重视单元测试技术(例如TDD和BDD)的使用
4.4. 在代码开发阶段,程序员应该始终测试自己的代码
4.5. 只有在代码完成并准备进入产品环境的前提下,“程序员永远不应该测试自己的代码”才是正确的
4.6. 正确的规划和设计实质上会加快编码速度,尤其在考虑维护和扩展的情况下
- 4.6.1. 凡事预则立,不预则废。
- 4.6.2. 越早考虑谋划、考虑谋划越全面,后期应对变化越从容
4.7. 单元测试不应当依赖在它之前运行的其他测试
4.8. 单元测试最好在毫秒时间内完成
5. 无法容忍缺陷的软件
5.1. 处理私人和商业投资的金融系统
5.2. 医疗设备
5.3. 交通管理和导航系统的运输信号系统
5.4. 空间飞行系统
5.5. 武器系统
6. 删除冗余
6.1. 无用代码
6.2. “噪声”注释
6.3. 冗余测试
7. 测试工具
7.1. MSTest
7.2. NUnit
7.3. 测试框架
- 7.3.1. NUnit比MSTest提供了更加细粒度的测试方法和更好的性能
7.4. Moq
7.5. Rhino Mocks
7.6. 测试替身框架
- 7.6.1. Moq比Rhion Mock更加易于学习和使用
7.7. SpecFlow
来源:https://www.cnblogs.com/lying7/archive/2023/03/24/17232198.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-3-24 11:21:27
举报
回复
分享
|
|
|
|