- ベストアンサー
VisualStudio 開発について
- VisualStudioでWindowsフォームアプリを作成する際のファイル管理方法を知りたい
- ファイル数が多くなってしまい、まとめる方法を模索中
- VisualStudioが自動で作成するファイルについても綺麗な管理方法を教えてほしい
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 まず、ご質問の内容はこれといった唯一の回答があるような性質のものではない点はご承知ですね?その上で私のやり方を書いてみます。 >いつもこの様に作成しているのですが、みなさんはどの様にファイル管理されているのでしょうか? 基本的にはクラス毎に別々のファイルで管理します。 とは言っても、クラスの種類数=.hファイルの数ではありません。関連するクラスのうち、結合度/関連度の強いものは一つのファイルにまとめたり、小さなユーティリティ的なクラスは種類毎にまとめたりします。 例えば、あるクラスAがあって、そのクラスAは別のクラスBからしかアクセスされないとします。そういうときは、思い切ってA.cppやA.hは削除して、B.cppの中でクラスAを宣言から書いてしまうこともあります。要は、クラスAは他のクラスから参照されないなら、ヘッダファイルとして他に公開する必要がないからです。それでB.cppというヘッダではないソースの方に書いてしまって、他からインクルードされないようにします(C++言語としては、やろうと思えばB.cppを#includeできるんですけどね)。 それから、例えば点や四角や三角形を表すクラス(構造体)なんかがあったと仮定すると、それらを別々の.hファイルに定義することはないでしょうね。まとめて一つの.hファイルで宣言すると思います。 >私の場合、ファイル数(class数)が多くなってしまい、一つのファイルにまとめようか悩んでいます。 全部を一つにまとめるんですか!?ちょっとやり過ぎでは・・・ 関連のあるものや依存性の強いものはまとめることはあるものの、基本的には個別のファイルで実装して、できるだけ他のクラス/モジュールへの依存性を低くした状態で独立したファイルに実装すべきだと思います。 >しかし、まとめる際にも、classの関係性が微妙な、ものがあり、綺麗にまとめる事ができません。 互いに関連性があって、スッパリ割り切れないのは当たり前ですね。でもそれなりに分類ができるはずですので、それで分けるものだと思います。 それでもゴチャゴチャするようであれば、クラス間のインターフェース設計がまだ曖昧な部分が多いんじゃないかと思います。 >おまけに、VisualStudioが自動で作成するファイル等があり、綺麗にファイル管理をする方法を模索中です。 まずVisualStudioが生成する.hや.cppファイルは名前を変更したり、要らなくなれば削除したりしてもよいことはご存じですよね?VisualStudioがクラス生成に応じてそのファイルを作るからと言ってそれを絶対に使わなければいけないことはありません。 VisualStudio上での管理(というか見た目の分類)をしたいという意味では、ソリューションエクスプローラで右クリックして「追加」→「新しいフィルタ」で適当な名前のフォルダを作ってそこに機能毎にソースファイルを入れていってはどうでしょうか? それとも、同じディレクトリにいっぱい.h/.cppファイルができるのがイヤなら、サブディレクトリを作ってそこに分類してもいいでしょう。サブディレクトリにある.h/.cppでもソリューションエクスプローラで「追加」しておけば、ちゃんとコンパイルしてくれるのはご存じですね。 更につっこんだやり方としては、お作りのアプリケーションの機能をもっと大きな単位で切り分けられるなら、いっそのことライブラリ化して別プロジェクトにしてしまうとか。それなら、完全に別ディレクトリでソースを管理できますし、ライブラリ呼び出しの呼び出しインターフェースとして整理できる、という点で、ソースファイル群のゴチャゴチャ感だけでなく、モジュール/クラス間の関係のゴチャゴチャ感も軽減されます。
お礼
アドバイスありがとうございます。 非常に参考になりました。 新しいフィルタで挑戦してみようと思います。 ファイル管理はいつも悩んでいるのですが、微妙な関係なもんでいつも困っていました。 ディレクトリやフィルタをうまく使ってみようと思います。 ありがとうございました。