Я використовував цю техніку виключно для веб-додатків, над якими ми працюємо. Мій вихідний сервер розміщується в Google App Engine за допомогою Java SDK, а мій інтерфейс використовує HTML, CSS та JavaScript (з jQuery).
Проект є меншим, тільки з собою та веб-дизайнером, і ми обидва вважаємо, що цей метод допомагає нам працювати набагато швидше і швидше отримувати щось на ринку.
Перевага: робота з веб-дизайнерами
Основна перевага цієї методики полягає в тому, що веб-дизайнер, який знає деякий PHP, але не вважає себе програмістом, може працювати без обчислень у HTML та CSS, не потребуючи перебиратися через незліченну кількість ліній JSP, тегів талібів та інших серверів розмітка, про яку нам говорили роками, повинна значно полегшити життя розробника.
Без усієї розмітки на стороні сервера ми були більш спритні. Веб-дизайнер прямо замінив та переглянув свій оригінальний дизайн 3 або 4 рази, з мого боку дуже мало змін.
Його коментар до мене полягав у тому, що він відчував, що HTML-код живий, що він може його редагувати, а потім негайно бачити зміни на своїй машині з динамічними даними. Ми обидва виграємо від цього тим, що інтеграція здебільшого є автоматичною.
Код на стороні сервера та HTML / CSS Handoffs
У минулих проектах йому довелося передавати HTML і CSS розробникам Java, які потім взяли його HTML і CSS і повністю переписали його за допомогою технології JSP. Це займе багато часу, і, як правило, призведе до тонких, але важливих відмінностей у фактичному відображенні сторінок, а також його валідації у валідаторі W3C.
В цілому ми обидва задоволені цією технікою, і я все ще маю нульові сторінки JSP або код на стороні сервера на своїх HTML-сторінках.
Підводні камені техніки REST / JSON
Мабуть, найбільші підводні камені - це ті, з якими ми ще не стикалися. Я сподіваюся, що у мене виникнуть розбіжності з досвідченими розробниками Java, які були вимиті мізками тим, що розповіли їм фундація Apache та команда Spring щодо того, як бібліотеки тегів полегшують розробникам frontend роботу з кодом. Я повністю сподіваюся, що в процесі розширення цього проекту буде крива навчання, і ми беремо на себе більше розробників, яким, можливо, доведеться вивчити ці застарілі методи, які, на мій досвід, ускладнюють роботу веб-дизайнерів .
Ще одна проблема - те, що код JavaScript став дуже масовим. Це більше проблема, можливо, тому, що я вперше використовую цю методику, і тому, що ми ввели незначну технічну заборгованість у роботі над швидким випуском. Можливо, вибір кращої бази допоміг би полегшити значну частину кодексу. На мою думку, нічого з цього не було показовим, і мені рекомендується продовжувати використовувати цю техніку і вдосконалювати свої навички в цій галузі.
Перевага: Інші додатки можна побудувати на платформі
Нарешті, слід зазначити приховану перевагу. Оскільки між моїм сервісом RESTful Web-сервісом та моїм інтернетом є достатня ступінь розриву, я також створив платформу, яку я легко розширюю.
Один із наших хлопців з операцій хотів спробувати доказ концепції в іншій програмі, і завдяки моїм послугам RESTful ми змогли створити зовсім інший інтерфейс до програми, щоб вирішити зовсім іншу проблему. Швидко розроблений доказ концепції використовував власні HTML, CSS та JavaScript, але він використовував RESTful служби як резервний та джерело даних.
Зрештою, інший менеджер проекту побачив, що я зробив, і відразу стало зрозуміло, що ця функція повинна бути не просто доказом концепції, тому його команда реалізувала це.
Я не можу достатньо підкреслити, наскільки ця архітектура багаторазова, як на рівні програми, так і на рівні HTML / CSS / JavaScript, і я б настійно рекомендую спробувати це у наступному проекті.