当两个项目共享相同方法代码,是否应创建独立项目以消除冗余?
- 内容介绍
- 相关推荐
本文共计1390个文字,预计阅读时间需要6分钟。
最近遇到一个问题,有两种解决方案。它们在数据层上有一定的关联,简单来说就是B项目提供了一个数据录入功能,功能上它们各自分工,代码暂时也没有耦合,但都出现了问题。
最近碰到一个这样的问题,有两个Solution,它们之间在数据层上有一定的联系,简单说就是B项目为A项目提供录入数据的功能,功能上它们两个各有分工,代码暂时也没有耦合,但都出现了一个验证某数据的要求,这个算法是相同的。我的第一反应是肯定要独立出一个Project,单独有一个类,里面有这个验证方法。然后2个Solution分别引入此Project。但我讲出这个想法,团队最后予以否定,说是如果有更多相同的类似验证数据的代码可以重用时再这样做,现在不是最佳时机(可以理解为可重用的太少了,等再多一点再做,或者是如果现在做会拖慢进度之类的)。
这反应出我一个特点,就是对代码质量的要求很苛刻。在生活中也可以体现出来,头上有个灯坏了,一闪一闪的,有些人可以永远忍受,我就不行,即使它闪的不是很厉害,我也受不了,我很奇怪为什么别人都能受得了。
绝对不允许有重复代码是敏捷开发中重要的原则,团队中也有人学了敏捷开发,可为何不站出来支持我呢?在讨论中出现了另外一个问题,假如2个项目中重用此代码,应该用ClassLibrary还是用WebService,下面我一并列出我的观点:
1. 首先一定要重用可以重用的代码。因为重复代码是维护的大敌,当不重用时,如果算法有某些修改,那么我们不得不同时改2个地方,即使算法没有修改,但是实现这个算法的代码自身有缺陷,那么也要同时改2个地方。(事后也证明,实现此算法的代码确实有缺陷,它没有预防可以避免的异常。)
2. 把这个相同的代码摘出来,放到一个单独的Project里,绝不会拖慢进度。有点经验的都应该明白,这个工作只不过3分钟的事儿。
本文共计1390个文字,预计阅读时间需要6分钟。
最近遇到一个问题,有两种解决方案。它们在数据层上有一定的关联,简单来说就是B项目提供了一个数据录入功能,功能上它们各自分工,代码暂时也没有耦合,但都出现了问题。
最近碰到一个这样的问题,有两个Solution,它们之间在数据层上有一定的联系,简单说就是B项目为A项目提供录入数据的功能,功能上它们两个各有分工,代码暂时也没有耦合,但都出现了一个验证某数据的要求,这个算法是相同的。我的第一反应是肯定要独立出一个Project,单独有一个类,里面有这个验证方法。然后2个Solution分别引入此Project。但我讲出这个想法,团队最后予以否定,说是如果有更多相同的类似验证数据的代码可以重用时再这样做,现在不是最佳时机(可以理解为可重用的太少了,等再多一点再做,或者是如果现在做会拖慢进度之类的)。
这反应出我一个特点,就是对代码质量的要求很苛刻。在生活中也可以体现出来,头上有个灯坏了,一闪一闪的,有些人可以永远忍受,我就不行,即使它闪的不是很厉害,我也受不了,我很奇怪为什么别人都能受得了。
绝对不允许有重复代码是敏捷开发中重要的原则,团队中也有人学了敏捷开发,可为何不站出来支持我呢?在讨论中出现了另外一个问题,假如2个项目中重用此代码,应该用ClassLibrary还是用WebService,下面我一并列出我的观点:
1. 首先一定要重用可以重用的代码。因为重复代码是维护的大敌,当不重用时,如果算法有某些修改,那么我们不得不同时改2个地方,即使算法没有修改,但是实现这个算法的代码自身有缺陷,那么也要同时改2个地方。(事后也证明,实现此算法的代码确实有缺陷,它没有预防可以避免的异常。)
2. 把这个相同的代码摘出来,放到一个单独的Project里,绝不会拖慢进度。有点经验的都应该明白,这个工作只不过3分钟的事儿。

