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