DjangoCongressJP 2018へ参加した

参加者を迎える動物たち。発表には終始背を向けていた。

非常に良いイベントでした。というか楽しかった。都合により午後からの参加となってしまったのが悔やまれる。。

チェアマンのhirokikyさんも仰っていたが、PyConだと採択されない(されづらい)プロポーザルを発表できる場が欲しかった、という思いに沿ったイベントだったように感じました。

PyConJPは去年参加しましたが、Web系/機械学習・データ解析系で発表内容がはっきり分かれるような印象があった。機械学習・データ解析が盛り上がってきた昨今、PyConJPでDjango middleware/WSGI middleware(https://speakerdeck.com/thinkami/django-congress-jp-2018-talk)やDjangoのマイグレーションの挙動や、やらかした話(https://speakerdeck.com/denzow/imasarazhen-rifan-ru-django-migration)が採択されるかというと(ディープすぎて)微妙な話で、その辺はDjangoConならではなのかなと。

「需要は確かにあるけど、PyConだとニッチだしディープすぎる」。そういった需要を拾い上げるような良いイベントだったと感じました。改めてスタッフの皆様に感謝です。


以下各セッションの感想

Password Hashing

Yuri Umezaki

ハッシュアルゴリズムについて知識が浅く、Djangoでのハッシュ関数など普段意識したこともなかったため興味があり参加しました。

  • Djangoでの標準はPBKDF2
  • 昨今のハードウェアの発達を考慮すると、サードパーティ + Argon2が良さそう(メモリ使用量を指定できる)
  • hashcatを使ったのハッシュ→パスワード解析のデモ

が印象に残っています。

パスワードの流出事例、ハッシュ関数の基礎的な知識からDjangoで扱えるハッシュ関数の種類など、流れに沿って発表されていてとてもわかり易かったです。

Djangoの認証処理実装パターン

Masashi Shibata

認証はDjango標準、もしくはemail/passwordへのカスタマイズ程度しか触ったことがなかったので、参加しました。詳細は上記ブログにまとまっています。

ユーザモデルの拡張方法や、変更後のMigrationが面倒なことなど、「これでいいのだろうか?」と悩んでいた部分について知見を得られました。

おそらく私と同年代の方なのですが、発表の内容や精細さにただただ感嘆するばかりでした。そういった意味では一番の刺激となったかもしれません。

Django REST framework 実践入門

Masataka Arai

DjangoでREST APIを作るときの定番DRfについての発表でした。

  • is_valid()したあとじゃないとsaveできない
  • serializerはネストしたデータ(例えば外部キーも一緒にcreateするようなデータ)は保存できない
  • routerはネストしたエンドポイントには対応していない

などはやはりあるあるなんだなと感じました。

入出力ごとにSerializerを分ける(分けざるを得ないことが多々ある。。)という問題に対し、Command-Query分離の原則 というものがあることを知りました。状態を変更するもの/しないもので分けたほう責務が明示的になり望ましいとのこと。この辺はもう少し深く掘り下げて調べたい。

それぞれの課題に対してサードパーティのライブラリを用いて解決策を示していくのが印象的でした。 django-silk などは既存PJに対しすぐにでも使えそうですし。drf-nested-router drf-writable-nested はDRf導入時に、一緒に導入検討したほうがいいかもと思いました。


スタッフ、発表者、参加者の皆様、お疲れ様でした、ありがとうございました!また参加したいし、次はプロポーザル書いてみようという気持ちになりました。とりあえずPyConJPのプロポーザルに向けて頑張ってみます!