5

哪些原则、代码质量、实践、方法、语言或框架特性可帮助您在更广泛的情况下有效地重用函数、类等。所有情况都很有趣:您可以修改代码的实现和接口以启用/改进重用,或者只修改实现,或者什么都不做。重用有效性的关键指标是(就我而言):

  • 它减少了实施和维护的工作量
  • 应用质量不会降低
  • 降低了多少复杂性

(所有这些都与从较低级别重新实现相比)。

PS。如果可能,请为每个答案指定一个因素,并说明它对您的情况有何帮助。

4

4 回答 4

5

这是一个经典 - 低耦合和高内聚。如果一个模块或函数执行一项特定任务并且几乎没有或没有依赖项,那么与执行多项任务、有很多副作用、需要其他模块相比,它的可重用性要高得多(因为它可以适应更多种类的情况) , ETC。

于 2010-01-30T13:21:06.767 回答
3

测试驱动开发。为了使代码易于单元测试,它应该:

1)只做一件事

2)尽可能少的依赖

3)经常传入这些依赖项(以便可以模拟它们)

巧合的是,这些因素也促成了可重用的代码。实际上这不是巧合——拥有可重用代码的最佳方法是确保它被至少两个调用者尽早使用。使用 TDD 创建的代码从两个父级开始 - 正在构建的代码和单元测试,因此它从一开始就被重用。

除了重用之外,TDD 还有许多其他优点——它为你的所有代码提供自动化测试,它充当如何使用代码的示例文档,它使重构更安全。使用 TDD 编写代码可能比编写没有测试的代码花费更长的时间,但您通常会通过需要少得多的调试时间来弥补这一点。

于 2010-01-30T13:46:03.943 回答
3

主要因素是人和他的技能、经验、大脑。
如果一个人不知道如何应用它们,那么所有的最佳实践都是毫无价值的。

为了更具体并解决评论,我将列出以下有助于代码可重用性的技能/个人态度:

  • 纪律(复制粘贴很容易,良好的可重用性需要纪律)
  • 激情(你必须想让代码可重用并以此为荣)
  • 项目愿景(您必须看到项目的大图,而不仅仅是代码语句)
  • 对代码的感觉(你必须能够捕捉到代码异味,查看可以提供帮助的实践和模式)
  • 只有启用测试驱动开发思维才能确保代码质量和可重用性。

这类似于成为一名优秀的数学家、科学家或艺术家。每个人都可以阅读和学习许多实践。但只有能应用这些实践的人才能掌握他们的手艺。

重点是可重用性的问题更多是关于个性,而不是技术性

于 2011-03-09T06:33:25.060 回答
2

本质上,函数应该没有副作用。不要使用全局变量——传递函数需要的参数,并将函数的输出作为返回值传递

于 2010-01-30T14:35:36.867 回答