最近、コーディング スタイルに関してちょっとした興味深い問題に遭遇しました。一貫性は優れたコード スタイルの重要な属性であることに気づき、いくつかの興味深いスタイル パターンを持つコードを継承しました。
問題のコードは、基本的に 2 つのライブラリを結び付けます。プログラム自体はそれほど大きくありません。最初のライブラリをラップするユーティリティ関数のコードは、.h ファイルと .c ファイルにあり、合計で 100 行 (両方のファイル) になります。2 番目のライブラリとやり取りするコードは、メインも含む .c ファイルにあります (この唯一の .c ファイルで合計 300 行)。2 番目のライブラリで作成されたすべての関数は、特定の実装に合わせてカスタマイズされているため、静的になります。
私が抱えている問題は、各ファイルに独自のスタイルがあることです。問題のプログラマは独自のスタイルを持っていますが、最初のファイル セットは最初のライブラリのスタイルに従います。2 番目のファイルは、2 番目のライブラリのスタイルを使用します。その結果、各ファイル内のコードは、スタイルに関して局所的に一貫していますが、プログラム自体は複数のコード スタイルにまたがっています。
スタイルの違いには、2 番目のファイルで GLib 型と g_printf() などの関数を使用し、最初のファイル セットで C 型と関数を使用することが含まれます。2 番目のファイル (GLib を使用するライブラリとのインターフェース) には、絶対に GLib を使用する必要がある部分と、そうでない部分があります。ただし、ローカルの一貫性を維持するために、プログラマはファイル全体で GLib を使用しました。
その結果、コード スタイルに関して、この場合のベスト プラクティスは何なのか疑問に思っています。考えられるオプションを以下に示します。
最初のファイル セットで最初のライブラリのスタイルを使用し、2 番目のファイル セットで 2 番目のライブラリのスタイルを使用します。これにより、ライブラリのコードをスタイルに関して一致させることができ、ファイルの各セットをローカルでスタイルに関して 100% 一貫させることができますが、プロジェクト全体では一貫していません。
2 つのライブラリのスタイルを無視して、独自のスタイルでコードを記述します。GLib 呼び出しは、絶対に必要な場所に限定されます。標準 C ライブラリは他の場所で利用されます。これにより、コードは、各ファイルと関連するライブラリ呼び出しの間でローカルにスタイルが一致しなくなります。ただし、ファイルからファイルへのコードはある程度一貫しているように見えるはずです。
ライブラリのスタイルを 1 つ選んでください。これにより、プロジェクトのコードの一貫性が保たれるはずですが、このプロジェクトからプログラマーの他のプロジェクトへのコードは一貫性がなくなります。また、他のライブラリのスタイルに従わなければならないソース コード ファイルは、少し見栄えが悪いかもしれません。
これについての考えを聞くのを楽しみにしています。同じプログラマーであるプロジェクトのコードから別のスタイルに移行するプロジェクトに遭遇したのはこれが初めてだと思います。ご意見とご感想をお寄せいただきありがとうございます。