ごまだれ日記

プログラミングの技術メモとか

JJUG CCC 2021 Spring参加メモ

JJUG CCC 2021 Springに(ほんのちょっとだけ)参加したので雑多なメモを。

ccc2021spring.java-users.jp

まあ時間がなかったので1セッションしか聴いてないんですけどね。
聴いたのはこちらのセッションでした。
fortee.jp

動画が上がるっぽいので簡単な感想だけ。本旨とはあまり関係ない話なんですけども。
例外(的な状況)をtry-catchを使わずにハンドリングするためにSuccess型やFailure型みたいなのを定義し、inscanceofで検査するみたいなプラクティスを紹介する箇所がありました。
そこで「inscanceofは使ったら負けという価値観の人もいるが、それはオブジェクト指向プログラミングの考え方で、関数型プログラミングの考え方では別に問題ない」という主旨の補足的な説明がありました。(言葉通りではなく主旨)
そこで少しハッとさせられました。私も「instanceofは使ったら負けおじさん」でしたが、それはあくまでもオブジェクト指向プログラミングの主旨にそぐわないというだけで、本質的に問題があるわけではないんだなって。
こういうのは「オブジェクト指向プログラミングとしては正しくない」とかじゃなくて、じゃあ実際に何が問題なんだ?ってところまで突き詰めて考える必要があるのかなと思いました。
最近はオブジェクト指向プログラミングに否定的な言説もちらほら見受けられるようになってきたので、特にそう思います。オブジェクト指向プログラミングというと金科玉条のように語られがちですけど実際にはそんなことはなくて、「オブジェクト指向プログラミングとしては正しくないけど実際には別に問題はないコード」とかも普通にあって、今回その一例を見たような思いでした。
(まあ、このプラクティスも別に最善のやり方として紹介されてたわけではなかったですけど)

とはいえ、そういうことを自分の平凡な頭だけで考えるのは現実的ではないので、オブジェクト指向プログラミングなどの特定の考え方にまずは依拠しつつも、関数型プログラミングなどの別の考え方も別途学んで、それを取り入れていくというのが現実的なんですかねぇ。
まあJavaにも関数型プログラミング的な機能がどんどん取り入れられているわけなので、そんなの今さらな話だろうと言われればぐうの音も出ないのですけれども。
何にせよ、勉強することと手を動かすことは止めてはいけないですね。