Какой метод разработки выбрать для веб-приложений?
Вот уже несколько лет занимаюсь разработкой веб-проектов в команде. Писал на PHP, Java, верстал много страниц. Сейчас полностью перешел на front-end.
Разрабатываем сайты с генерацией html на серверной стороне. Возникает много задач с изменением только внешнего вида.
При разработке новых проектов с нуля, требования к внешнему виду (дизайн, верстка) меняется очень часто. И вовремя разработки ломается верстка то там то тут. И бывает создаются задачи которые фиксят баги созданные задачей которая должна была пофиксить другие баги (в основнем верстке).
Чтобы уменьшить кол-во багов (в верстке) и ускорить процесс внешних изменений, было предложено отделить front-end (например Ember, AngularJS) от back-end и взаимодействовать через API, но якобы генерация html на стороне клиента - зло.
Нужен совет.
Есть ли какие-нибудь альтернативные методы разработки, чтобы отделить back-end + ускорить разработку/изменение касающихся внешнего вида не затрагивая внутренностей сайта?
Или придется с этим жить и придумать свой велосипед :)
Сегодня генерация HTML на клиенте - это не зло, а очень даже добро. Можно например загрузить шаблон, скомпилировать его, положить в localStorage и потом юзать результат. На клиенте есть очень мощные шаблонизаторы, например Handlebars и Dust.
Я в разное время пробовал разные технологии разработки web приложений - начиная от простых PHP и JSP шаблонов и заканчивая SPA + RESTful API. И считаю последний подход наиболее удобным и гибким. RESTful API всегда можно открыть в public при необходимости, frontend приложение всегда можно взять и переписать с нуля. Захотелось создать отдельное мобильное приложение - опять же не проблема. Здесь нужно только следить, чтобы интерфейсы взаимодействия приложений менялись синхронно - поменяли ответ API - не забудьте поменять обработчик ответа во frontend приложениях. Из недостатков такого подхода могу назвать только проблемы с SEO и старыми браузерами (младше IE9).