天の月

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

オブジェクト指向のこころを読む会 Vol31に参加してきた

yr-camp.connpass.com

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

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

range

実行するまで処理をしないことが遅延であり、遅延を活用することで無限の長さのリストを操作できたり、何をする必要があるのかとどのように実行するかの関心を分離させるメリットがあるという理解を確認していきました。

遅延評価と遅延は違うのか?

大学の教科書などを見るとあまり区別されていないような気がしてしまうものの、必要な時まで評価しないことと必要な時まで計算しないことの違いがあるのではないか?という話をしていきました。

ポリモーフィズムの文脈で、遅延結合という用語もあるので、概念的には同じものを指しているけれど、実行する対象が微妙に異なるのではないか?という結論に落ち着きました。

Clean Architectureと本書の関係

そういえばきょんさんが前にこんなTweetをしていたなあという話をしました。

本書を読むと、確かにClojureでないと実現のコストが高い印象もあり、Clean Architectureを読んで静的型付け言語で実装をしようとすると混乱しそうだという話をしていきました。

Clean Architectureってこういうことでしょ?という理解が本書を読んでいくとどんどん自信がなくなってくるという話をしました笑

本書の学び

現場でコードを書く時に今のところどれくらい役立っているんだろうか?まだ行動変容レベルには至っていない?という話をしました。

ただ、ステートレスやイミュータブルといった当たり前のようにいいと言われてきたものに関して、関数型プログラミングを知ったことが理解をより深めるきっかけになって、実際に副作用のないプログラムとはこういうことなのか!というのがわかるようになってきているのが良いという話をしていきました。

とはいえまだ感覚としてもばくっとしていて、知的好奇心で読んでいる域を脱せていないので、このあとの章が楽しみだということになりました。

また、学びを昇華させていくにあたって、以下のNaoyaさんの資料は読んでおくと良さそうだという話をしました。

speakerdeck.com

speakerdeck.com

全体を通した感想

章の内容半分、これまで本を読んできて思っていること半分みたいな感じで議論ができて、非常に楽しかったです。

本書を読んだ後に改めてClean Architectureを読んでみたいと思いました。