В настоящее время я создаю распределенное приложение, используя Python / Django. Любой конкретный сервер должен будет ссылаться на основной набор возможностей, а также конкретные возможности для его ситуации. Некоторые части будут нуждаться в полной системе модель-представление-шаблон, другие просто должны будут делиться моделями. Одна часть приложения будет использовать базу данных в памяти, в то время как остальная часть приложения использует базу данных корпоративного класса.
Я решил структурировать это приложение как набор «приложений», которые можно включать или выключать с помощью «умных» сценариев settings.py
и urls.py
. «Базовое» приложение будет иметь только модели, которые являются общими для всего приложения (но не будут иметь представления или шаблоны). Приложение «webcore» добавит представления и шаблоны, которые являются общими для всех приложений, предоставляющих веб-интерфейс. Другие приложения будут иметь свои собственные модели, а также соответствующие представления и шаблоны. Некоторые приложения будут реализовывать только фоновые службы, поэтому им не понадобятся представления или шаблоны.
Комбинируя несколько приложений в скриптах settings.py
и urls.py
, я могу создавать и тестировать небольшие части приложения, не сталкиваясь со сложностью всего приложения. Я также могу распределять части приложения на несколько серверов (для масштабирования или использования уникальных ресурсов). Если бы я создавал это приложение, используя одно «приложение», я бы потерял большую гибкость.