1. ホーム
  2. c

[解決済み] C言語(または手続き型プログラミング全般)の設計原則、ベストプラクティス、デザインパターン?[クローズド]

2023-02-12 14:33:25

質問

C言語のプロジェクトを設計するときに従うことができる、既知の設計原則、ベストプラクティス、デザインパターンはありますか?あるいは、一般的な手続き型(命令型)プログラミングのための有用な設計原則はありますか?

(私は「オブジェクト指向世代」の子供で、初めて大規模な C プロジェクトを設計しなければなりません。)

どのように解決するのですか?

情報隠蔽 - パルナスによって提唱された ( ソフトウェアの基礎知識 ).

ヘッダや可視性の管理を丁寧に行う。

  • ソースファイルの中で、外部から隠せるものはすべて隠すべきです。文書化された外部インタフェースのみを公開すべきです。
  • 公開されるものはすべてヘッダで宣言されます。
  • そのヘッダーは、機能が必要なところ(定義されているところ)で使われます。
  • ヘッダは自己完結しています。必要なときに必要な分だけ使用し、「他にどんなヘッダを含めなければならないか」と悩む必要はありません。なぜならヘッダは、それを動作させるために必要なものをすべて含めることによって、確実に動作させるからです。
  • ヘッダーは自己保護されているため、複数回インクルードしても問題ありません。

    #ifndef HEADER_H_INCLUDED
    #define HEADER_H_INCLUDED
    ...rest of header contents, including other #include lines if necessary
    #endif /* HEADER_H_INCLUDED */
    
    
  • オブジェクト」(通常は構造体)上で動作するように関数のセットを設計し、それを使用するコードで構造体の内部を詮索するのではなく、それらの関数を使用します。 それを自己のカプセル化として考えてください。