twitter.comサーバーサイド一筋5年の優秀な同僚のVue.jsのコードをレビューしたことがあります。責務が分割され、メソッド毎の処理がわかりやすく、とても綺麗に書かれており、特に指摘するところなくLGTMを出しました。
— プログラミングをするパンダ (@Panda_Program) 2020年7月25日
「調べながら書いた」とのことで、この経験から以下の洞察を得ました
@Panda_Program さんより引用
サーバーサイド一筋5年の優秀な同僚の
Vue.jsのコードをレビューしたことがあります。
責務が分割され、メソッド毎の処理がわかりやすく、
とても綺麗に書かれており、
特に指摘するところなくLGTMを出しました。
「調べながら書いた」とのことで、この経験から以下の洞察を得ました。
SOLID原則 (クラス単位)とレイヤードアーキテクチャを
理解するとフロントで応用できる。「サーバーサイドからフロントエンドに転身した人」
というだけで、侮ってはいけない。
情報収集力は一種のスキル。サーバーサイドでも
フロントエンドでも役に立つ。結局、クリーンなコードを知っている人は、
サーバーサイドでもフロントエンドでも
コンポーネントごとの責務がわかりやすく、
シンプルなコードを書くということです。さらに、ここから一歩踏み込みますが、
情報収集力とWebを構成する技術に対する理解さえ
あれば、フロント周辺のツールの利用経験の有無は
重要ではないと思っています。ツールはあくまでも道具です。
そのツールで解決した課題とそれに対するアプローチ、
トレードオフを理解すれば、
経験と熱意と興味があれば、
基本的な使い方はマスターできます。あとは、「最新の書き方」(時に振り回されること)や、
「コミュニティが発見したベストプラクティス」を先人達が
教えれば済むことです。サーバー側でもフロント側でも
どちらか一方に通じ、
ツールに対するメンタルモデルを形成すれば、
もう一方の学習コストは大幅に減り、
いわゆる「上達」に繋がると考えています。なので、フロントとサーバー側で分けるのではなく、
ミクロな視点では「OOPによるクリーンなコードの書き方」、
より大きな視点では「Webを支える技術に対する理解」
「中・大規模のソフトウェアの設計」
「システム全体のアーキテクチャ」のスキルで
判断すべきでしょう。