C#プログラマのみなさん、積極的にpartialで分割してますか?
賛否が分かれるところですが、私はできるだけ1本にまとめる派です。
そもそもpartialって何?
c#ではソースを複数のファイルに分割することができます。
Microsoftによるpartial 型のリファレンスでは、
部分型定義では、クラス、構造体、またはインターフェイスの定義を複数のファイルに分割することができます。
https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods
と説明されています。
例えば次のような処理の流れを持つFormクラスがあったとします。
- 初期処理
- サーバーやDBとのアクセス処理
- 各種計算処理
- 後処理
これらを次のように複数のファイルに分けて実装できます。
FormTest.cs FormTest_Init.cs FormTest_DBAccess.cs FormTest_Main.cs FormTest_Post.cs
分割するメリット/デメリット
メリット
利点としてはなんと言っても肥大化したファイルを分割して管理できることでしょう。
今書いている処理と直接関係ないロジックが別ファイルに追い出されることによって、見通しがよくなります。
ファイル名から内容を推測できるようになるため、後から見る時にある程度絞り込んだ状態から修正箇所にたどり着けるようになります。
デメリット
まったくもってメリットの正反対なんですが・・・。
初期の開発段階でソースが肥大化するのは、プログラマに簡潔に書く意識が低いか、そもそもの設計が悪いケースが多いですね。
仕組み上、分け方やファイル名の命名は自由です。規約までは必要ないかもしれませんが、ある程度のガイドラインを設けましょう。
ファイルが増えることにより必然的にVisualStudioで開くタブも増えます。タブがたくさん開いているのが嫌いな人には辛い環境になります。
VisualStudioのソリューションエクスプローラーではツリーで折りたたまれた状態だと分割されているように見えません。全体的に分割しないで構築されたプロジェクト内にポツンと分割されたクラスがあったりすると、まぁ見つけるのに苦労します。
まとめ
個人だったら開発規模に応じて好きなように分割・管理しましょう。
開発プロジェクトなどであれば、製造前にガイドラインを作って分割をうまく利用しましょう。
コメント