一般的に、それは私にとって有機的なプロセスです。
名前空間は、主にフォルダ名を反映する傾向があります。これは、そのようにして検索する方が簡単だと思うからです。
一般に、企業プロジェクトには名前空間の前に会社のプレフィックスがあり、個人プロジェクトの場合は、名前のプロジェクトプレフィックス。フォルダーとフォルダーのみを切り替えます。
「メイン」フォルダはその名前から明らかである傾向があり、一般的にそれらの機能に関連しています-「Foo」。大規模なプロジェクトの場合は、メインフォルダーを分割して、フォローしている可能性のある主要なプログラミングパラダイムを反映させます。したがって、MVVMの場合、名前の例として「Foo.View」、「Foo.ViewModel」、および「Foo.Model」があります。
常に、他に適合しないヘルパー関数がプロジェクトに侵入し始めます。まず、「common」または「utilities」タイプのフォルダーから始めて、それらを最初に配置します。「ヘルパー」、「ベース」、「コア」は、最初の着陸場所でも同様に機能します。
私は、サブジェクトやアクションが実行するアクションに基づいて関数に名前を付けようとしています。したがって、PathManager、PathCheckerなどを使用できます。多くの場合、サブジェクトに関連するいくつかのアクションがあることを知っているので、サブジェクトにちなんでクラスに名前を付け、必要に応じてメソッドを追加します。ここでは、シソーラスが役に立ちます。
オブジェクトの命名のしやすさと、関数が何をすることになっているのかをどの程度うまく説明できるかの間には、高い相関関係があることがわかりました。私の個人的なチェックポイントの1つは、名前を付けるのに苦労している場合、関数が実際に何をしているのかを振り返る必要があるということです。機能の問題を修正すると、名前は簡単にわかります。
さらにヘルパー関数を集めたら、それらを独自のフォルダーや名前空間に移行します。ルートプロジェクトからフォルダーを取得するか、ユーティリティフォルダーへのサブフォルダーを取得するかは、機能の性質と量によって異なります。
MFC
「Mehrdad基礎クラス」のため、残念ながら、この略語は:(ほぼ二十年のために撮影されている