Frontend Roadmap を読んで反省しよう

2020-06-13

よくディレクターやフロントエンドエンジニアの方から「自分たちがやっていることが正しいか自信がない」というお話を聞きます。

自身も数年前に『果たして自分がやっていることは正しいのか?』という不安に襲われたことがありました。

で、未だにその不安に襲われつつ開発を続けているわけですが。

一方で『あ、自分のこの知識は間違っていたから直そう』とか『自分のこの知識は正しかったんだな』と思う瞬間もあります。

自分の考え方をとても大きく振り替えらせてくれたものの一つが、Frontend Roadmapです。


もしあなたがフロントエンドエンジニアでしたら、見たことがあるかもしれません。

確か数年前から毎年作られているもので、自身も 2 年ほど前に初めて見た記憶があります。

で、このロードマップなんですが、むちゃくちゃよくできています。

個人であれば、このロードマップに沿って勉強をすることを強く強く強くオススメします。

会社やプロジェクトであれば、技術選定はこのロードマップで推奨されているものを使用すべきだと思います。

このロードマップで推奨されているものを、技術に焦点を合わせて書き出してみると以下のようになります。

  • バージョン管理システム: Git
  • リポジトリホスティングサービス: GitHub
  • パッケージ管理マネージャー: npm, yarn
  • ビルドツール: npm scripts
  • JS フレームワーク: React
  • Store 管理: Redux
  • モダン CSS: Styled Components, CSS Modules
  • CSS フレームワーク: Reactstrap, Material UI, Bootstrap
  • テスト: Jest, react-testing-library, Cypress, Enzyme
  • 型チェッカー: TypeScript(特に強く推されている)
  • SSR: React 特に Next.js
  • GraphQL: Apollo
  • 静的サイトジェネレーター: Next.js, GatsbyJS
  • モバイルアプリ: React Native
  • デスクトップアプリ: Electron

むちゃくちゃデファクトスタンダードだなーと、まさに理想的な技術選定だと思います。

いついかなる現場であっても、上記の技術を選べば 100%問題ないと言い切れるレベルで良い選定だと思います。

自身の知識と照らし合わせてみると、CSS フレームワークとテストとモバイルアプリ周りが少し弱いですが、その他はかなり網羅できていると思います。


ただロードマップに対し、個人的に気になるなーと思うところとしては、

  • Prettier が推奨になっていないのはイマイチかなーと、手動でフォーマットかけるんですかね?
  • 同様に ESLint が推奨になっていないのも疑問です、海外ではそこまで重要視されてないんですかね?

くらいです、あとは本当にケチのつけようがないです。


で、ここから本題ですが。

日本では、上記のロードマップから外れた技術選定を行う現場が多すぎると思っています。

例えば JS フレームワークだと、Vue.js をなんとなく選んでいる現場もかなり多いです。

TypeScript を断固として導入せず、Flow で頑張る現場もたまに見かけます。

Redux が難しいからと避けて、MobX を使用する現場も多いですが、ではなぜ Redux が世界的に流行っていて、後発の MobX はそれを超えれていないのか、その理由を考えたことはあるのでしょうか?

CSS やモダン CSS を理解しないままに CSS フレームワークを導入している現場もたくさん見てきました。

GitHub を毛嫌いし、GitLab を選択している現場もありました、その選択はロードマップでは非推奨とまで言われています。

もちろん、Vue.js がダメだとか MobX がクソだとか CSS フレームワークを導入するなとか GitLab じゃあかんとか、そんなことは毛ほども思っていません。

ただ、なぜその選択を行っているのか、そこにしっかりとした理由があるのかどうか、そこがすごく大切だと思います。

それはもちろん推奨されている技術であってもそうです、推奨されているから、というのは確固たる理由ではないですよね。

とはいえ、世界的に推奨されているものがあるにも関わらず、それを選択しないのであれば、そこにはより強い理由がほしいなーと。

エンジニアである以上は、そう考えるのが普通ではないでしょうか。

なんでもかんでもなんとなくで進めている現場が多いのは、本当によくないことだと思います。

直せるところは即時直して、すぐに直すことができないのであれば、その選択をしっかりと反省し、次のプロジェクトからはしっかりとした選定を行うべきだと強く思います。

以前からそうしているから、とか、みんながそうしているから、とか、上からそう言われたから、では、個人もプロジェクトも会社も良い方向に進めません。

強い理由を持って選択を行うこと、それこそがエンジニアとして、会社としてあるべき姿だと、個人的には思います。


上記でも書きましたが、個人の開発経験も踏まえると、上記ロードマップに沿えば、フロント開発はなんの問題もありません、一切問題ありません。

これからフロントエンドエンジニアを目指す人はこのロードマップに沿って勉強を行えば良いと思います。

今フロントエンドエンジニアであって、勉強する順番を間違えている人は、今すぐ戻ってそこから勉強すべきです。

一部上場の大企業であっても、できたてほやほやのベンチャー企業であっても、この技術選定にべったり乗っかって全く問題ないと思います。

これが 2021 年になればまたガラッと内容が変わる可能性もあります、事実毎年しっかりアップデートがかかっています。

その時はまたその時で、立ち止まって振り返って、また一から勉強していく、それがフロントエンドエンジニアに課せられた使命なのかなーと。

自分も今まで目を背けていたことをしっかりと勉強しないとなーと思う、今日このごろです。

© 2018 kk-web