Вот несколько вопросов, которые могут помочь вам понять, является ли ваш фреймворк хорошим и верным.
«Могу ли я запустить модульные тесты для моих классов MVC без фреймворка?»
И это применимо, даже если вы не пишите модульный тест.
Вы должны иметь возможность писать связанный с MVC код независимо от платформы. Когда ваше приложение получает от платформы input , оно должно быть как объекты с известными интерфейсами , без конкретных классов.
Дело в том, что true Каркас MVC не будет иметь (или очень ограниченный) влияния на саму архитектуру. В лучшем случае это просто обеспечило бы clear и easy способ для вызова приложения, чтобы добраться до ваших триад MVC. И, может быть, предоставляют удобства для You .. не ограничения и ограничения.
"Он работает на волшебной и волшебной пыли?"
Вы должны иметь возможность расширять любой класс, который был предоставлен фреймворком. И должно быть легко понять, какую функцию вы должны реализовать.
Это становится очень трудно сделать, если "вещь просто случится" . Обычно это указывает на глобальное состояние в коде фреймворка. В форме статических методов или глобальных / статических переменных.
«В какой момент МОЙ код срабатывает?»
Можете ли вы найти, где и как выполняется ваш контроллер? Обычно это будет не так просто. Эта мистическая точка обычно глубоко в объект-графе. Иногда даже в расширенном классе.
В такой ситуации вам очень трудно изменить среду, в которой был выполнен контроллер. Это также налагает строгие правила того, как должны выглядеть методы вашего контроллера.
Все это возвращает нас к тому, что в настоящей среде MVC должен улучшить процесс разработки, а не ограничивать вашими опциями.
«Должен ли он / она быть в состоянии сделать это?»
Аутентификация. Авторизация может показаться отдельным аспектом разработки, но на самом деле, в контексте MVC она имеет тенденцию быть несколько хитрой.
Многие фреймворки имеют некоторую инфраструктуру аутентификации / авторизации. Это повторяющееся задание, и мы все сделали это до смерти, таким образом - это хороший кандидат на функцию, которую может предоставить фреймворк.
Но вот кикер: большинство из них пытаются вставить авторизацию в свои контроллеры, и они очень разборчивы в том, как ее можно настроить. Это еще одно ограничение.
К чему это сводится, так это. Для любого фреймворка не должен требовать переписывания каждого контроллера только для добавления функциональности входа в систему . Даже если вы игнорируете нарушение OCP, это просто добавляет еще один риск для вас случайно что-то забыть.
.. мои два цента