Open5
設計について学んだこと

クラスは目的ベースで作る。
目的ベースで短くて狭い範囲の言葉でクラス名を定義する。
インスタンス変数と、それを操作するメソッドをクラスに作るのが基本。
不正なインスタンスが作られない仕組みも大事

utilとかcommonみたいなディレクトリに置かれるクラスには気を付けること。
共通で使うかもしれんけど、限定的にしないと「これも関係するような」で何でもそこに放り込まれてしまう

言語によってnullを許容しない型が存在したり、設計が違う言語があるっぽい。
一回他の言語も学んで言語毎の機能とかもみた方が良いのかなー

現場では締切があり、リリースしなければ価値を提供できない側面もあるので時間が無限ではない、
けど、だからといって品質を落とせない側面がある。。
さらに大量データを扱う場合は、メモリ使用率や、SQLのクエリの実行時間も意識しないといけない

ちっちゃくてもクラス作るの恐るな、って言うけどテスト書くコストはあるよな。。
しかし神クラス作るとテストできない、って問題が発生するのはよく分かる。
単体テストできるようにしないと変更が大変。。