2016-03-16 8 views
1

Ряд сайтов, которые я недавно унаследовал, представлены в различных версиях FW-1 («легкий вес» для модели Model-View-Controller для ColdFusion.) У меня есть функциональное понимание как он есть на месте, но я не вижу преимуществ использования его в будущем развитии.Конкретные примеры MVC Frameworks Сохранение времени разработки

Если вы хотите, пожалуйста, кратко расскажите мне о конкретных событиях, в которых и как использование шаблонов или фреймворков MVC в среде веб-разработки, основанной на базе данных, ускорило разработку по сравнению с тем, что было бы возможно в более линейной системе функций компонентов.

Если для целей модерации только технический вопрос, который может быть «ответил» является удовлетворительным, то "Как использование шаблонов MVC или MVC каркасов реально или на практике ускорить развитие? (Примеры оценили.) "

+0

много способов :) Например: проверено на производстве (обнаружены ошибки и исправлены ошибки), документация, конфигурация с коннекцией (вы пишете меньше кода, так что меньше времени и меньше ошибок), поддержка REST, маршрутизация, вложенные макеты, поддержка сообщества , Зависимость впрыска, сокращение обслуживания (по мере того, как приложение растет), обнаружение окружающей среды, разделение проблем (это бит MVC, приводящий к повторному использованию кода и более простой для проверки кода), это всего лишь несколько от верхней части моей головы. –

+0

Я добавлю, что если вы нанимаете нового разработчика, если у них есть опыт работы с вашей инфраструктурой MVC (или аналогичной инфраструктурой MVC), они могут быть продуктивными сразу же, а не запутываться и узнавать, какая у вас домашняя инфраструктура. Это заставляет вас соблюдать соглашение, которое другие разработчики могут легко узнать и следовать. – beloitdavisja

ответ

0

Я никогда не слышал о FW-1, поэтому мой ответ не будет связан с этой конкретной структурой. У меня есть опыт работы с CF9 и Railo с ColdBox и Lucee с CFWheels.

Все достоинства MVC я нашел во время моей работы в CFML (я не хочу, чтобы предоставить вам общий ответ, связанный с другими системами, что я знаю - Ruby On Rails или Django):

  • модели связанных только с персоналом БД. Может быть, это забавно, но так оно и должно быть. Иногда нет. Я видел много устаревшего кода, который должен был быть моделями, но все было в одном месте. Если бизнес-логика в моделях изолирована от остальных, ее легче протестировать и поддерживать. Также разделенные модели позволяют использовать ORM.

  • Контроллеры намного тоньше. Если вам нужно ввести меньше кода для выполнения той же работы, вы сделаете это быстрее.

  • Шаблоны предназначены только для отображения того, что нам нужно, но они не содержат никакой бизнес-логики внутри. Сохранение этого способом позволяет моей компании нанять фронт-инженеров, которые работают на CSS, JS и т. Д., И если они касаются кода CF, они касаются ТОЛЬКО шаблонов. Им было бы очень сложно иметь дело со всеми приложениями.

Также я оказался более продуктивным, когда узнал, где найти метод, который я хочу использовать, или просто исправляя ошибку. Если вы применяете MVC, вы можете сузить легко возможную область повреждения, если что-то пойдет не так, и поверьте - они это сделают.

TL; DR: MVC делает ваше развитие более быстрым, более надежным и позволяет разделить работу для разных типов разработчиков.

1

Я использую FW/1 практически для всех. Баланс выполнен в древнем Fusebox, который в некотором роде похож на FW/1. Для меня это имеет отношение к

Поощрения разделения кода

После вы начинаете делать MVC на любой платформе, код начинает только естественно разделиться. Это модель, контроллер или представление? Является ли эта модель переходной или нет? Должна ли модель иметь шаблон маршрутизации? Это действительно представление или макет или часть вложенного макета?

самостоятельной документации

Я имел более мой код другому разработчику, они сразу же знать, какие вещи они имеют дело. Он находится в определенном каталоге, он должен быть определенный вид вещи

Expanded жизненный цикл

application.cfc имеет свой жизненный цикл. FW/1 значительно расширяет его. Есть всевозможные места, в которые должны идти определенные типы кода.

Последовательные адреса

В маршрутизации модели определяет, какие виды запросов будут работать и которые не будут. Он сам документирует приложение.

Последнее, но не менее

Если вам не нравится, все эти функции, большой. Затем просто нажмите на те, которые вам нравятся. Вы можете наращивать по желанию.

+1

Если Fusebox is liek FW/1 вам, боюсь, вы используете один из них способом wrogn. ;-) –

+0

Спасибо, что нашли время ответить, Джеймс! Есть ли способ заставить вас расширить это? Например, немного объясняя, как полезен конкретный тип деления кода, предложенный FW1, в отличие от того, что является самым прямым для проекта. Или, показывая, как шаблон маршрутизации section.item определяет, какие запросы работают в FW1, отличается от и быстрее, чем осознание определения ссылок в соответствии с тем, как работают каталоги - этот уровень понимания - это то, на что я надеюсь. – Maxhirez

+0

@Scott Stroz: Я должен признать, что база кода я работал над тем, что довольно беспорядочно. Но это дало мне путь миграции. –