序文
年末が近づくと、さまざまな要約とさまざまな選択が授与されます。したがって、やや「混沌とした」フロントエンド業界として、私たちも参加する必要があります。次に、@余博伦による翻訳共有を見てください。ps:記事の最後に、2016年のさまざまな要約を見ることができます。調査は海外ですが、国内の調査も参考にできます。
ここから始まります〜
JavaScriptが最高の言語だと思う人もいれば、混乱していると思う人もいます。C ++の父の言葉によると:
世界には2つのプログラミング言語しかありません:1つは毎日スプレーされ、もう1つは誰も使用していません。
認めるかどうかにかかわらず、JavaScriptは日々人気があり、少しでも暑く、エコシステムは繁栄しすぎており、新しい関連ビルドツール、開発フレームワーク、またはその他のライブラリが毎月リリースされる可能性があります。
少し前に、Wei GuorenがJSの開発状況について特別調査を行いました。開始者は、Sacha Greif([ No。761 ] JavaScriptの問題を克服するための6週間の研究計画)でした。この調査には、世界中から9,000人を超える開発者が参加しました。
コードスタイル(JSプリコンパイル済み言語)
フロントエンドフレームワーク
州の管理
API层
フルスタックフレームワーク
テストフレームワーク
CSSビルドツール/プリプロセッサ
ビルドツール
モバイルフレーム
新機能
そして、他のJS関連のトピックに関するいくつかの意見や議論。
JavaScriptの開発状況
JavaScriptは徐々に人気のある信頼できる言語に発展しましたが、同時に肥大化しています。フレームワークツール間のさまざまな複雑な依存関係により、クラッシュすることさえあります。
選択した嫌悪感を持っているあなたにとって、それはさらに悪夢です:あなたはReactまたはAngular2を使うべきですか?本当にWebpackを使用する必要がありますか?今月のCSSの新しいソリューションはありますか?
私も毎日同様の問題で頭が痛いので、この調査を行いました。2週間で9,000件以上の回答がありました。
コードスタイル
一般的なコメント:
ES6が新しい標準になりました
CoffeeScriptは死んでいます
ファッショントレンドの新しい波が来ています
JavaScriptには複数の構文があります.CoffeeScriptが2009年に登場して以来、さまざまなJS構文とトランスコンパイルされた言語が登場しました:ES6、TypeScript、Elm ...
まず、この統計チャートの見方を説明します。面接対象者には5つの選択肢があります。
聞いたことがない
聞いた、興味がない
それを聞いて、学びたい
以前に使用しましたが、二度と使用しません
以前に使用しましたが、再度使用します
ES6、CoffeeScript、およびTypeScriptはすべて一般的な名前ですが、TypeScriptは他の2つほど人気がないようです。
ElmとClojureScriptはそれほど広く知られていませんが、独自の独立したエコシステムではまだいくらか制限されています。
ES6は公式にはブラウザと互換性がありませんが、ほとんどの開発者はその構文を試しました。
TypeScriptとElmは、通常のJS開発者にとって特に使いやすいものではないため、多くの人が試してみようと思っていますが、試したことはありません。結局のところ、JSしか知らないプログラマーにとって、静的型は理解しにくい概念。
フロントエンドフレームワーク
一般的なコメント:
Reactを選択します
Vueはますます人気が高まっています
角度2は1よりも優れています
フレームワークの長所と短所は、しばしば議論の焦点となります。比較的新しいVueを除いて、調査によって提供されたいくつかのオプションの中で、すべてのフレームワークは基本的によく知られています。
Angular 2は発売されたばかりなので、開発段階から実際のアプリケーションまでのプロセスが必要です。統計的な観点から、Reactは誰もが認める勝者です。Vueの優れたパフォーマンスにより、満足度で2位にランクされています。
その他の補足:
州の管理
一般的なコメント:
Reduxは最もホットです
誰もが採用しているのは、実際にはフラックスの概念です
国家管理は徐々に新しいタイプのJSホイールになりました。現在、すべての開発者に適用できるわけではありません。
Reduxは明らかに最もホットであり、Reduxのナンバーワンの代替手段として、Mobxはまだ多くの人に聞かれていません。
Reduxの開発者であるDanAbramov自身は、すべてのアプリケーションでReduxを使用する必要はないことを繰り返し強調してきました。実際に関連するニーズがあるまで、待ってください。
その他の補足:
API 层
一般的なコメント:
GraphQLは有望に見えます
RESTAPIは依然として最も広く適用可能です
言うまでもなく、RESTAPIは間違いなくすべての人に使用されています。Firebaseは、独自のリアルタイムBaaS(サービスとしてのバックエンド)の特性により、一定のシェアを持っていると見なされます(国内の友人の場合、Firebaseについて聞いたことがない場合は、犬のリアルタイム投稿について聞いたことがあるはずです。エンドクラウド)。
そして、最近注目を集めているGraphQLは、多くの人が興味を持っていますが、開発には間違いなく時間がかかります。
その他の補足:
フルスタックフレームワーク
一般的なコメント:
最も主流はMeteorとMEANです
この「オールインワン」フレームワークはそれほど人気がありません
Meteorは、フルスタックフレームワークのリーダーです。同時に、MEAN(Mongo + Express + AngularJS + Node.js)アーキテクチャを使用する開発者は多く、満足度の点で最高のパフォーマンスを発揮します。
さらに、AngularJSの代わりにReact-Reduxを使用するMERNフレームワークはホットです。
テストフレームワーク
一般的なコメント:
最も主流はモカとジャスミンです
開発者は通常、JSテストに特に満足していません
CSSビルドツール/プリプロセッサ
一般的なコメント:
SASS / SCSSが支配的
CSSモジュールは試してみる価値があります
CSSはJavaScriptとは何の関係もないように見えるかもしれませんが、ますます多くのビルドツールとフレームワークがそれらを組み合わせています。
CSS自体には、JSと同様に、他の人から批判される多くの欠点があります。そのため、SASS、LESS、CSSモジュールなどのネイティブCSSを拡張および最適化するために、多くのCSSプリプロセッサやツールなどが発明されています。
その他の補足:
ビルドツール
一般的なコメント:
WebpackとGulpが最も人気があります
グラントは死んでいる
調査に関係するすべてのツールは、依然として比較的主流です。当然のことながら、2年前のWebpackだけが最大の勝者です(人気/魅力/満足度の組み合わせ)。Webpackは、写真、オーディオ、ビデオなどのすべての静的リソースをパッケージ化して構築でき、柔軟に一致させることができるツールです。さまざまなプラグインが使用されます。
その他の補足:
モバイルフレーム
一般的なコメント:
ネイティブアプリは依然として最も主流のソリューションです
ReactNativeはそれ自体を証明しました
JSを介したモバイルアプリケーションの開発のこの実現はごく最近になっており、ほとんどの人はまだネイティブアプリを開発するソリューションを採用しています。
ただし、オリジナルの欠点は、対応するシステムプラットフォーム用に特別に開発する必要があることです。これには、コストがかかります。
JavaScriptは、iOS / Androidプラットフォームアプリケーションを同時に開発するためのソリューションを提供します(WPユーザーはトイレで泣いています)。フロントエンド開発言語のみを習得しているプログラマーは、さまざまなデバイスでアプリを作成することもでき、ますます多くの人々がこの種のテクノロジーを使用し始めています。
React Nativeは、満足度と人気の点で最高のパフォーマンスを発揮しました。
CordovaとPhoneGapは、主にパフォーマンスが本当に問題であるため、ますます悪化しています。
その他の補足:
新機能
サーバー側のレンダリング
JavaScriptアプリケーションは元々、サーバーがロジックとデータを毎回処理する必要があるのではなく、より多くのブラウザーを再生するために生まれました。
しかし、サーバーには確かに独自のユーティリティがあります。サーバー側のレンダリングを通じて、生成されたページコンテンツをクライアントに直接送信できるため、アプリケーションのパフォーマンスを向上させ、対話を向上させ、SEOとアクセシビリティの問題を解決することもできます。
一部のコンテンツベースのサイトではサーバー側のレンダリングが不可欠ですが、Webアプリを使用するためにログインが必要で、SEOについて心配しないサイトではあまり役に立ちません。そのため、ほとんどの開発者は、サーバー側のレンダリングは便利な機能としてのみ見なすことができると考えています。
コード分割コード分割/オンデマンドのロード
JavaScriptは10年以上の歴史を持つ言語ですが、エンジニアリングにおけるJSアプリケーションの開発は始まったばかりです。そのため、ほとんどのアプリケーションは、パッケージ化されたすべてのコードをクライアントに直接送信します。
コード分割により、コードを分割して、クライアント側で本当に必要なコードのみをロードできるため、パフォーマンスが大幅に向上します。
楽観的な更新
一部の複雑なJavaScriptアプリケーションには、クライアントとサーバーの相互作用がたくさんあります。Optimistic Updatesテクノロジーにより、クライアントはサーバーの応答を待たずに対話の結果を直接表示し、サーバーとクライアント間で直接同期していないデータを処理できます。
ホットモジュールのリロード
ホットモジュールの再読み込みとは、開発プロセスで、コードを変更した後にブラウザページを更新しなくても、変更の効果を確認できることを指します。これが、多くの開発者がこの機能を気に入っている理由です。
タイムトラベルデバッグ
Time-Travel Debuggingは、新しいデバッグモードです。これは、Reduxやその他の状態管理を使用するアプリケーションをデバッグするときに、アプリケーションのさまざまな状態の変化をシミュレーションすることを意味します。
リアルタイム操作リアルタイムインタラクション
ブラウザがより強力になるにつれて、インターネットの速度は向上しています。リアルタイムの相互作用の特徴はますます一般的になります。(たとえば、ページを更新せずに新しいリマインダーを受信できることを知ってください)
デッドコードの排除冗長なコードの排除
これで、一方ではクライアントにオンデマンドでコードをロードさせることができ、他方では、ビルドプロセスで不要なコードを直接使用することもできます。コンテンツのこの部分は、このコラムの「JavaScriptモジュール化の概要II:モジュールのパッケージ化と構築」で実際に紹介されています。
プログレッシブエンハンスメント
JavaScriptのさまざまな機能は本当にクールです。しかし、壊れたデバイスや貧弱なネットワークで実行されている場合、アプリケーションがどのようになるか想像してみてください。したがって、プログレッシブ拡張設計が必要です。最初にアプリケーションの最も基本的で主要な機能をロードしてから、徐々にロードを終了します。(一部のWebサイトで提供されている基本/極端なバージョンと同様)
機能ランキング:
見る
JavaScriptの開発は少し複雑すぎます
調査全体を通してこれを簡単に発見できます
JavaScriptが乱用されている
JSはウェブページで使いすぎていませんか?JSプログラマーは間違いなくこれに同意しません
JavaScriptの開発と変更が速すぎる
Gruntをマスターしたばかりのときは、Gulpが人気になり、Gulpを習得したばかりのときは、誰もがWebpackを再び使い始めます。
メインのプログラミング言語としてJSを選択したい
JSの評判はあまり良くありませんが(一部の人の目には、使用を余儀なくされている言語です)、
今日のほとんどの開発者は、JSを使用する必要があるからではなく、本当に使用したいからです。
JavaScriptには明るい未来があります
JavaScriptは私を何千回も虐待してきました。私はJavaScriptを私の最初の愛として扱います。ほとんどの開発者は、JSの開発の見通しについて依然として非常に楽観的です。
JavaScriptを使ったアプリの開発を楽しんでいます
JavaScriptは確かに非常に興味深い言語です
このアンケートは本当に長いです!
(泣いて、私はほとんど書くことに疲れています!)