この手法は、作業中のWebアプリケーション専用に使用しました。バックエンドはJava SDKを使用してGoogle App Engineでホストされ、フロントエンドはHTML、CSS、およびJavaScript(jQueryを使用)を使用します。
このプロジェクトは、私とWebデザイナーだけの小さなプロジェクトであり、この方法は私たちの仕事をずっと速くし、何かをより早く市場に出すのに役立ったと感じています。
利点:Webデザイナーとの連携
この手法の主な利点は、PHPをある程度知っているが、自分をプログラマーとは見なしていないWebデザイナーが、JSP、taglibタグ、およびその他のサーバー側の無数の行を歩くことなく、HTMLおよびCSSで邪魔されずに作業できることです。長年私たちに言われてきたマークアップは、フロントエンド開発者の生活をずっと楽にするはずです。
サーバー側のすべてのマークアップがなければ、私たちはより機敏になりました。Webデザイナーは、元のデザインを3〜4回直接交換して修正しましたが、私の変更はほとんどありません。
彼のコメントは、HTMLを編集して、すぐに動的データでマシンの変更を確認できるという点で、HTMLが生きているように感じたということでした。これにより、統合のほとんどが自動化されるという利点があります。
サーバー側コードとHTML / CSSハンドオフ
過去のプロジェクトでは、彼はHTMLとCSSをJava開発者に引き渡さなければならず、Java開発者はHTMLとCSSを使用して、JSPテクノロジーを使用して完全に書き換えました。これには多くの時間がかかり、通常、ページの実際のレンダリングとW3Cバリデーターでの検証に微妙でありながら重要な違いが生じます。
全体的に、私たちは両方ともこの手法に非常に満足しており、HTMLページにはまだJSPページまたはサーバー側コードがありません。
REST / JSONテクニックの落とし穴
おそらく最大の落とし穴は、私たちがまだ遭遇していないものです。Apacheライブラリの基礎とSpringチームがタグライブラリを使用してフロントエンド開発者がコードを簡単に操作できるようにする方法について洗脳された経験豊富なJava開発者との意見の相違があることを完全に期待しています。このプロジェクトが拡大するにつれて学習曲線が生まれることを完全に期待しており、私たちの経験では、Webデザイナーの仕事をより困難にしてきたこれらの時代遅れの技術を再学習しなければならない開発者を増やしています。
もう1つの落とし穴は、JavaScriptコードが非常に大規模になったことです。これはおそらく、私が初めてこの手法を使用していること、および迅速なリリースに向けて作業する際に若干の技術的負債を導入していることによるものです。おそらく、より優れたフレームワークを選択することで、コードの大部分を軽減できたでしょう。私の意見では、これはどれも目を見張るものではありませんでした。このテクニックを使い続け、この分野でスキルを磨くことをお勧めします。
利点:プラットフォーム上に他のアプリケーションを構築できます
最後に、隠された利点について言及する必要があります。バックエンドのRESTful Webサービスとフロントエンドの間にはかなりの分離があるため、簡単に拡張できるプラットフォームも作成しました。
私たちの運用担当者の1人は、別のアプリケーションで概念実証を試してみたかったのですが、RESTfulサービスのおかげで、アプリケーションに対してまったく異なるフロントエンドを作成して、まったく異なる問題を解決することができました。急速に開発された概念実証では、独自のHTML、CSS、およびJavaScriptを使用しましたが、バックエンドおよびデータソースとしてRESTfulサービスを使用しました。
結局、別のプロジェクトマネージャーが私がやったことを見て、その機能は単なる概念実証以上のものである必要があることがすぐに明らかになったので、彼のチームはそれを実装しました。
アプリケーションレベルとHTML / CSS / JavaScriptレベルの両方で、このアーキテクチャがどれほど再利用可能であるかを十分に強調することはできません。次のプロジェクトでこれを試してみることをお勧めします。