DjangoCongress JP に行ってきた

https://djangocongress.jp

全体の感想

Day1のみ参加。 前々日ぐらいまではオープニングから行けそうかなと思ったけど、結局は午後イチの遅刻でした。

Djangoに関する実践内容系の発表あり、知的好奇心を満たす系の発表ありと、 知識が程よく広がる楽しいイベントでした。

Python系のイベント内で比較すると、チケットがかなり安い代わりに、 タイムテーブルのコンパクトさと食事系のカットという違いがありますが、 これはこれで全然問題なかったです。

来年もやる計画は立っているそうなので、是非参加したいかなと思います。

各プログラムの感想

レガシーDjangoアプリケーションの現代化

https://speakerdeck.com/hayaosuzuki/a-modernization-of-legacy-django-based-applications

Hayao Suzukiさんが社内で実施したレガシーDjangoアプリを12 factor app対応するまでの話。

当然ではあるけれど、結局のところ魔法のように一撃でアップデートをするのはさすがに不可能。 それでも、丁寧に勧めていく道筋自体はちゃんと定められているので、まずは粛々と進めていかないといけない。 特に破壊的更新が含まれているときはどうしても辛いのは、どんなフレームワークでも同じなんだなと言う感想。

12factor-appに従うと、設定をコードから環境変数に切り離す必要が出てくる。 これがやっぱり地獄らしく、たしかに本番・開発・CIで変わっていくし、項目増えれば全部増やさないとダメだしで、 地獄感が強い。 それでも、うまく解決して12FAにのっかれる恩恵は確かにあるので、自分も作るときに意識したほうが良いのだろう。

Password Hashing

https://speakerdeck.com/bungoume/password-hashing-djangocongress-20180519

@bungoume さんのDjangoにおけるパスワードハッシュについての発表。

普段は「素のままでも良いや」で考えたことが殆どなかったパスワードのハッシュ関数について、 処理速度やコストをなどを交えて話していたのだけれど、かなり種類があることを今回初めて知った気がする。 settings.py でも、 PASSWORD_HASHERS なんて編集することなんで今までなかったし。

普段PHPも見るため、そっちでは確かにbcryptのほうが馴染みがあるのだけれど、 PBKDF2と処理速度で3倍ぐらい違うというのはかなり驚いた。(bcryptのほうが遅い) これだと、中規模だと確かにパフォーマンスに影響出そう。

逆にArgon2の圧倒的な速度は印象的なのだけれど、 サードパーティライブラリがどれぐらいインストールしやすいかで運用が変わりそうかなと思った。 この辺はDockerfileでうまいこと解決できるかな?

いまさら振り返るDjango Migration(Migrationの内部動作からやっちゃった事例まで)

https://speakerdeck.com/denzow/imasarazhen-rifan-ru-django-migration

@denzow さんの、Migrationの内部動作についての発表。

今まで、 SQLite3を使っていると makemigrations コマンド実行時点で db.sqlite3 が生成されるので、 絶対にDBファイルを作ってその実態と比較してマイグレーションファイルを作ってると思ってた。 実際にはマイグレーションファイル全体と現在のモデルを比較しているらしい。

この辺りの実装は他のフレームワークだとどうなっているかを比較するとなかなか楽しいかもしれない。

RunPython できることが、最大の学び。 パッチ的にスキーママイグレーションでは解決できないことは確かにあるので、 ぜひ使ってみたい。

個人的には、やっちゃった事例をもう1個ぐらい聞いてみたかった?かなと。

Django REST framework 実践入門

https://slideship.com/users/@massa142/presentations/2018/05/RjVo67zy1JyQiYqe3GgpLB/

@massa142 さんの、文字通りDRFを実践的に使うための各機能の解説+α

なお、自分は「雰囲気でDRFを使っている組」です。

Serializer, ViewSet, Router 辺りの説明は脳の中に落とし込むのに程よい実例だった気がする。

Djangoもサードパーティのアプリケーションやライブラリは結構あるが、 DRF自体にもやっぱりみんなが困りそうな部分についてはライブラリがあることが多い模様。 この辺りは、用法用量には気をつけつつ、「困ったら解決するライブラリを探す」は意識ししておきたいなと感じた。

補足:Perfumeファンなのがよく伝わるスライドでした