2023-03-24

(個人開発なので)ゴッドクラスでいいさ

個人開発でアーキテクチャを考え出すと「下手の考え休むに似たり」になるので、ほどほどにしておこうと思ったという話。OOP におけるゴッドクラスの話はしない。

「God Programming」というプロンプトで生成された画像
「God Programming」というプロンプトで生成された画像

個人開発だと自分の裁量で自由にリファクタリングができるので、気に入らない部分を直し続けることができてしまう。ただ、リファクタリングし続けてもよいコードとかアーキテクチャにはならないと思う。

よいアーキテクチャは何で決まるか

コードやアーキテクチャの「よさ」を評価するためには「将来問題が起きないかどうか」を考える必要があると思う。 起こり得る問題が明らかでない場合は、そもそもよいコードが何なのかわからない。

そして、起こり得る問題が思いつくかどうかは経験とか知識が必要になるので、それがない状態で考えても何も変わらない。

今、目の前にある、この瞬間のコードがよいコードか否かは、名前と実際の役割が一致しているのかとかそのぐらいの判断しかできない気がする。

すごいエンジニア、最初はすごくない

たくさん経験を積んだソフトウェアエンジニアなら、よさそうなアーキテクチャを考えてコードをゴリゴリ書けると思う。それができる理由の一つに「過去にそれでうまくいったから / 失敗したから」があると思っていて、赤ちゃんの時からアーキテクチャが考えられたわけではないと思う。

だから、ソフトウェアエンジニア暦でいうとようやく歩き始めたぐらいである自分が、よいコードを書けるかといえば無理なのである。

必要だからそうする

最初からよいアーキテクチャを考えるのは難しいので、とりあえずコードを書いて、問題が起きた時にその問題を解決する方法を考えてもいいと思う。でないと、ずっとコード弄りすることになる。

あくまでもこれは個人開発の話で、業務の場合は既存のコードとの兼ね合いやレビューなどがあるので、ある程度最初からいい感じに書くのは必要だと思う。

とはいえ基本は知る

本当に何もわからないまま書くのもそれはそれで大変なので、基本的な知識は入れつつもこだわりすぎずにコードを書く、問題が起きたらちゃんとする、という感じがよいと思う。