《代码整洁之道》——(7)边界
目录
7.1、使用第三方代码
在接口提供者和使用者之间,存在与生俱来的张力。第三方程序包和框架提供者最求普适性,这样就能在多个环境中工作,吸引广泛的用户。而使用者则想要集中满足特定需求的接口。这种张力会导致系统边界
上出现问题。
如果你使用类似Map这样的边界接口,就把它保留在类或近亲类中。避免从公告API中返回边界接口,或将边界接口作为参数传递给公告API。
7.2、学习性测试
无论如何我们都得学习要使用的API,而编写测试则是获得这些知识的容易而不会影响其他工作的途径。学习性测试是一种精确实验,帮助我们增进对API的理解。
7.3、使用尚不存在的代码
还有另一种边界,那种将已知和未知分割开的边界。在代码中总有许多地方是我们知识未及之处。有时,边界那边就是未知的(至少目前未知)。有时,我们并不往边界那边看过去。
7.4、整洁的边界
边界上会发生有趣的事。改动是其中之一。有良好的软件设计,无需巨大投入和重写即可进行修改。在使用我们控制不了的代码时,必须加倍小心保护投资,确保未来的修改不至于代价太大。
边界上的代码需要清晰的分割和定义了期望的测试。应该避免我们的代码过多地了解第三方代码中特定的信息。依靠你能控制的东西,好过依靠你控制不了的东西,免得日后受它控制。