Web フロントエンド開発について超ざっくり知る
こんにちは、sugarです。
この記事は 初めてのアドベントカレンダーAdvent Calendar 2021 11日目の記事です。
はじめに
この記事は Web フロントエンドの開発とフレームワーク/ライブラリの歴史について超ざっくり解説します。
- 以下のような方が対象読者 🔰 です。
- Web フロントエンドの開発を勉強してみたい人/歴史をざっくり知りたい人
- Web フロントエンドの開発を勉強してみたい人/歴史をざっくり知りたい人
用語についての詳細なバックボーンは解説せず、ざっくりと流れを掴むことにフォーカスするので、気になった用語についてはぜひ調べてみてください 🙏
Web フロントエンドとは?
一般的に(?),Web フロントエンドの言葉が表す範囲は
「ユーザーがブラウザ上の UI を操作し、Web アプリケーションにアクセスするあたり」のことを指します。
つまりWeb フロントエンド開発は、
ユーザーとアプリケーションの間のブラウザをごにょごにょしていい感じにするのが主なおしごとになります。
どうやってブラウザ上に表現される?
ブラウザ(safari や chrome)上のコンテンツはDOM
によって表されます。
DOM
は HTML の各要素が展開され、ツリー状になっています。
この DOM に対してJavaScript
のようなスクリプト言語を通してアクセスすることで動的な操作
を可能にします。
(DOM は特定のプログラミング言語に依存しないように設計されているので、必ずしも JS である必要はありません)
動的?
例えば、
「Qiitaにアクセスしたら毎回トップページに違う記事が表示されている」
「入力フォームに文字を入力したら勝手に検索結果が表示される(インクリメンタルサーチ)」
みたいなやつです。
JS君がいい感じにDOMを組み立ててくれます。
JSのフレームワークやライブラリ
ピュアなJSでも動的な操作はもちろん実装できますが、
今はなきIEやMozilla系のブラウザではブラウザ間でJavaScriptの挙動に差異があり、実装が大変でした。
2006年、そんなブラウザ間のJS実装の差異を吸収してくれるライブラリが人気になりました。
それがjQuery
です。
ここから何世代にもわたってWebフロントエンドの戦争は続いていきます。
- 2005年~2006年
- Google Mapなどのリアルタイム表示を切り替える必要がある動的なサービスの登場により、サーバーサイドのみのページ遷移による静的HTML返却だけでは対応できなくなった
- 非同期通信をしながら動的にページを書き換えられるAjaxが使われるようになる
- 2007年~2009年
- HTML5の登場でFlushなどのプラグインが死亡する
- node.jsリリース
- ECMAScript 5th Edition発表
- 2010年~2012年
- フロントエンド向けにMVCのデザインパターンを適応したフレームワークが登場
- Backbon,Knockout,AngularJS(SPA先駆者)
- フロントエンド向けにMVCのデザインパターンを適応したフレームワークが登場
- 2013年~
- React, Vue, Angular登場
- 従来のパフォーマンス的な問題を仮想DOMや単方向データフローで解決
↑には書いていませんが、モジュールバンドラのWebpack
やトランスパイラのbabel
などのWebフロントエンド周りのエコシステムの成長も今のフレームワークの進歩につながっています。
なんとなーく、ブラウザ上で表現できる幅が広がるにつれて、既存の技術だとどうしても動作的に重いなどの色々なつらみが出て、それを解消するためにフレームワークも進化していったんだなあくらい押さえてくれれば嬉しいです。
モダン?なフレームワークについて
年表の通りWebフロントエンドの開発環境の移り変わりはすごく早いです。
↑ではフレームワークの移り変わりをメインに示していますが、同じフレームワーク(例えばReact)の中でも日々進化を遂げています。
そのため、使用するフレームワークのバージョンによっては同じフレームワークでも開発環境がかなり違うことは一応頭の中に入れておいたほうが良いです。
ReactやVue,Angularなど何が違うのかみたいな記事はたくさんあるので調べてみてください🙏
参考: Angular vs React vs Vue – どのフレームワークを使うべきか?
各フレームワークの比較
ここでは4つ(jQuery, Angular, Vue, React)を比較します。
- npmパッケージのダウンロード数の推移の比較は以下の通りです。
上だけ見ると世界的にはReactが圧倒的ですが、国内だとRailsのmodelやviewの考えを適用できるVueは非常に人気が高いです。
また、jQueryはまだまだ現役で、上記フレームワークに比べて環境構築の手間もそんなに掛からず、パフォーマンスをそこまで気にする必要がない場合においてはとても有用なフレームワークだと思います。
これから
今回説明はしていませんが、Reactの製のフレームワークであるNextやVueのNuxt、最近だとRemixなどパフォーマンス最適化において有用なフレームワークなどが次々に開発されています。
これを機にWebフロントエンドに興味を持った方がいらっしゃればぜひ勉強して使ってみてください🙇♂️
参考
Frontend Developer
DOM の紹介
ブラウザによるイベントの取り扱いの違いを吸収する
フロントエンジニアの価値はどこから生まれるのか
Webアプリケーションフロントエンド年代記 - 2018年夏編
マイクロフロントエンド入門
2021 Developer Survey
Author And Source
この問題について(Web フロントエンド開発について超ざっくり知る), 我々は、より多くの情報をここで見つけました https://qiita.com/sugar_king777/items/33bb5a253cdd92d8284c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .