在大学中重用一直被认为是高质量软件工程的缩影。但却忽略了重要因素:背景。
事实上系统中两个完全不同的部分以相同的方式执行某些业务逻辑,这种场景比想象中要少。当未提炼出公共库之前,这些原本不相干能根据自己的场景独立演化。出现相似代码仅是偶然。
当将自己创建的共享库将不相关的部分连在一起。这些独立函数的维护代价原本可以忽略不计,但公共库需要更多数量级的测试。
虽然减少了单个项目代码的绝对数量,但却引入了更多的依赖。
小结
想当然的认为可重用性越多越好,但需要付出的代价非常高昂。所以在实践中发现一个公司内部不同的项目之间可重用性的部分并不多,往往仅集中在纯工具类,集群中间件上,尽量避免业务逻辑层面的共享。