RealWorldプロジェクト:フロントエンドフレームワークの比較

本日、私たちがあなたの注意を引く翻訳は、2018年の状況を考慮して更新されたもので、2017年12月に公開されたフレームワークの研究に関する記事のバージョンです。



画像



調査中は、さまざまなフレームワークを使用してRealWorldプロジェクトの一部として作成されたバージョンのアプリケーションが使用されます。 ここでは、さまざまなアプリケーションオプションの完全なアイデンティティについては説明できませんが、それらはさまざまなプラットフォームで作成されましたが、このアプローチにより、さまざまなフレームワークの特性を現実的に分析および比較できます。 このアプリケーションについて話すと、次の機能に注目できます。





この研究の準備において、以前のバージョンに関するコメントが考慮されました。 特に、Vueフレームワークはこれまで研究されていませんが、現在はリストに載っています。 開発に使用されるAngularバージョンがここに含まれることは注目に値しますが、アプリケーションでこのフレームワークの製品バージョンを使用するのは時間の問題です。



フレームワーク



この調査には、プロジェクトページにリストされいるすべてのフレームワークが含まれています 。 たとえば、フレームワークを選択するとき、その人気は考慮されませんでした。 主な要件は、RealWorldリポジトリでの実験アプリケーションの可用性です。









研究フレームワーク



分析された特性



さまざまなフレームワークを使用して開発されたアプリケーションの研究では、次の特性が考慮されました。





性能



ここでは、Chromeに付属のLighthouseツールを使用して取得したFirst Meaningful Paintなどのメトリックを使用しました。



アプリケーションページの表示が速いほど、ユーザーに受け入れられやすくなります。 Lighthouseツールを使用すると、 最初の対話性のインジケーター(First Interactive)を測定することもできますが、まだベータテスト中であり、すべてのアプリケーションオプションでほぼ同一であるため、ここでは最初の重要なページ表示のインジケーターに限定します。





さまざまなフレームワークの最初の重要なページがミリ秒単位で表示されます。 この指標が低いほど良い。



結果を考慮すると、それらはすべて十分に良いと言えます。実際には、それらの違いに気付くことは非常に困難です。



アプリケーションサイズ



ここでは、Chrome開発者ツールの[ネットワーク]タブを使用して取得した、転送されたデータの量を分析しました。 サーバーから転送されたものはすべて、ヘッダーと応答本文を含めて考慮されました。 完成したアプリケーションのファイルが小さいほど、読み込みが速くなり、ブラウザで解析する時間が短くなります。



このインジケーターは、フレームワークコードのサイズ、プロジェクトに追加された外部依存関係、およびアセンブリの作成に使用されるツールの品質に依存します。





キロバイト単位の送信データのサイズ。 小さいほど良い。



このインジケーターのリーダーは、Svelte、Dojo 2、AppRun、Crizmas MVCであることがわかります。 特にプログラムコードのサイズに関するデータを考慮すると、ELMについて明確なことを言うことはまだ困難です。これについては以下で説明します。 さらに、このような比較でHyperappがどのように表示されるかを見るのも面白いでしょう。 おそらく、私たちは次回このフレームワークを調べることができるでしょう。



コードの行数



アプリケーションコードの行数のカウントは、 clocを使用して実行されました。 src



フォルダーにあるファイルのみが処理されました。 空白行とコメントは考慮されませんでした。 アプリケーションを構築するためにコードの行数が重要なメトリックであるのはなぜですか? Edsger Dijkstraがこれについて言ったことは次のとおりです。「デバッグがエラーを除去するプロセスである場合、プログラミングはエラーを導入するプロセスでなければなりません。」





異なるフレームワークを使用してアプリケーションを作成するために記述する必要があるコードの行数。 この指標よりも少ない-より良い。



アプリケーションを作成するために必要なコード行が少ないほど、何か間違ったことをする可能性は低くなります。 さらに、少ないコードで表されるプロジェクトは保守が容易です。



まとめ



この資料は、いくつかの特性についてWebフレームワークを分析した結果を示しています。 もちろん、プロジェクトのフレームワークを選択することは、異なるフレームワークを使用して記述されたアプリケーションの読み込み速度を考慮し、コンパイルされたファイルのサイズと必要な機能に到達するために記述する必要があるコードの量を考慮するよりもはるかに大きなタスクです。 ただし、この研究により、新しい視点からさまざまなフレームワークを検討できるようになると考えています。つまり、プロジェクトのプラットフォームを選択するのに忙しい人が意思決定を行うのに役立ちます。



親愛なる読者! フロントエンド開発用のフレームワークを選択するとき、どのような考慮事項に従いますか?






All Articles