hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

知識

コード書いてると,何が起きるのかということを意識しがちだけど,何が起きないかも重要.
車に人が乗るのであって人に車が乗るのではないことはふつうの人は知ってるけど,車と人の関係が明らかに示されていなければ,どちらの場合も考慮することになる.
まだ実装されてないだけで,将来的に車が人に乗ることはあるのか,その場合どうなるのが正しいのか,絶対にないのか.
順番も大事で,車に乗ったあとに運転するのであって,運転したあとに乗ることは絶対にない.
車と人,みたいな登場人物が居ることすら分からない場合もあって,クラス一覧を見てると,車の隣に,にんじんというのもあるけど,これは車が壊れたやつ,carがrotしたやつですか,みたいなことになる.車とにんじんの関係性に注目する必要はない.
動くだけのソフトウェアには仕様が分かる文章が残されていないことがある.何が起きて,何が起きないのか,起き得ることはどの順番で起きることがあるのか,何と何に重要な関係があるのか,みたいなのをコードを読んで解読することになる.
かっこいい図でもあるといいけど,コメントくらいでもいいので書いておくと役立つことがあって,僕は機能の主要なクラスの先頭とかに,数行から数十行くらいの文章を書いたり,重要なことを箇条書きで書いたりしてる.

  • 車は乗り物である
  • 車には人が乗る
  • 運転する前に必ず乗ること
  • 車が人に乗ったら救急車を呼ぶこと

車を見たことがない人でも,これくらい分かればなんとかなりそう.ここに書かれていないことは重要でないことなので,にんじんのことは忘れてしまってよいことが分かる.