SANDFISH FACTORY

技術ブログです。python・vuejsを愛でる日々について綴ります

PyCon JP 2021に参加してきました。

今年は全然、ブログ書いていないですね。
久しぶりの投稿です。
2つ前の投稿が去年のPyConJPの内容ですよ。。。

10/15(金)-10/16(土)の開催でDay1はオンサイトありのハイブリッド開催でした。(スゴイ!!)
去年からPyConJPの開催日が決まったらすぐに有給の事前申請をしているので、Day1から参加しました。

今年もプロポーザルには応募してみたのですが、採択はされませんでした。
去年は初めての発表で準備にドキドキして半分、心ここに有らずだったので、今年は落ち着いて各発表を見ることができました。

基調講演

谷合 廣紀氏

プロ棋士で研究者でエンジニアってすごいなーって感想しか出てこないです。
行動の速さや深さが違うなーって思いました。
将棋のデータや周辺ライブラリって結構揃っているんだなって思いました。
ITの恩恵を受けた将棋って違った面白さが出てきそうって思いました。(去年の基調講演でも思いましたが)

alu.jp

Mr. Brandt Bucher

structural pattern matching のお話でした。 実際に取り込まれるまでの歴史の話や、設計・実装の話でとても面白かったです。
チュートリアルで1つのPEPがあるのは知りませんでした。

きちんとこの辺りの仕様を把握したいなと思わせるトークでした。
あと、毎回翻訳が最高だなって思います。

Day1

ASGIアプリケーション入門 - こわくないasyncio基礎と非同期IO - FastAPIを例に

speakerdeck.com

ASGIアプリケーションの話です。DjangoCongressでも聞いていたんですが、FastAPI部分を聞きたかったので参加しました。
前半部分はasyncioの入門としてはわかりやすくまとまっているので、とても良いです。
asyncioを対応しているライブラリを利用しないと恩恵を受けづらいのは、私が完全に失念していたんですが、説明があってよかったです。

Pythonで始めるドキュメント・インテリジェンス入門

speakerdeck.com

ドキュメント・インテリジェンスという言葉は知らなかったので、興味本位で聞いてみました。
3年くらい前にDeepLearning関連に甘噛みしていて、今は離れてしまったのですが、完全に浦島太郎状態でした。
色んなサービスやライブラリが提供されていて、へぇーとか、すごいなという感嘆の気持ちしか出てきませんでした。

alu.jp

Python x DDD!! - Python で学ぶ実践的なドメイン駆動設計とレイヤード・アーキテクチャ

speakerdeck.com

私見ですが、DDDって正解はないと思っていて、概念を元にそれをどう実装に落としたかってそれぞれの経験や考え方次第だと思っています。
その辺りの説明が発表の中で含まれていて、とても学びが多かったです。

こういった設計思想の概念を注入して実装に落とすときに、名前の付け方やクラスの切り方、モジュールの切り方は毎回悩むので、質問してみました。
pythonで行った場合、こう考えているよって答えてもらえて有難かったです。

あと、完全に横道にそれた話なんですが、そういえば自分はDtoってクラス名につけないなって個人的な気づきがありました。ViewModelにはつけるのにEntity、VO、Dtoにはつけないなと。どこかで言語化してみたいなって思いました。

Day2

Pythonによるアクセスログ解析入門

speakerdeck.com

アクセスログ解析って重要ですよね。
pythonでどうやっているかも気になったけど、事例としての説明があって面白かったです。
あと、アクセスログ解析を活かすためにはきちんと基盤を整備しないとねって思いました。

High Performance FastAPI

speakerdeck.com

今回の発表で一番楽しみにしていたトークです。

パフォーマンスチューニングについて想定した原因とそれに対する対応という感じで説明がなされてとても良いトークでした。
パフォーマンスチューニングの心得は考え方の共有って意味でも自チームにも共有したいなって思いました。(pythonじゃないけど)

これまでの経験でもI/O boundやCPU boundでキャッシュすれば良いよねってやつは対応したことあるけど、Cythonを使ったケースや処理系を変える対応はしたことがなかったので、事例と解決策をみれたのはよかったです。
自身のエンジニア力の弱さが露呈したので、日々精進だなーって思いました。

alu.jp

実装で知るasyncio -イベントループの正体とは

docs.google.com

スライドの言葉を引用。

もし難しく感じたらラッキー。それこそが PyCon JP に参加する価値です

難しかったので、ラッキーでしたし、とても学びが多いトークでした。(理解できたとは言っていない)

濃密な情報が整理されているので、きちんと理解できるように何度もスライドを見直して理解したいなって思いました。 コルーチンやタスクなどは浅い理解はしていましたが、実際にどのように動いているのかの説明があって、理解はできなかったですが、きちんと理解したいという気持ちが湧きました。

PEPやコードを読めって感じかもですが、この濃密な情報を整理するのにどういう風にしたのかは知りたいなって思いました。

参加してみて

私は仕事でpythonを使っていないので、2日間を通して学びの多いカンファレンスでした。
タイムテーブルを俯瞰してどの発表を見ようかな?考えた時に目が引かれたのは以下の3つでした。

  • FastAPI(個人的に使っているよなー)
  • asyncio(きちんと内容を理解してないよなー)
  • DDD(pythonに適用した場合ってどうなんだろう?)

特に非同期処理やDDDは他の言語で関わったことがありましたが、pythonだとどうなんだろう?って思った中で、知見が共有されたのはとてもよかったです。
(非同期処理は下の図がきちんと理解できるように頑張ります )

https://raw.githubusercontent.com/rhoboro/events/main/pycon.jp.20211016/asyncio_flow.png

最後に

スタッフの皆さんお疲れ様でした。
オンサイトの開催もありつつ、オンラインも同時開催でとても大変だったと思いますが、概ね順調に開催されたと思います。
振り返ると課題もあったとは思いますが、次回の開催(TBDでしたが)に繋がったらより良いカンファレンスになるかと思います。

個人的に今回のカンファレンスで一番Goodだなって思ったのはグッズがsuzuriで注文できたことでした。
suzuriで注文できるアナウンスがあったときにめっちゃええやん!って思いました。
好きなものを好きだけ注文できるのは良いですね。

あと、パーティフードでピザが届くのは良いですね。
ピザハットの1人前ピザセットはとても美味しかったです。

おまけ

この動画はゴイゴイスーでした。

www.youtube.com