ソフトウェアの構造化が理解できるようになったかも

いままで頭の中でもやもや理解していなかったソフトウェアの構造化がちょっと理解できるようになってきた。現在の理解では、

  • 問題を抽象度別に分類し
  • 抽象度順に別にレイヤー化して
  • レイヤー間は(javaで言うところの)インターフェースで分離するように作る

ということ。
これによって、同僚がどれほどクソコードを撒き散らしているかがわかるようになってきた。何も考えずにソフトウェアを作るとメンテナンスにどれほど意味のないコストがかかるかがまだ理解できていないらしい。逆に、あんな抽象度がばらばらな処理を理解できるなんてある意味すごいけどね。