деревья исходного кода: широкий или глубокий

После записи некоторым Python appengine приложения я нахожу меня порванным между двумя подходами к организации моего дерева исходного кода: широкий или глубокий.

Для конкретности рассмотрите внутреннее заявление для небольшого консультационного магазина для управления бизнес-операциями как управление контактами, отслеживание проекта и создание отчетов и управление сотрудника. Приложение могло бы использовать ключевые объекты как: Компания, Пользователи, Контакты, Клиенты, Проекты, Расписания, и т.д. Без того, чтобы сообщать подробности можно предположить, что эти модели являются сквозными через функции веб-сайта. Это вероятное средство там является некоторой связью.

В этом примере, это предпочтительный для организации глубоким способом, например:

models/
   people.py
   accounting.py
   projects.py
   foo.py
controllers/
   reporting.py
   employeeops.py
   accounting.py
   crm.py
views/
   ...

или широкий способ, например, "приложением":

people/
   models/
   views/
   controllers/
contact-mgmt/
   models/
   views/
   controllers/
time-tracking/
   models/
   views/
   controllers/
project-reporting/
   models/
   views/
   controllers/

Я знаю, что весь дизайн включает компромиссы, поэтому когда ответ может Вы указывать на свое предпочтение и некоторое обоснование (например, предположения, модуляция проблем, пределов платформы, проблем масштабируемости, кодировать соображения обслуживания, влияние структуры группы разработчиков, и т.д.).

6
задан Thomas Owens 9 August 2010 в 02:17
поделиться