基本雑記

日記ブログ

日記を再開する

旅行も終わってSFマガジンの原稿も書き終えてバタバタと慌ただしい日々が終わったのでまた日記でも書き始めよう。イギリスには旅行というか予定している事業の打ち合わせにいったのだけれども。昨日は高山羽根子『オブジェクタム』、柞刈湯葉『未来職安』を読む。どちらもおもしろいが『オブジェクタム』は傑作。

『未来職安』の記事を書いて予約投稿に入れ、『オブジェクタム』は気合を入れて後日書くことにする。Javaを書いていたがだいぶ書き方がわかってきた。この今まであんまり触ってなかった言語を数ヶ月単位で実装していて、ようやく書き方がわかってきた時の感覚というのがとても好きだ。急に全体像が把握できるようになって、問題が起こったときにどこを直せばいいのか、どこを確認すればいいのかパッとわかるようになる感覚。こういうのって何故か段階的にわかるようになるんじゃなくて0から1にガチッと切り替わるようにしてわかるようになるんだよね。

余裕があるので『オブジェクト指向設計実践ガイド~Rubyでわかる進化しつづける柔軟なアプリケーションの育て方』を読み進める。これは名著。なぜ、どうやって設計を部品ごとに分離していくのかが明確に描かれていく。一章の書き出しなど、感動的だ。『世界は手続き的です。時の流れの中で出来事が順番に起こり、過ぎ去っていきます。朝起きてからの手続きであれば、ベッドから出て、歯を磨いて、コーヒーを淹れて、着替えて、仕事へ向かう、となるでしょう。こうした活動は手続き型のソフトウェアで表現できます。物事の順序がわかっているのですから、それぞれを実行するコードを書いて、1つ1つを慎重につなぎ合わせればよいのです。』

しかし現実問題として自分が設計する段階になるとここで書かれているような綺麗な設計にできるわけではない。それは原理的にできないのではなく僕が自在に使いこなせるほど理解していないからではあるが、ゼロからすべてを設計できるわけではなくカオス化したコードに機能を継ぎ足し継ぎ足ししていかなければいけない、そもそも仕様的に細かく部品ごとに分解できるほど理解ができていないままなし崩し的に実装に入らなければいけないなどの状況があるからであって、そうした状況にどう対抗していけばいいのか、といったところが経験知といったものなのだろう。