c++ - 在 C++ 中将代码分解为几个小函数有什么好处?

标签 c++ function visual-c++ break

<分区>

这只是一个一般性的帮助问题,我想知道在 C++ 应用程序代码中使用一组小函数比使用一个包含解决问题所需的所有语句的长复杂函数有什么优势?

最佳答案

编辑 此助记符归功于 OP 中的评论者。

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

M - Maintainability. Smaller, simpler functions are easier to maintain.

U - Understandability. Simpler functions are easier to understand.

R - Reuseability. Encourages code reuse by moving common operations to a separate function.

D - Debugability. It's easier to debug simple functions than complex ones.

E - Extensibility. Code reuse and maintainability lead to functions that are easier to refactor in 6 months.

R - Regression. Reuse and modularization lead to more effective regression testing.


将大函数分解为小函数有一些潜在的好处。按照它们从我脑子里掉出来的顺序:

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

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

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

  4. 如果您反对具有多个返回点的函数,将大函数分解可以帮助减少它们。

  5. 它有助于识别和隔离具有细微数据依赖性的(潜在)问题,否则很难注意到。

然而,重要的是要注意,您将好的与坏的结合在一起。分解大函数也有一些潜在的缺点:

  1. 如果这个大功能以前工作过,尝试对其进行模块化可能会产生缺陷。

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

  3. 您可能会从函数调用中引入性能影响。

关于c++ - 在 C++ 中将代码分解为几个小函数有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13256453/

相关文章:

c++ - WinXP下如何控制应用程序音量

c++ - 如何正确销毁放置在堆中的窗口?

c++ - 为什么不应该将 auto&& 用于局部变量?

C++类错误'const class Number'没有名为 'intValue'的成员

c++ - QTree控件;在 QTree 中选择多个项目时禁用 ui 功能

jquery - 使用结束功能时 HTML5 视频不会自动播放

C 指针输出

javascript - 如何从函数中获取对象

visual-c++ - 编译 x64 代码时, "x86_amd64"和 "amd64"有什么区别?

c# - Visual C++/C# 中的 WinForms 编程与 Visual C++(MFC) 中的 Windows 编程有何不同