Blog::kobaken

prove t/foo/bar/baz.t

WEB+DB Press Vol.126で「ISUCONの実装から最近のPerlを学ぶ」という題の記事を寄稿しました

f:id:kfly8:20211214082705p:plain

12月24日に販売されるWEB+DB Pressに寄稿しました。21周年おめでとうございます! タイトルが「ISUCONの実装から最近のPerlを学ぶ」で、副題は「わかりやすく変更しやすいコードを実現する考え方と方法」です。 直球ですが、読んだ感想をもらえると嬉しいです!買ってください!!!

ここでは、記事の紹介や紙面都合入りきらなかったことなど補足を書きます。

記事の紹介

記事の内容は、ISUCON11のPerl実装を題材に「今までのPerlはこう書くけど、最近のPerlならこう書ける!」とやや挑戦的?な内容になっていて、正直反応が怖い内容です。

きっかけは、タイトル通り、ISUCON11のPerl実装です。id:papix から声をかけられたとき、仕事もプライベートもかなり忙しい時期で、数年前の初執筆が難産だったこともあり、きちんと書けるか不安でした。ですが、ISUCONの予選が終わった後、ポジティブな感想をもらえたことが素直に嬉しく、せっかく頂いた機会なので書いてみました。つまり、調子に乗って書いた形です。やっててよかったTwitter。予想通り、予想以上の苦労をして、形にすることができました。

具体的な内容ですが、組み込みのtry/catchやisa構文などのPerlの新機能の話を書いています。単に機能紹介だけではなく、わざわざPerlに新しい機能を入れるのは、なぜなのか、何を解決したいのか、問題が明確になるように書きました。

そもそも、これらのPerlの進化はわかりやすさの観点で良いと思っていますが、「わかりやすさとは何か」「わかりやすさをどう実現するか」といった話を、Perlとは一切関係なく、認知心理学の言葉を使って、2ページほどで整理しました。例えば、人間の視覚は、見ているようで見ていない特性があるので、そんな状況で注目を集めるためにゲシュタルトの法則を紹介したりしました。

蛇足ですが「人間の視覚は、見ているようで見ていない」という話を次の動画2分弱で実感できます。お時間が許せば、よかったら見てみてください。知らない人は面白い体験ができます!

www.youtube.com

認知心理学なぞ持ち出した背景を最後に補足すると、普段、私が人材開発・組織開発の仕事をして、プロダクトマネジメントをしていたことが影響しています。どちらも人に関わる仕事で、人を理解することが、仕事の良し悪しに関わると思っています。偉そうに書いていますが、人に関わることで失敗はたくさんしていますし、謝る機会があれば謝って歩き回りたいし、ミーティング、面談、面接が続けば、家でプログラミングして心を整えたいわって人間です。ただ、一方、人や組織の個性がシステム、コードの個性となって現れるのもよくある事実で、人や組織の特性について学んで損はないかなと思っています。

上で紹介した視覚特性の話は、私の場合、データ視覚化と繋げて考える場面が多いです。データ視覚化で基本的な問いのひとつは「引き出したい行動を引き出す視覚化は何か?」で、例えば、信号機、スマホの電池残量などシンプルなデザインでいて、止まれ、充電などの行動引き出し、見本の視覚化だと感じます。

プログラミングの文脈に引き寄せれば「引き出したい行動を引き出すコードは何か?」という問いが、今回寄稿した記事の根っこにあります。

紙面都合、入れられなかった内容

記事タイトルを読んで、ISUCONのPerlに関する話を期待して読んでくださる方には申し訳無いですが、「わかりやすさとは何か」うんぬんかんぬんの説明に前置き2ページも使ってしまったので、Perlに関する話は4ページほどになってしまいました。ここでは、もう少し書いてみたかったPerlの話を簡単に書きます。

perl5.34より先の話

この記事が、いい感じにまとまっています。早速丸投げですいません。レビューで関わったのですが、id:mp0liiu は流石だなーと見ていました。

個人的に推したいのは、Corinna/Object::Padです。Perlには多様なクラスビルダーがありますが、現代的なOOPをコアにビルトインする野心的なプロジェクトです。保守性を上げ、学びの閾値を下げる解決策として良いと思うと同時に、野心的なプロジェクトは、衝突がおきがちなので、少しでも応援したいという感情的な理由です。

JSON文字列の検証

別の記事書きました。

kfly8.hatenablog.com

最後に

今回の記事が、わかりやすさ、変更のしやすさを、ちょっといつもと違った視点で考えるきっかけになれば嬉しいです! 繰り返しの宣伝で、贅沢を言うようですが、内容的に反応も怖い記事ではありますが、そういった反応含めて感想いただけたら幸いです。 よろしくお願いします!!