Во-первых, целью разделения папок является дополнительный уровень документации, позволяющий программистам легче находить код. Это означает, что у вас не должно быть дополнительных уровней "просто для организации вещей". Это исключает папки с именами Classes, Controls и т. Д.
Некоторые примеры:
Если вы работаете над трехуровневым приложением, то имеет смысл иметь что-то вроде:
Project \ Tier (Модель | Контроллер | и т. Д.) \ Classname
Если ваша программа настолько велика, что имеет отдельные функциональные области, я бы выбрал:
Проект \ Функциональная область \ Уровень (Модель | Контроллер | и т. Д.) \ Имя класса
Это особенно полезно, когда подгруппы работают в разных функциональных областях.
Также воздержитесь от очень глубоких деревьев папок (ИМХО, больше, чем глубина 4 слишком много) и держите ваши папки компактными. Некоторые инструменты могут иметь ограничения на размер пути до 255 символов, поэтому это место, где краткость имеет свое место.