2016.10.21

DDDを勉強するまでプログラミングはストレスがたまる作業だった。あの処理あっちに書いてみたけど……ハァハァやっぱりここに書いた方が、なんか……気持ちイイよね……ハァハァみたいなことが無限に起こる。特に僕は性格からかこれが頻発する。すごい細かい部分でこれが起こる。一行ごとに起こる。それで結局めんどくさくなって辞めちゃう。

実はプログラムって自身の整頓欲求に従って気持ちよくなりながら書いていいんだっていうことを、DDD というか、ソフトウェア工学を独学して気付いた。明確に変更に強くなるとかって説明できるときもあるけど、結構ざっくり感覚的にやって良いっぽかった。人間の普段の生活でしみついている整頓欲求、というとめちゃめちゃきちんと片付けるイメージだけどカオスな机の上でもどこに何があるのか自分でわかっているあの感覚だ、この感覚でソフトウェアも整頓してよい。

で、このとき邪魔になるのがプログラミング言語フレームワークから受ける制約で、これをそんなん気にすんなよ!って背中を押してくれるのが DDD だと思う。机は狭くなるけどディスプレイには足が付いているから机に置いて使っているところに DDD くんがやってきて、そんな狭い机じゃ仕事なんないっしょディスプレイアーム買いなよ安いよ上海問屋の安いやつでもいいんだぜめっちゃ作業スペース広なるで??つってディスプレイアームを買う背中を押してくれるし、ディスプレイアームで仕事をする快適さも教えてくれる、イイやつだ。

フレームワークに乗っているとその文化からはみ出ることが怖かったり、普段は触らないようなフレームワーク自身の設定ファイルとか触らないといけなくなったりしてついキモチイ感覚に妥協してしまうけど、妥協しない勇気をくれたのが DDD だった。DDD って良くドメインで使われている言葉を設計で使うって説明がされるけど、RDBMS とかフレームワークによって"簡単"に実装できるものだけ使っていたんじゃ本当に欲しいソフトウェアは作れないぜって、フレームワークから外れたあとの設計指針を示そうっていうのが DDD な気がした。

まあそういうわけで今日はバイトで DDD を使って再設計していたソフトウェアのコアドメインが実装し終わったので、ちょっと嬉しかった。