
フロントエンドって、バックエンドより 難しいんですか?
https://youtu.be/JUq–8C1Dac
(*先に謝罪しておきますが、双方のシニア・エンジニアの方、的外れな情報発信してたらすみません、突っ込んでください)
皆さまこんにちわ、りょすけです。
エンジニアをしたり、マーケッター をしたり、色々しています。
今日は、プログラミングのお話しでございます。
ズバリ、
目次
フロントエンドって、バックエンドより 難しいんですか?
について話します。
想定読者は、ジュニアのバックエンドの人で、フロントエンドが気になってる方や、これからフロントエンドとして働く入門者様へ向けた記事になります。
[st-mybox title=”この記事の執筆者について” fontawesome=”fa-check-circle” color=”#757575″ bordercolor=”#BDBDBD” bgcolor=”#ffffff” borderwidth=”2″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]
私は、RailsやReactの現場で5年エンジニアとしてのキャリアがあります。
ReactとNodeで開発したMeee!というスキルシェアサービスや、
Railsで開発したランゲージ エクスチェンジというサービスも開発しています。
[/st-mybox]
では、行ってみましょう!
そもそも、フロントエンド・エンジニアとはなんぞ?
フロントエンドエンジニアとは?
という質問に、非常に的を得た回答を示している本の一節があります。
これ。
フロントエンド開発といえば、HTML / CSSをベースとしてjQueryによるインタラクションを付与する程度のものであり、「フルスタックWebアプリケーションフレームワーク」の一部でしかありませんでした。しかし、Reactを用いたシングルページアプリケーションの登場が、フロントエンド開発に大きなバラダイム転換をもたらしました。「Virtual DOM」(仮想DOM)によって高速な描画更新を行うことで、快適なWebブラウジングをエンドユーザーに届けることができるようになりました。
ちょっと引用長すぎてゴメンw
でも、これ読んで僕は『確かにいいいいい』って思いました。
つまり、フロントエンド開発の歴史を紐解くと、
[st-mybox title=”参考” fontawesome=”fa-file-text-o” color=”#757575″ bordercolor=”” bgcolor=”#fafafa” borderwidth=”0″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]
単なるフルスタックWebアプリケーションフレームワークの一部、CSSやHTMLでwebデザインする
↓から↓
ReactやVue、AnglerなどのSPAの技術を用いて開発を行うエンジニア
[/st-mybox]
のように、進化したと言えます。
そういえば、何年くらい前か忘れたけど、ReactなどのSPA技術が出てくる前は、
エンジニア界隈の一部の人が、HTMLやCSS、JSを書く人をエンジニアではなくコーダーと敢えて呼び、下に見てた印象すらある。
本当、時代すぐに、変わるものです。
上記、TypeScriptの本に書いてあるのでもっと深く知りたい人は是非読んで見てはいかがでしょうか!
じゃあ、Reactを含め、フロントエンドは難しいの?
いや、僕は別にフロントエンドが難しいとは思わない、むしろバックエンドの方が難しいと思う。
というのが個人的な意見です。
理由は数多く挙げられます。
[st-mybox title=”フロントが難しくない理由” fontawesome=”fa-file-text-o” color=”#757575″ bordercolor=”” bgcolor=”#fafafa” borderwidth=”0″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]
・フロントエンドは開発環境の構築も楽なことが多い
・フロントエンドはDB、インフラ基本無視でいい
・フロントエンドはポインタみたいな概念なし
・フロントエンドは驚くべきことに『とりあえず仕上げる』が可能
[/st-mybox]
まあ、こんな感じかな。
逆に考えれば、バックエンドエンジニアっていうのは、
[st-mybox title=”バックが難しい理由” fontawesome=”fa-file-text-o” color=”#757575″ bordercolor=”” bgcolor=”#fafafa” borderwidth=”0″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]
・バックエンドは開発環境の構築がダルイことが多い
・バックエンドはDB、インフラも面倒見なきゃいけないときがある
・バックエンドはデプロイすら任されることがある
・バックエンドはポインタみたいな概念がある言語がある
・バックエンドは『とりあえず仕上げる』なんて出来ない
[/st-mybox]
となります。
勿論、だからって言ってフロントが簡単だなんて言ってない。
僕の勝手な偏見と経験で、『多分フロントの方が詰まるパターンが少ないし、詰まることも少ないだろう』って言ってるだけです。
さらに、
決定的に付け加えなきゃいけないことがあるんだけど、
現場に寄る… です。
身も蓋もないけど、こう言わざるを得ない。
例えば、さっきTypeScriptの本を紹介したけど、
わざわざTypeScriptで頑張って工数を積んで、開発してる現場に放り込まれた場合、
既存のコードからしてかなり高度に保守されてるかもしれないし、
コードも規約も激しく、難しいコード読解しながら機能を追加しなきゃいけないかもしれない。
逆に、コード規約も実装方法も緩い現場に放り込まれれば、
結局エンジニア自身の裁量で『動けばOk』になりかねないから、ハードルはクソ下がる
(まあ、エンジニアとしてのスキルは上がらない)
バックエンドが出来てたら、フロントエンドは出来る
今バックエンドをやってる人は、そこまで心配しなくていいと思う。
Reactとかは、かなり癖があるけど、覚えれば別に大したことない。
普通に使えるようになる。
逆に、バックエンドの経験ない人は、多分ハードル少し上がる。
一応、プログラミングの素養の多くはバックエンドで磨かれると思うから。
インフラ、DB、データの扱い方、ここら辺を学んだ後に、フロントはやった方がいい。
以上!
ありがとうございました〜〜〜〜〜
https://off.tokyo/blog/backend-vs-front-hikaku/