В С# вопросы о том, какие типы создавать, какие члены должны иметь и какие пространства имён должны содержать их, - это вопросы дизайна OO. Это не те вопросы, которые меня интересуют.
Вместо этого я хочу спросить, как вы храните их в дисковых артефактах. Вот несколько примеров правил:
-
Поместите все типы сборки в один исходный файл. Один из друзей, который сделал это, сказал: "Файлы - это инструмент организации архивного кода, сегодня я использую classview и Collapse to Definitions для просмотра моего кода".
-
Поместите весь свой код в одну сборку. Делает развертывание и версии более простым.
-
Структура каталогов отражает структуру пространства имен.
-
Каждое пространство имен получает свою собственную сборку.
-
Каждый тип идет в собственной сборке. (Приведено в качестве крайнего примера.)
-
Каждый тип получает свой собственный исходный файл.
-
Каждый участник получает свой собственный файл; каждый тип получает свой собственный каталог. (Приведено в качестве крайнего примера.)