最近我在编码风格方面遇到了一个有趣的问题。意识到一致性是良好代码风格的关键属性,我继承了一些具有一些有趣风格模式的代码。
有问题的代码基本上将两个库联系在一起。程序本身并不太大。包装第一个库的实用程序函数的代码位于 .h 和 .c 文件中,总共有 100 行(两个文件)。与第二个库接口的代码位于一个 .c 文件中,该文件还包含主文件(这个唯一的 .c 文件总共有 300 行)。使用第二个库编写的所有函数都是静态的,因为它们是特定实现的超级定制。
我遇到的问题是每个文件都有自己的风格。有问题的程序员有他自己的风格,但第一组文件遵循第一个库的风格。第二个文件使用第二个库的样式。因此,每个文件中的代码在风格上是本地一致的,但程序本身跨越了几种代码风格。
风格差异包括在第二个文件中使用 GLib 类型和函数(如 g_printf())以及在第一组文件中使用 C 类型和函数。在第二个文件(与使用 GLib 的库接口的文件)中,有些部分绝对需要使用 GLib,而其他部分则不需要。但是,为了保持本地一致性,程序员在整个文件中都使用了 GLib。
因此,我想知道在这种情况下,就代码风格而言,最佳实践是什么。这是我看到的可能的选项。
在第一组文件中使用第一个库中的样式,在第二组文件中使用第二个库中的样式。这允许库中的代码在样式方面匹配,并允许每组文件在本地样式方面是 100% 一致的,但对于整个项目来说不是。
用自己的风格写代码,忽略两个库的风格。GLib 调用将被限制在绝对必要的地方。标准 C 库将在其他地方使用。这将导致代码在本地不匹配每个文件及其关联库调用之间的样式。但是,文件之间的代码应该看起来有些一致。
选择一个图书馆的风格来搭配。虽然这应该会导致项目的代码保持一致,但从这个项目到程序员的其他项目的代码将不一致。此外,必须遵循其他库样式的源代码文件可能看起来有点不对劲。
期待听到对此的任何想法。我认为这是我第一次遇到一个项目的代码使用同一个程序员从一种风格转换到另一种风格。感谢您的意见和反馈。