0

最近我在编码风格方面遇到了一个有趣的问题。意识到一致性是良好代码风格的关键属性,我继承了一些具有一些有趣风格模式的代码。

有问题的代码基本上将两个库联系在一起。程序本身并不太大。包装第一个库的实用程序函数的代码位于 .h 和 .c 文件中,总共有 100 行(两个文件)。与第二个库接口的代码位于一个 .c 文件中,该文件还包含主文件(这个唯一的 .c 文件总共有 300 行)。使用第二个库编写的所有函数都是静态的,因为它们是特定实现的超级定制。

我遇到的问题是每个文件都有自己的风格。有问题的程序员有他自己的风格,但第一组文件遵循第一个库的风格。第二个文件使用第二个库的样式。因此,每个文件中的代码在风格上是本地一致的,但程序本身跨越了几种代码风格。

风格差异包括在第二个文件中使用 GLib 类型和函数(如 g_printf())以及在第一组文件中使用 C 类型和函数。在第二个文件(与使用 GLib 的库接口的文件)中,有些部分绝对需要使用 GLib,而其他部分则不需要。但是,为了保持本地一致性,程序员在整个文件中都使用了 GLib。

因此,我想知道在这种情况下,就代码风格而言,最佳实践是什么。这是我看到的可能的选项。

  1. 在第一组文件中使用第一个库中的样式,在第二组文件中使用第二个库中的样式。这允许库中的代码在样式方面匹配,并允许每组文件在本地样式方面是 100% 一致的,但对于整个项目来说不是。

  2. 用自己的风格写代码,忽略两个库的风格。GLib 调用将被限制在绝对必要的地方。标准 C 库将在其他地方使用。这将导致代码在本地不匹配每个文件及其关联库调用之间的样式。但是,文件之间的代码应该看起来有些一致。

  3. 选择一个图书馆的风格来搭配。虽然这应该会导致项目的代码保持一致,但从这个项目到程序员的其他项目的代码将不一致。此外,必须遵循其他库样式的源代码文件可能看起来有点不对劲。

期待听到对此的任何想法。我认为这是我第一次遇到一个项目的代码使用同一个程序员从一种风格转换到另一种风格。感谢您的意见和反馈。

4

2 回答 2

1

我看到两个不同的问题:

  • 编码风格
  • 对 glib 的依赖

对于编码风格,应该在整个项目中保持统一。选择您喜欢的编码风格和规则(从第一个文件、第二个文件或您选择的一个文件中)。但要使其在整个项目中保持一致。当然,这将需要一些努力,但它会在未来为你带来回报。

对 glib 的依赖要尽可能的隔离,方便你以后切换这个库。在 C++ 中,您通常创建对抽象类的依赖关系,然后由具体类继承(“编程到接口(即抽象类),而不是实现(即具体类)”。因为你在C,并且您没有类,请尝试通过解耦代码来模仿这种行为。

于 2013-07-26T07:37:19.633 回答
1
  • 在我看来,使用贵公司的编码风格(如果你正在为公司编码)。它将在未来帮助许多其他人。
  • 如果您有两种不同的风格,请保持那里存在的编码风格。
  • 如果有必要,然后更改库文件中的编码样式。
于 2013-07-26T08:10:57.830 回答