天の月

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

yr-learning Vol36に参加してきた

yr-camp.connpass.com

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

defmulti

関数型プログラミングのなかでポリモーフィズムを実現するための修飾子が用意されているのは面白いという話をしていきました。

その後具体的な実装としてdefmultiを見ていき、get-pay-classの値(id)によってどのように振る舞いを変化させるのかを指定することができることを確認していきました。

P110のコードを読み解く

defmultiの具体的な実装方法や無名関数(#, %)の具体的な使い方などを調べながら、P110のコードが何を指し示しているのかをコードリーディングしてきました。

関数型プログラミングオブジェクト指向

データと処理をまとめたいのかデータと処理を分離したいのかという話が違ってくるものの基本的にはポリモーフィズムというレベルでのオブジェクト指向関数型プログラミングの中でも取り入れることができているという話をしていきました。

Factoryパターンの話などはその良い例だという意見も出ていました。

デザインパターン

デザインパターンの中でも上記で話題に出たFactoryパターンなどは、関数型言語でも有用なものであり、関数型言語でプログラムを書いていてもぶち当たる問題に対してのソリューションなので、こういうデザインパターンは本質的な問題を扱っているデザインパターンだと言えるのかもしれないという話をしていきました。*1

ファイル分割のやり方

関数型プログラミングのファイル分割の仕方とオブジェクト指向言語でのファイル分割の仕方を比べ、どちらのほうが変更に強そうなのか?という話をしていきました。

どちらもさすがにきれいに分けられていて、現時点だとなかなか評価が難しそうだという結論になりました。

全体を通した感想

なんか徐々に関数型プログラミング言語(Clojure)が読めるようになってきているぞ??という声が出ていたのが面白かったですw

*1:先日、アーキテクチャの普遍的な問題やテストケースに関しては言語に依存しないという話が出ていたのでそことも繋がる