tips / javascript

web開発/フロントエンド/React開発を学ぶためのロードマップ

Reactの勉強の指針として、Webエンジニアが次に何を学ぶべきかを示したロードマップを詳しく見てみました。
最初のWeb Developerの図に記載の通り、黄色は「作成者のおすすめ(Personal Recommendation)」、肌色は「選択肢としてあり(Available Options)」です。

Web Developer in 2019

Web Developer in 2019
Web Developer in 2019(https://github.com/kamranahmedse/developer-roadmap)より

sitmkさんのブログで詳しく解説されています。
WebエンジニアになるためのDeveloper roadmap

Frontend Developer

Web Developer in 2019
Roadmaps for Developers(https://roadmap.sh/frontend)より

「CSS」のGridはIEへの対応を考えて使用を避けていましたが、基本的な機能はサポートされるようになりました。「CSS Pre-processors」はLessの使用もまだ少し見られるけど、これから始めるのであれば主流のSASSが良さそうです。

少し進んで「Pick a Framework」では、フレームワークを始める前に「SPA(Single Page Applications)」とは何か、そのメリット・デメリットについてを理解するべきと書かれています。

「Testing your Apps」はテストツールで、「Jest」はFacebook製のBabel、TypeScript、Node、React、Angular、Vueなどに対応したJavaScriptのテストフレームワーク。「Enzyme」はairbnb製のReact向けのテストユーティリティ。「Cypress」はブラウザテストツール。これらの3つを使用することで、全てのニーズを満たすことができるとのことです。

また、上記のテストに関連して、「単体テスト(Unit)」「結合テスト(Integration)」「機能テスト(Functional)」について理解し、これらの書き方を学びましょうとあります。

フレームワークやサーバーサイド、モバイルアプリは全てReact.js(+ Next.js)ですね。Static Site Generatorsのおすすめ「GatsbyJS」もReactがベースになっています。

React Developer in 2019

React Developer in 2019
React Developer in 2019(https://github.com/adam-golab/react-developer-roadmap)より

Adam Golabさんが作成したReact版のロードマップです。

HTML、CSS、JS Basics、General Development SkillsはWeb開発/フロントエンドのロードマップと重なる部分が多いです。「CSS Preprocessors」はSASSに加えてPostCSSも必須になっています。

「状態管理(State Management)」は「Redux」が挙げられています。

APIクライアントは必須として「REST」、覚えておくと良いものとして「GraphQL」が挙げられています。「GraphQL」はAPI用のクエリ言語で、先ほども名前が出た「GatsbyJS」でも採用されています。

ユーティリティライブラリーには主に配列を処理する「Loadash」、日付や時刻を操作する「Moment」、条件付きでclassNamesを結合するライブラリ「Classnames」の3つが必須として挙げられています。

テストツールはフロントエンドにあった「Cypress」がなく「Sinon」が入っています。「Sinon」はテストダブルを行うツールです。ダブルは代役や影武者といった意味もあり、映画の撮影などで演奏シーンやプロの技術を要するシーンの撮影に使用されるボディダブルという役割があります。Web制作においては、テストダブルがある状況を作り出し、それをもとにプロジェクトやアプリの検証を行います。

同じくテストから線が伸びている「E2E Testing」。E2Eは「End to End」の略でアプリなどを実際にサーバーやブラウザを立ち上げて初めから終わりまで一通り操作を行うテストです。

最後に

初めてWebに触れる人だったり、ある程度下地があってもたくさんあるライブラリやツールの中でどれを学べば良いかなど迷うことは出てくると思います。仕事であれば必要とされていることが明確なのでピンポイントで学習できる場合もありますが、漠然と新しい言語を覚えたいといった場合には、どこから手をつけて良いのかわからないことが多いので、こういった指針があるととても参考になります。

< Prev PostNext Post >