Testability vs Readability code?

当代码Testability和Readability冲突时选择哪个?

选择Testability.

原因: Readability带有很大的主观性, 不同的读者从不同的视角看一段代码是不一样的. 而Testability则客观很多.

信息隐藏原则

写代码不是把所有东西都隐藏就是好代码. 比如:

CreditCard card = new CreditCard(10000);

card.Charge(5000);

这样的代码看似简单, 其实隐藏了很多依赖, 比如数据库等. 使用者根本不知道如何使用.

什么应该隐藏, 而什么不应该隐藏?

应该像药品说明书一样, 用法, 疗效, 副作用都应该很清楚.

应该隐藏的: 代码的逻辑 if...else..., for... 之类

要暴露的: 依赖, 输入, 输出, 异常

原文地址:https://www.cnblogs.com/mrfangzheng/p/2160773.html