partialによるソースファイルの分割(C#)

2020年9月11日金曜日

技術

t f B! P L

 C#プログラマのみなさん、積極的にpartialで分割してますか?

賛否が分かれるところですが、私はできるだけ1本にまとめる派です。

ソースコード

そもそもpartialって何?

c#ではソースを複数のファイルに分割することができます。

Microsoftによるpartial 型のリファレンスでは、 

部分型定義では、クラス、構造体、またはインターフェイスの定義を複数のファイルに分割することができます。

 と説明されています。

例えば次のような処理の流れを持つFormクラスがあったとします。

  • 初期処理
  • サーバーやDBとのアクセス処理
  • 各種計算処理
  • 後処理
これらを次のように複数のファイルに分けて実装できます。

FormTest.cs
    FormTest_Init.cs
    FormTest_DBAccess.cs
    FormTest_Main.cs
    FormTest_Post.cs

分割するメリット/デメリット

メリット

利点としてはなんと言っても肥大化したファイルを分割して管理できることでしょう。

今書いている処理と直接関係ないロジックが別ファイルに追い出されることによって、見通しがよくなります。

ファイル名から内容を推測できるようになるため、後から見る時にある程度絞り込んだ状態から修正箇所にたどり着けるようになります。

デメリット

まったくもってメリットの正反対なんですが・・・。

初期の開発段階でソースが肥大化するのは、プログラマに簡潔に書く意識が低いか、そもそもの設計が悪いケースが多いですね。

仕組み上、分け方やファイル名の命名は自由です。規約までは必要ないかもしれませんが、ある程度のガイドラインを設けましょう。

ファイルが増えることにより必然的にVisualStudioで開くタブも増えます。タブがいっぱい開いているのが嫌いな人には辛い環境になります。

VisualStudioのソリューションエクスプローラーではツリーで折りたたまれた状態だと分割されているように見えません。全体的に分割しないで構築されたプロジェクト内にポツンと分割されたクラスがあったりすると、まぁ見落とします。

まとめ

個人だったら好きなようにしましょう。

開発プロジェクトなどであれば、製造前にガイドラインを作って分割をうまく利用しましょう。



このブログを検索

自己紹介

自分の写真
フリーランスで主にソフトウェア開発をしています。

QooQ