Каковы преимущества/недостатки при разделении связанных моделей на отдельные приложения в Django
В настоящее время я нахожусь в процессе изучения Django, создавая простое веб-приложение, которое моделирует магазин игрушек. В настоящее время у меня есть 3 приложения в моем проекте Django: Toy
, Details
и Store
, каждое со своей собственной моделью. Toy
и Details
являются взаимоисключающими, а Store
состоит из Toy
и Detail
, наряду с другими атрибутами. Должен ли я объединить все 3 приложения в одно, или есть преимущество в том, что они разделены?
Просто в качестве примечания: я планирую взаимодействовать с Django исключительно через REST API вызовы из фронтенда.
Это в основном мнение, здесь нет правильного или неправильного, пока вы понимаете структуру вашего проекта. Есть хорошая дискуссия здесь об этом.
С точки зрения плюсов/минусов:
- Если вы единственный разработчик в проекте, разделение на разные приложения, вероятно, замедлит вашу разработку по нескольким причинам (например, из-за одинаковых имен пакетов, которые необходимо импортировать). Однако, если вы готовы приложить дополнительные усилия, необходимые для сохранения разделенности приложений, это позволит вам легко вносить последующие изменения. .
- С другой стороны, если вы не единственный разработчик, разделить работу будет проще при наличии нескольких приложений.
- Разделение на разные приложения позволит вам повторно использовать приложения для разных проектов (Может быть,
Details
в вашем проекте можно использовать не только для Store?). Это также может позволить вам опубликовать его как django-package. - Если вы хотите иметь возможность включать/выключать функции (потому что вы продаете свой проект и имеете несколько уровней с разными функциями и т.д.) - разделение на приложения позволит вам сделать это легко (просто иметь разные файлы настроек с разными
INSTALLED_APPS
) .