過去数か月の間に、私はWeb開発におけるクライアント側のスクリプティングについて大きな興奮を感じました。しかし、サーバーサイドテクノロジーは成熟していて安定しており、バックエンド開発者に広く受け入れられていますが、クライアントサイドテクノロジーは未成熟であり(つまり、大きなサーバーサイドフレームワークと比較して)、多くの老舗の開発者に嫌われています。それにもかかわらず、最近では誰もがクライアント側の開発を行っています。個人的には、これらの大きなサーバー側のフレームワークが2〜5年で消え、現在の傾向を見ることを期待しています。
どうしてこんなことに? HTML5/JSで開発された新しい「びまん性」のクライアント側の開発は、大きくてよく考えられたサーバー側のソリューションよりも優れているのでしょうか。
これは本当です:
Web開発でクライアント側に急ぎます
しかし、それはクライアント側に限定されず、完全なスタックの動きです。
これは驚くべきことかもしれません。聞いてください。
どうしてこんなことに? HTML5/JSで開発された新しい「びまん性」のクライアント側の開発は、大きくてよく考えられたサーバー側のソリューションよりも優れているのでしょうか。
まず、どちらもよく考えられています。
第二に、それが良いからです。
良い質問。
しかし、「より良い」とは主観的なので、あなたの質問に対する答えは、具体的には何がより良いのでしょうか。
質問に再度アクセスしてください:
HTML5/JSでの「拡散」クライアント側開発は、大きなサーバー側ソリューションよりも優れているのでしょうか。
Because small is nimble.
And big is clunky.
柔軟性です。
大したことではないようです。そうですか?柔軟性。
ただし、柔軟性はすべての根底にあります。柔軟性の1つの改善-すべてを改善します。
保守性。拡張性。スケーラビリティ。モジュール性。使いやすさ。 UX。
そして、それは実装するのがより速いです。これが現実です。より速く、より良い。
This is why Windows 8 made JS a first-class citizen.
HTML5-JSは流行ではなく、なくなることはありません。タブレットにコンピューティングコンテンツとインタラクション動作を提供するために成長するテクノロジーの種を見ているだけです。タブレット。
スマートフォンは、1950年代のテレビ以来最速のマスメディア採用でした。今、私たちはスマートフォンを持っているだけでなく、タブレットも持っています。
MozillaおよびWindowsですでに開発が進んでおり、市場の将来のデバイスで動作するOS-> HTML/JS。
多くのソリューションとイノベーションが残っています。
柔軟性に基づいて、JSの完全なスタックが出現しています。
お役に立てば幸いです。
このストーリーには常に2つの側面があります。サーバー側とクライアント側のコードには、それぞれ長所と短所があります。
クライアント側のスクリプトの利点は次のとおりです。
ただし、サーバーサイドスクリプトには多くの利点もあります。
非常に動的なWebアプリケーションでは、クライアント中心のアプローチが常に人気のある選択肢でした。これは、適切なレスポンシブデスクトップのようなユーザーエクスペリエンスを提供する唯一の方法であるためです。クライアント側のスクリプトなしでは、ユーザーのすべてのアクションにラウンドが必要です。トリップ、つまり少なくとも0.5秒の遅延、通常はそれ以上の遅延。しかし、基本的にデータベース(Wikipediaなど)から提供される一連の静的ページである情報サイトの場合、利点はわずかですが、サーバー側スクリプトの利点は依然として圧倒的です。
観察された誇大広告は、最近の2つの進展の組み合わせから来ています。
実際、サーバー中心のアプローチとクライアント中心のアプローチのどちらが優れているかという点では何も変わっていません。変更された点は、クライアント中心の方が実行が簡単で安価になり、数年前よりもパフォーマンスが向上し、以前よりもはるかに多くのアプリケーションで実行可能な選択肢になることです。
サーバー側は常にあります。すべてをクライアント側で行うことはできません。たとえば、製造現場の天井クレーンからリアルタイムでパラメーターを送信するマイクロコントローラーにBackbone.js MVCデザインを使用したくない場合があります。
誇大広告を信じてはいけない。
私は2009年にサーバー側のPHP=フレームワークからサーバー側のWebサービスに関連付けられたクライアント側のExtJSソリューションに切り替えました。
私が移行した理由は次のとおりです。
しかし、間違いなく、今起こっていることは誇大広告です。それは吹き飛ばされ、多くのウェブアプリは再びサーバー側のUIアーキテクチャを使用します。
クライアント側のソリューションに対する熱意を高めているもう1つの要因は、モバイルアプリの成長です。クライアント側のJavaScriptとAJAXに基づいてWebサイトを作成し、ネイティブiOSとAndroidアプリをビルドする場合、3つすべてが同じRESTすべてのデータを処理するためのサービス。
クライアント側のWeb開発は、Webブラウザーと密接に結びついており、時間の経過とともに変化します。現在提供しているソリューションは、Webブラウザーのページレンダリングエンジンの大幅な変更により、数か月で機能しない場合があります。一部のブラウザは標準と互換性がないか、互換性がなかったため、期待どおりの結果を得るためだけに開発者からさらに多くの努力が必要でした。
この問題を修正しようとするいくつかの解決策があります。たとえば、jqueryを使用すると、スクリプトはこの特定のjqueryライブラリでサポートされているブラウザで動作することが保証されます。ただし、一部/ほとんど/すべてのブラウザとの互換性を提供するのは、作成者次第です。問題は、どのチームがあなたをよりよくサポートするかです。 motoolsチーム、jqueryチーム、その他のチームですか?特定のWebブラウザーをサポートしていない場合、プロジェクトはそのブラウザーで機能しない可能性があります。
あなたが持っていると思われる興奮は長い間あります。 Shockwaveとその後継のFlashが導入されたときに私はそれを見ました。最初にmotoolsで、次にjqueryで複雑なjsライブラリが出荷されると、豊富なユーザーインターフェイスの「大きな復活」がありました(この順に使用し始めました)。 FlexとJavaFXがありました。しかし、市場で大きなシェアを獲得することはできません。プラグインを必要とするプラグインが必要になることもあり、その場合はエンドユーザーをセキュリティの脆弱性にさらすこともあれば、カスタム設定(クライアントのブラウザーでJavaScriptが無効になっているなど)が原因でクライアント側で機能しないこともあります。
一方、サーバー側のソリューションは通常、1回だけ記述されます。すべてが失敗することを心配する必要はありません。新しいFirefox/Chrome/IE/Operaが出荷されたら、書き換える必要があります。クライアントがアプリを改ざんしたり、データを破損したりすることを心配する必要もありません。
まず第一に、ユーザーはサーバーではないものを認識しません(場合によっては気にしません)。サーバー側のコードがどれだけ上手く記述されていても、クライアント部分がうまく機能していなければ、ユーザーはアプリケーションに感謝しません。場合によっては、Nice UIでさえ機能よりも重要なことがあります。
大きくて強力なサーバーホスティングは非常に高価です。一部のロジック(検証を除く)をクライアント側に実装する方がはるかに安価です。したがって、それほどロードされないため、より小さな(したがって、より安価な)サーバーホスティングを使用できます。
これらは、不安定性にもかかわらず、クライアント側のテクノロジーの人気が高まっている理由です。さらに、JSとHTML/CSSは(ほとんど)すべての最新のブラウザーでサポートされています。
アプリケーションのこれら2つの部分は、別々に存在することはできません。そして、インターネットは近い将来どこにも去っていかないようです。
私はそうは思いませんbig server-side frameworks
も消える可能性があります。それらを買うことができる会社が常にあり、それらの重要な利点を利用するでしょう。