今年はプログラミングに再入門してます。 もはや若くないので、自分の「頭の悪さ」を受け入れて、それでも読み書きできるコードを模索してます。 ここでいう「頭の悪さ」とは、「大きなクラスや長いメソッドを理解できない」という脳のスペック的な意味です。 ぼくは二十代の頃と比べて頭が悪くなってしまったので、DDD(ドメイン駆動設計)、TDD(テスト駆動開発)、DCI(データ・コンテキスト・インタラクション)といったソフトウェア工学の成果に興味を持ってます。 抽象度の高いドメインモデリングとかプログラミングって、一見頭がよさそうに見えるかもしれませんが、むしろ(上記の意味で)「頭が悪い」人にこそ必要なんです。 頭が良かったら、もっとCPUに寄り添った高速なコードをすらすら書けるわけです。 頭が悪かったら、人間のメンタルモデルに寄り添った読みやすいコードを書くしかないわけです。 だから、一見高度で抽象的で