在C++中将代码分成几个小函数有什么好处?

Mod*_*ody 11 c++ function break visual-c++

这只是一个普遍的帮助问题,我试图了解在C++应用程序的代码中使用一组小函数而不是只有一个包含解决问题所需的所有语句的长复杂函数的优点是什么?

Joh*_*ing 23

编辑此助记符的信用额转到OP中的评论者.

将大功能分解为几个较小的功能可能导致MURDER!在这种情况下,这可能是一件好事.:)

M - 可维护性.更小,更简单的功能更易于维护.

你 - 可理解性.更简单的功能更容易理解.

R - 可重用性.通过将常用操作移动到单独的函数来鼓励代码重用.

D - 可调试性.调试简单函数比复杂函数更容易.

E - 可扩展性.代码重用和可维护性导致在6个月内更容易重构的功能.

R - 回归.重用和模块化导致更有效的回归测试.


将大功能分解为更小的功能有一些潜在的好处.他们按顺序从脑中掉了出来:

  1. 它鼓励代码重用.通常在大型功能中,您必须多次或多或少地执行相同的操作.通过将其概括为单个公共函数,您可以在多个位置使用该一个代码块.

  2. 代码重用可以通过将潜在的错误隔离到一个地方而不是几个地方来帮助提高稳健性和可维护性.

  3. 当代码行较少且对命名良好的函数进行大量调用时,更容易理解函数的语义.

  4. 如果您反对具有多个返回点的函数,那么打破大函数可以帮助减少它们.

  5. 它有助于识别和隔离(潜在的)问题,以及其他难以注意到的细微数据依赖性.

然而,重要的是要注意你用坏事来取得好处.打破大功能还有一些潜在的缺点:

  1. 如果之前的大功能工作,试图模块化可能会产生缺陷.

  2. 在多线程应用程序中,如果同步策略很微妙或者只是完全错误,您可能会引入死锁和竞争条件.

  3. 您可以从函数调用中引入性能命中.