Im Allgemeinen ist es ein organischer Prozess für mich.
Meine Namespaces spiegeln in der Regel meine Ordnernamen wider, vor allem, weil ich denke, dass es einfacher ist, Dinge auf diese Weise zu finden.
Unternehmensprojekte haben im Allgemeinen ein Firmenpräfix vor dem Namespace, und für persönliche Projekte wechsle ich zwischen project-prefix.folder und nur Ordner für die Namen.
Die "Haupt" -Ordner sind in der Regel für ihren Namen offensichtlich und beziehen sich im Allgemeinen auf ihre Funktion - "Foo". Bei größeren Projekten werde ich den Hauptordner aufteilen, um das Hauptprogrammierparadigma widerzuspiegeln, dem ich möglicherweise folge. Für MVVM hätte ich also "Foo.View", "Foo.ViewModel" und "Foo.Model" als Beispielnamen.
Ausnahmslos schleichen sich Hilfsfunktionen, die nirgendwo anders passen, in das Projekt ein. Ich beginne mit einem Ordner vom Typ "Common" oder "Utilities", um sie zuerst zu landen. "Helfer", "Basis" und "Kern" würden für einen ersten Landeplatz genauso gut funktionieren.
Ich versuche, meine Funktionen basierend auf dem Betreff und / oder der Aktion zu benennen, die sie ausführen. Ich könnte also einen PathManager, PathChecker usw. haben. Oft weiß ich, dass ich mehrere Aktionen in Bezug auf ein Thema habe, also benenne ich die Klasse nach dem Thema und füge nach Bedarf Methoden hinzu. Ein Thesaurus kann hier nützlich sein.
Ich habe eine hohe Korrelation zwischen der einfachen Benennung eines Objekts und der Frage gefunden, wie gut ich beschreiben kann, was die Funktion tun soll. Einer meiner persönlichen Kontrollpunkte ist, dass ich, wenn ich Schwierigkeiten habe, etwas zu benennen, darüber nachdenken muss, was die Funktion eigentlich tun soll. Sobald ich die Funktionsprobleme behoben habe, kommt der Name leicht.
Wenn ich mehr Hilfsfunktionen sammle, migriere ich sie in ihren eigenen Ordner und / oder Namespace. Ob sie einen Ordner aus dem Stammprojekt entfernen oder ob sie einen Unterordner zum Dienstprogrammordner erhalten, hängt von der Art und Menge der Funktionen ab.
MFC
für "Mehrdad Foundation Classes" nennen, aber leider wird diese Abkürzung seit fast zwei Jahrzehnten verwendet :(