天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

yr-learning Vol35に参加してきた

yr-camp.connpass.com

今週もこちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

今日は関数型デザインの第8章を読んでいきました。

循環依存

説明用のコードだからというのはありそうですが、循環参照が出てきて驚いたという話がありました。

処理がそこまで複雑ではなくマルチスレッドのことも考慮していない現状だからこそできるソリューションで、問題がまったくないとは考えていなかったんじゃないか?という話をしました。

ただ、Clean Architectureをみる限りはADPの文脈で循環依存は絶対だめだと記載しているので、パッケージレベルではないとはいえしれっと循環依存をしているのはだめじゃないか?という話をしました。

噂話は誰が持つべきか?

現実世界をイメージすると、噂話を持っているのは人なのでドライバーが噂話を持っている方が良いのではないか?という話が出たのですが、今回の仕様的にバス停ではないと噂話は広めることができないので、バス停が噂話を持っているような仕様の方が自然なのではないか?という話が出ていました。

Clojureのプログラムを読み解く

ひたすらClojureのサンプルコードを読み解いていきました。

話しながら処理を口頭で説明すると、理解が捗るなあと思いました。

ClojureJavaのコード比較

使用するメモリは直感的には大分すごそうですが、新たにオブジェクトを作るのではなく操作ベースで分類したほうがバグは絶対に起こりにくそうだという話をしました。

また、Javaオブジェクト指向プログラミングを実践するためにまずは概念ベースで整理をしているのに対して、Clojureは関数ベースでプログラミングをしていくためテストから始めているというのは大きな違いの一つになっていそうだという話もありました。(Clojureはデータを分けない前提で進められていそう)

関数型の方が面白そうな作り方をしているしバグも上手くできそうだなあという感覚があるという関数型言語への目覚め?みたいな感覚も参加者のなかで登場していました笑

ただ、相変わらず慣れの問題もあるのか読みにくさは感じるという話をしました。

全体を通した感想

次回から関数型のモデリングオブジェクト指向モデリングの違いが分かってくるという話をされ続けていてなかなか関数型のモデリングオブジェクト指向モデリングのどちらがいいのかの話はされないというのは面白いなあとボブおじさんらしくて面白なあと思いました笑