/note/tech

サーバーサイドで、OOPのベストプラクティスを理解している人はフロントでもクリーンなコードを書く

サーバーサイド一筋5年の優秀な同僚のVue.jsのコードをレビューしたことがあります。責務が分割され、メソッド毎の処理がわかりやすく、とても綺麗に書かれており、特に指摘するところなくLGTMを出しました。

「調べながら書いた」とのことで、この経験から以下の洞察を得ました

@Panda_Program

・サーバーサイドで、OOPのベストプラクティスを理解している人はフロントでもクリーンなコードを書く

・SOLID原則(クラス単位)とレイヤードアーキテクチャを理解するとフロントで応用できる

・「サーバーサイドからフロントエンドエンジニアに転身した人」というだけで、侮ってはいけない

@Panda_Program

・情報収集力は一種のスキル。サーバーサイドでもフロントエンドでも役に立つ

結局、クリーンなコードを知っている人は、サーバーサイドでもフロントエンドでもコンポーネントごとの責務がわかりやすく、シンプルなコードを書くということです。

@Panda_Program

さらに、ここから一歩踏み込みますが、情報収集力とWebを構成する技術に対する理解さえあれば、フロント周辺のツールの利用経験の有無は重要ではないと思ってます。

ツールはあくまでも道具です。そのツールで解決したい課題とそれに対するにアプローチ、トレードオフを理解すれば、

@Panda_Program

経験と熱意と興味があれば、基本的な使い方はマスターできます。あとは「最新の書き方」(時に振り回されること)や、「コミュニティが発見したベストプラクティス」を先達が教えれば済むことです。サーバー側でもフロント側でもどちらか一方に通じ、ツールに対するメンタルモデルを形成すれば、

@Panda_Program

もう一方の学習コストは大幅に減り、いわゆる「上達」につながると考えています。なので、フロントとサーバー側で分けるのではなく、ミクロな視点では「OOPによるクリーンなコードの書き方」、より大きな視点では「Webを支える技術に対する理解」「中・大規模のソフトウェアの設計」「システム全体の

@Panda_Program

のアーキテクチャ」のスキルで判断するべきでしょう。

なお、私自身はCSの学位を持たないWeb Developerで、サーバーサイドはPHP、フロントエンドでReactを書いているものであることを付言しておきます。もちろん立場が違えば視点も異なると思います。

@Panda_Program

ただし、フロントのコンポーネントの分け方だけは、自分なりの指針はまだ見出せないでいます…。あれは何を参照して何をモデルとすればクリーンになるのか、試行錯誤中です

@Panda_Program