6. 透明性

6.1 透明性和可显性

透明的:软件系统没有阴暗的角落和隐藏的深度 可显的:软件系统所包含的功能是为了帮助人们对软件建立正确的『做什么、怎样做』的心理模型而设计

6.2 为透明性和可显性设计

透明性之禅:追求代码的透明,最有效的方法是不要在具体操作的代码上叠放太多抽象层 为透明和可显性编码: - 调用层次最好不要超过4层 - 代码是否有强大、明显的不变性质 - 每个 api 中的各个函数的定义是否正交 - 是否存在一些顺手的关键数据结构或全局唯一的记录器,捕获了系统的高级状态 - 程序的数据结构或分类和他们代表的外部实体之间是否存在清晰的一对一映射 - 是否容易找到给定函数的代码部分,多少精力能读懂? - 代码增加了特殊情况还是避免了特殊情况 - 代码中有没有硬编码幻数