Я начал работать с учебным пособием на railstutorial.org, чтобы познакомиться с фреймворком. Мои контроллеры еще не чудовищны, но я вижу, что Single Responsibility Principal (SRP) не является t применяется на протяжении всего руководства, так как выходит за его рамки.
У меня есть относительно простой контроллер. Я уже вижу различные проблемы (например, аутентификацию и авторизацию), просачивающиеся в этот контроллер, который изначально содержит слишком много действий. Это назначает слишком много действий одному контроллеру. Я наткнулся на контроллеры, ориентированные на рельсы, которые решают одну из этих проблем и выглядят довольно интересно.
Это обычное решение? Или есть лучшие решения?
В мире .net для достижения более чистое разделение интересов (SoC). Однако недавно несколько человек написали новую структуру фронт-контроллера под названием Fubu Behaviours<. /а>. Он прекрасно отражает идею конвейера запросов. Что-то, что имеет все больше и больше смысла для меня.
Чтобы обработать запрос, мы обычно выполняем несколько шагов до (а иногда и после) выполнения действия. В некоторых случаях условное завершение запроса. Кажется естественным использовать что-то вроде поведения, конвейера или шаблона матрешки. Так что каждое звено в цепи отвечает либо за продолжение, либо за прекращение. Наследование не кажется лучшим решением.
Есть ли что-то подобное в рельсах? Будет ли это иметь смысл в рельсах?
Рекомендуемые чтения будут также приветствоваться!