在开始新项目时,我经常发现自己在考虑代码重用。
我应该在多大程度上使代码可重用?
我应该将其限制在应用范围内还是应该使其在项目外部可重用?
有时候,我觉得代码的可重用性可能会妨碍简单的设计。请分享您对代码可重用性的理解和方法。
在开始新项目时,我经常发现自己在考虑代码重用。
我应该在多大程度上使代码可重用?
我应该将其限制在应用范围内还是应该使其在项目外部可重用?
有时候,我觉得代码的可重用性可能会妨碍简单的设计。请分享您对代码可重用性的理解和方法。
Answers:
请记住,KISS和YAGNI:
代码re-usability better to be considered
一旦你有你的设计文件准备好。这将使您看到可能重复的代码部分。
因此,当您没有清晰的设计时,请在工作中应用KISS和YAGNI方法!
这是从我的经验中得出的,但是仍然相信它可以应用,并且遵循GlenH7所提到的方法。
我在3家从事各种项目的公司之间工作。两家公司互为姐妹,拥有一些标准做法和工作方法,但在很多方面也很独特。话虽如此,我通常会重新开始每个项目,并想完成它或显示进度。然后,如果遇到一个我记得为上一个项目编写的代码或功能的场景,我将做以下两件事之一(与时间有关):
次快速方法
复制先前的代码并将其放入公共库中,然后将该库包含在当前项目中(以使前进更加容易)。
2b。如果我对另一个(原始)项目进行了更改,则将其重构为使用新的库(但除非我必须重新修改该项目,否则通常不会这样做)。
只是被警告,请测试一下普通库中的内容。通用库意味着创建依赖关系。依赖关系会导致故障点。尽管您可能需要对当前的实现进行一些微调,但您不知道它将如何使用该库更改其他内容。
有时,我发现复制并粘贴几行代码是一个更好的解决方案。即使是人类语言,当您想说一句话之前您说的句子时,只要稍加修改即可,您也可以重复使用该变形,因为这对任何人都减少了麻烦。
但是,如果您需要以不支持的稍有不同的方式来使用大型模块,则不要克隆它来仅仅修改几行,因为您很可能希望扩展基本功能和扩展功能。克隆未来的份额。相反,只需使其可配置或将基础库和克隆库共享的功能导出到它们都将使用的另一个模块中即可。