Каковы известные “глюки” относительно Цепочки шаблона Responsibilty?

HTML5 имеет встроенную функцию:

, например, это будет работать:

<%= form.text_field :twitter_link, class: "form-control", required: true, pattern: '^(?:https?:\/\/)?(?:(?:www|m)\.)?twitter\.com\/\w+\/status\/\d+(?:\/\/?)? 

Сообщение появится, когда проверка не работает.

Одна проблема, которую я заметил, это проверка интерфейса не работает, когда страница загружена не полностью. Если вы собираетесь использовать это, я предлагаю использовать проверку модели так же, как и я.

, title: "Click the '?' for more information" %>

Сообщение появится, когда проверка не работает.

Одна проблема, которую я заметил, это проверка интерфейса не работает, когда страница загружена не полностью. Если вы собираетесь использовать это, я предлагаю использовать проверку модели так же, как и я.

12
задан Jerph 6 December 2009 в 11:56
поделиться

2 ответа

Я испытываю желание сказать, что это работает хорошо на неопределенную проблему (например, код платформы), но работает менее хорошо на определенные проблемы. Платформы записаны, чтобы другие люди использовали, и Вы хотите дать клиентскую общую свободу реализации. После того как Вы знаете точно, что Вы собираетесь сделать для решения проблемы, я думаю, что другие решения лучше.

Опасность Цепочки шаблона Ответственности является почти такой же что касается шаблона Доски: действительно легко закончить тем, что создало много абстракций, которые главным образом не обеспечивают значение в поставке Вашей конечной цели. Объекты команды и обрабатывающие объекты действительно просто скрывают логику Вашего приложения позади цепочки обработки вместо того, чтобы исправить его впереди, где Ваш самый важный код. Намного легче понять и поддержать это, если Вы просто программируете метод (или несколько методов), который представляет полную цепочку обработки без абстракций цепочки обработки. Цепочка обработки может действительно скрыть бизнес-логику Вашего приложения, и я думаю, что Вы располагаете по приоритетам технический артефакт по бизнес-коду.

Так в основном Вы заменяете то, что, возможно, было очень простым кодом приложения, который читает очень легко с намного более абстрактными цепочками обработки. Вы делаете метапрограммирование. Лично я никогда не делаю метапрограммирования больше, таким образом, я был бы склонен соглашаться с теми коллегами, которым не нравится оно.;)

9
ответ дан 2 December 2019 в 21:45
поделиться

Я думаю, что справедливости ради стоит отметить, что в целом стоит использовать данный шаблон разработки, если это дает Вам, больше преимуществ затем стоит. Каждый шаблон представляет дополнительный уровень абстракции в коде, таким образом, более трудно следовать, специально для младших членов команды. Говорить, что я думаю, что Цепочка шаблона Ответственности определенно полезна, если Вы не знаете заранее, что является классами, собирающимися быть этим, собирается сделать обработку (настолько находиться в цепочке), или Вы снова используете эти классы в различных контекстах, создаете различные цепочки в различных сценариях и т.д.

В целом я думаю, что это довольно плохо, чтобы сверхспроектировать Ваши решения (потому что, поскольку Вы сказали, что новые люди борются с пониманием его), но существуют некоторые случаи, где шаблоны разработки очень полезны.

3
ответ дан 2 December 2019 в 21:45
поделиться