Spring中Rod Johnson与“轮子理论”(2)
在上一篇文章中,我们介绍了Spring框架的创始人Rod Johnson提出的“轮子理论”的 部分——选择适合的轮子。本文将继续介绍这一理论的第二部分:定制轮子。
一、定制轮子
当我们使用开源软件时,如果发现某个轮子并不完全符合我们的需求,我们可以选择定制它。这就是Rod Johnson提出的第二个建议:如果没有找到满足所有需求的轮子,可以考虑进行轮子定制。
在实际工作中,我们常常会遇到某个开源软件没有提供我们需要的某些特性或功能。这时,我们既可以选择使用其他软件,也可以选择重新开发实现这些特性和功能,但这些都需要付出更多的时间和精力。如果考虑对现有的软件进行定制,就可以节省这些时间和精力。
定制一个轮子包括两个方面的内容:一是改变轮子本身的逻辑,修改它的源码以满足我们的需求;二是定制轮子与其他轮子的集成方式,使得它能够与我们的系统进行良好的整合。
二、定制轮子的代价
尽管定制轮子有很多好处,但要明确这样做的代价也是很重要的。以下是几个需要考虑的方面:
1. 时间
定制一个轮子需要一定的时间,不仅包括修改它本身的源码,还包括熟悉轮子的逻辑、架构和代码风格等。如果团队成员对这个轮子并不熟悉,这个过程可能会更加漫长和困难。
2. 维护
定制轮子后,我们就需要维护它的代码和文档。如果原始的轮子本身也在更新升级,我们需要及时跟进这些变化,否则可能会影响到我们的自定义代码的稳定性和可靠性。
3. 测试
定制轮子后,我们需要对代码进行测试,以确保我们的自定义代码能够正常工作。这可能需要编写一系列的测试用例,以保证我们的代码覆盖了所有可能的使用场景。
4. 版本兼容性
一些开源软件在不同版本之间可能会发生较大的变化,这意味着我们定制的轮子可能需要在不同版本之间进行调整、升级和修改,以确保其与其他模块和框架兼容。
三、结论
在开发过程中,选择适合的轮子和定制轮子都是有利有弊的。如果我们可以找到一个已经存在的轮子能够完全满足我们的需求,那么就没有必要再费力定制轮子。但是,如果我们需要特定的功能或特性,我们可能需要考虑定制轮子。
与 部分相似,Rod Johnson提出的建议并没有固定的答案或标准方案。选择适合的轮子和定制轮子都需要在实际情况中综合考虑。良好的折中方案是,首先寻找一个适合的轮子,如果没有找到,我们可以按照自己的需求自定义轮子,但要注意,这不是一个简单的过程,需要付出相应的时间和精力。 无论我们最终选择哪种建议,我们都应该始终关注软件质量、性能和可靠性。
