#python #google-app-engine #design-patterns #modularization
#python #google-app-engine #шаблоны проектирования #модульность
Вопрос:
в настоящее время мое GAE-приложение настроено со следующими именами файлов
- main.py (2 основные модели и логика для создания и обновления моделей)
- i18n.py (логика пользовательского интерфейса, как просматривать объекты с помощью i18n)
- reports.py (скрипт отчетности на основе cron)
Я думаю, что имена достаточно понятны, но я рассматриваю возможность следовать шаблону model-view-controller, чтобы переименовать эти три файла в model.py view.py controller.py я считаю, что это вариант следовать более стандартизированному соглашению. Согласны ли вы с тем, что этот тип модульности в соответствии с соглашением MVC является разумным решением в данном случае, вам нужна дополнительная информация что такое мое приложение: у меня есть много кода, функционального для пользователя, который, по моему мнению, следует реорганизовать в соответствии с общепринятым шаблоном проектирования, таким как MVC, publisher-subscriber, factory и многое другое. В этом случае я думаю, что шаблон проектирования MVC подходит. Согласны ли вы или предлагаете другую обработку кода и данных? Спасибо за любые комментарии и обсуждение.
Комментарии:
1. Просто небольшой совет: не переписывайте вещи только для того, чтобы их переписать. Из-за того, как поставлен этот вопрос, создается впечатление, что вы просто хотите провести рефакторинг, чтобы он больше походил на другие приложения. Планируете ли вы дополнения, требующие рефакторинга?
2. Спасибо за ответ. Я планирую сделать это в основном для удобства чтения и для того, чтобы новые разработчики могли быстро понять, какая часть содержит какой код.
Ответ №1:
Вы не понимаете MVC. Модель, представление, контроллер состоят из трех частей.
Модель — содержит бизнес-логику. Знает, как читать / записывать в базу данных. View — Содержит логику отображения. Знает, как извлекать данные из модели и отображать их пользователю. Контроллер — понимает жесты пользователя, загружает / находит правильную модель и представление и сообщает им, что делать.
(В веб-среде представление должно распаковывать данные из POSTs, а модель должна их проверять).
У вас есть M и C в main.py и, возможно, V в i18n.py и main.py (трудно сказать). Отчеты, запускаемые cron, являются внешними по отношению к MVC.
Простое переименование файлов вам ничего не даст, но собьет с толку любого другого сопровождающего.
Если вы предлагаете внести существенные изменения в свой код без тестового набора, который защитил бы вас от ошибок, то я должен указать, что такое действие неразумно.
Комментарии:
1. Спасибо за ответ. Поскольку трудно определить, куда поместить логику отображения (view), я хочу провести рефакторинг, следуя шаблону. Также новые разработчики могут быстрее ознакомиться с проектом, если он построен в соответствии со стандартом, который они признают.