Единственная причина разбить ваш код на файлы - это сделать ваш код обслуживаемым.
Как правило, я склонен создавать папки для перечислений, структур, моделей, контроллеров и т. Д. В зависимости от размера решения после этого вы продолжаете вложение в группы.
Иногда имеет смысл просто поместить все пространство имен в файл, в других случаях вы позволяете своей вложенности позаботиться о присвоении имен.
Хорошее правило заключается в том, что вы должны быть в состоянии быстро найти то, что ищете, и, что более важно, тот, кто не видел проект, должен быстро обойти его.
Одна вещь, которую нужно иметь в виду, это то, что вы никогда не кладете больше одной вещи в один файл. Никогда не помещайте два класса в один файл, никогда не добавляйте перечисления в конец файла класса и т. Д.