今週もこちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。
今日は関数型デザインの第8章を読んでいきました。
循環依存
説明用のコードだからというのはありそうですが、循環参照が出てきて驚いたという話がありました。
処理がそこまで複雑ではなくマルチスレッドのことも考慮していない現状だからこそできるソリューションで、問題がまったくないとは考えていなかったんじゃないか?という話をしました。
ただ、Clean Architectureをみる限りはADPの文脈で循環依存は絶対だめだと記載しているので、パッケージレベルではないとはいえしれっと循環依存をしているのはだめじゃないか?という話をしました。
噂話は誰が持つべきか?
現実世界をイメージすると、噂話を持っているのは人なのでドライバーが噂話を持っている方が良いのではないか?という話が出たのですが、今回の仕様的にバス停ではないと噂話は広めることができないので、バス停が噂話を持っているような仕様の方が自然なのではないか?という話が出ていました。
Clojureのプログラムを読み解く
ひたすらClojureのサンプルコードを読み解いていきました。
話しながら処理を口頭で説明すると、理解が捗るなあと思いました。
ClojureとJavaのコード比較
使用するメモリは直感的には大分すごそうですが、新たにオブジェクトを作るのではなく操作ベースで分類したほうがバグは絶対に起こりにくそうだという話をしました。
また、Javaはオブジェクト指向プログラミングを実践するためにまずは概念ベースで整理をしているのに対して、Clojureは関数ベースでプログラミングをしていくためテストから始めているというのは大きな違いの一つになっていそうだという話もありました。(Clojureはデータを分けない前提で進められていそう)
関数型の方が面白そうな作り方をしているしバグも上手くできそうだなあという感覚があるという関数型言語への目覚め?みたいな感覚も参加者のなかで登場していました笑
ただ、相変わらず慣れの問題もあるのか読みにくさは感じるという話をしました。
全体を通した感想
次回から関数型のモデリングとオブジェクト指向のモデリングの違いが分かってくるという話をされ続けていてなかなか関数型のモデリングとオブジェクト指向のモデリングのどちらがいいのかの話はされないというのは面白いなあとボブおじさんらしくて面白なあと思いました笑