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