Я использовал эту технику исключительно для веб-приложения, над которым мы работаем. Мой бэкэнд размещен в Google App Engine с использованием Java SDK, а мой интерфейс использует HTML, CSS и JavaScript (с jQuery).
Проект поменьше, в котором участвуют только я и веб-дизайнер, и мы оба чувствуем, что этот метод помог нам работать намного быстрее и быстрее вывести что-то на рынок.
Преимущество: работа с веб-дизайнерами
Основным преимуществом этого метода является то, что веб-дизайнер, который знает некоторый PHP, но не считает себя программистом, может работать без ограничений в HTML и CSS без необходимости разбираться с бесчисленными строками JSP, тегами taglib и другой серверной частью. разметка, о которой нам говорили в течение многих лет, должна значительно облегчить жизнь фронтенд-разработчика.
Без всей разметки на стороне сервера мы были бы более гибкими. Веб-дизайнер напрямую поменялся и пересмотрел свой оригинальный дизайн 3 или 4 раза, с небольшими изменениями с моей стороны.
Его комментарий для меня заключался в том, что он чувствовал, что HTML был жив, потому что он мог редактировать его, а затем сразу же видеть изменения на своем компьютере с динамическими данными. Мы оба извлекли выгоду из этого, потому что интеграция в основном автоматическая.
Серверный код и HTML / CSS Handoffs
В предыдущих проектах ему приходилось передавать HTML и CSS разработчикам Java, которые затем брали его HTML и CSS и полностью переписывали его, используя технологию JSP. Это займет много времени и, как правило, приведет к тонким, но важным различиям в фактическом рендеринге страниц, а также в его валидации в валидаторе W3C.
В целом, мы оба очень довольны этой техникой, и у меня все еще есть ноль JSP-страниц или серверный код в моих HTML-страницах.
Подводные камни техники REST / JSON
Возможно, самые большие подводные камни - те, с которыми мы еще не сталкивались. Я полностью ожидаю, что у меня возникнут разногласия с более опытными разработчиками Java, которым промыли мозги из-за того, что фонд Apache и команда Spring рассказали им о том, как библиотеки тегов облегчают работу внешнего кода с кодом. Я полностью ожидаю, что по мере расширения этого проекта будет образовательная кривая, и мы привлечем больше разработчиков, которым, возможно, придется отказаться от этих устаревших методов, которые, по моему опыту, усложнили работу веб-дизайнеров .
Еще одна ловушка заключается в том, что код JavaScript стал очень массовым. Это скорее проблема, возможно, потому что я использую эту технику впервые, и потому что мы внесли небольшой технический долг в работу над быстрым выпуском. Возможно, выбор лучшего фреймворка помог бы облегчить большую часть кода. По моему мнению, ничего из этого не было показательным, и я призываю продолжать использовать эту технику и совершенствовать свои навыки в этой области.
Преимущество: другие приложения могут быть построены на платформе
Наконец, я должен упомянуть скрытое преимущество. Поскольку между моим внутренним веб-сервисом RESTful и моим веб-интерфейсом существует хорошая степень разделения, я также создал платформу, которую легко можно расширить.
Один из наших сотрудников хотел попробовать проверить концепцию в другом приложении, и благодаря моим службам RESTful мы смогли создать совершенно другой интерфейс приложения для решения совершенно другой проблемы. Быстро разработанное доказательство концепции использовало собственные HTML, CSS и JavaScript, но использовало сервисы RESTful в качестве бэкэнда и источника данных.
В конце концов, другой руководитель проекта увидел, что я сделал, и сразу стало ясно, что эта функция должна быть чем-то большим, чем просто доказательство концепции, поэтому его команда реализовала это.
Я не могу особо подчеркнуть, насколько многократно используется эта архитектура, как на уровне приложений, так и на уровне HTML / CSS / JavaScript, и я определенно рекомендую вам попробовать это в следующем проекте.