c - 我应该如何用 C 构建复杂的项目?

标签 c project-management

<分区>

我只有初级水平的 C 技能,想知道是否有任何事实上的“标准”来构建一个稍微复杂的 C 应用程序。甚至是基于 GUI 的应用程序。

我一直在 Java 和 PHP 中使用 OO 范式,现在我想学习 C,我担心我可能会以错误的方式构建我的应用程序。我不知道要遵循哪些准则才能使用过程语言实现模块化、解耦和干燥。

你有什么阅读建议吗?我找不到任何适用于 C 的应用程序框架,即使我不使用框架,我也总是通过浏览他们的代码找到不错的想法。

最佳答案

关键是模块化。这更易于设计、实现、编译和维护。

  • 识别应用中的模块,例如 OO 应用中的类。
  • 为每个模块分离接口(interface)和实现,仅将其他模块需要的接口(interface)放入接口(interface)中。请记住,C 中没有 namespace ,因此您必须使接口(interface)中的所有内容都是唯一的(例如,使用前缀)。
  • 在实现中隐藏全局变量并使用访问函数进行读/写。
  • 不要从继承的角度思考,而是从组合的角度思考。作为一般规则,不要试图在 C 中模仿 C++,这将很难阅读和维护。

如果你有时间学习,看看 Ada 应用程序是如何构建的,它具有强制性的 package(模块接口(interface))和 package body(模块实现) .

这是为了编码。

对于维护(记住你编码一次,但你维护了几次)我建议记录你的代码; Doxygen对我来说是个不错的选择。我还建议构建一个强大的回归测试套件,它允许您进行重构。

关于c - 我应该如何用 C 构建复杂的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661307/

相关文章:

c - C中构建项目的问题

Git 挤压 merge 还是 git 强制推送?

project-management - 您如何为从未做过的事情提供有效的时间估计?

c ,在函数中传递 char 数组作为参数?

c - 如何在格式字符串中使用定义?

c - 返回头文件中的多个值

java - 在项目开发中使用 Java & .NET

project-management - 错过最后期限的处罚/回应应该是什么?

c - 变量意外更改值

c - 我应该如何初始化 pthread 互斥量?