1. 软件开发的重要目标
可读性 Readability
可维护性 Maintainability
可调试性 Debuggability
可读性就是这段代码不管是谁来了都能看得懂。简洁明了,清晰易懂。这样的代码在名称规范,逻辑书写时候都要十分讲究,减少给别人误解的机会。
举个变量命名的例子:
let seller = order.getSeller();
seller.getPhoneNumber();
就比
let s = order.getSeller();
s.getPhoneNumber();
要清楚很多,且变量的内容,程序逻辑更加明显。
可维护性是说这个代码可以由不熟悉这段代码的其他合作者来负责维护工作。也就是你的代码需要符合团队或者大多数人的常规思维。其中的算法和数据结构要在符合要求的前提下尽可能简单,常见。
譬如,在合适的前提下,尽可能使用第三方的工具库来实现常见的容器结构,排序,访问等操作。
使用常见的命名词汇,少写缩写,多写注释,多写文档。
可调试性主要有下面几个方面构成。
2. 四大手段
Tracing 追踪
Logging 日志
Assertions 断言
Automated Testing 自动测试
3. 追踪的意义,好处与劣势
追踪的意义在于解决分布式系统或者有多个模块构成的程序中,不同模块之间的日志等信息容易混杂,难以找出拖累整体性能的瓶颈型模块,以及获取各个模块的具体耗时的问题。
使用追踪系统可以简化分布式系统性能评估与优化的工作,进一步提升日志收集与分析效率。
坏处在于可能会对程序的性能和网络带宽有一定消耗,且需要一个集中的追踪数据存储仓库。
4. 日志的意义,好处与坏处
日志可以记录程序运行中的情况和关键信息。
坏处在于不容易分析查找,
5. 断言的意义,好处与坏处
6. 测试的方法论
7. 如何将测试自动化,哪些环节需要自动化测试