DjangoCongress JP 2018に参加しました。日本では初のDjangoカンファレンスということで、普段Djangoを使っている私としてはぜひ参加したいと思って楽しみにしていました。

2018/05/22: タイトルに年度が入っていなかったので追記しました。

参加したトークの概要と感想は以下に書いていきます。

参加したトークの概要と感想

できる!Djangoでテスト!

  • スピーカー: tell-kさん
  • 資料

Djangoでテストコードを書く上で最低限抑えておくべき知識について解説していただきました。 資料にリンクされているThe Pylons Project Documentationの単体テストガイドラインは初めて読みましたが、Djangoに限らずPythonでテストコードを書く上で有用な情報が書かれているので、Pythonisaなら一度は目を通しておいたほうがいいのではないでしょうか。 「こういう書き方はしてはいけない」という解説のほとんどが自分自身でやったことがある(または現在進行形でやっている)もので、内心冷や汗が出ましたね。😓

Parameterized Testは知りませんでした。現職ではDjangoを使っているので、どこかで使えそうだなと思いました。

GeoDjangoではじめる地理空間情報

  • スピーカー: 小俣 博司さん
  • 資料

GeoDjangoで地理空間情報を扱う方法についてのお話でした。 「そもそも地理空間情報とは何か?」という基本部分の解説から、実際にDjangoプロジェクトでGeoDjangoを使えるようにするには何をする必要があるのかまで解説していただきました。 Web上で地図を扱うならGoogle マップが有名ですが、自分で実装する場合もデータベースはPostGIS、C/C++ライブラリならGEOS・GDAL・PROJ4、JavaScriptならOpenLayers・Leaflet.jsなど、OSSの選択肢が色々あるようで、GeoDjangoでもそういったOSSを組み込んでいるようです。

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

  • スピーカー: Hayao Suzukiさん
  • 資料

Suzukiさん自身が携わったプロジェクト 1 の改善ポイントについて解説していただきました。 サポート切れのDjango・Python2系・手動デプロイなど長年溜まっていた問題を解決するため、The Twelve-Factor Appに従って改善していく方針で進めていったそうです。 魔法のように劇的に解決する方法はないので、テストを書いて不動点を作ってから地道に一つずつ取り組んでいったそうです。 環境変数周りの話は、The Twelve-Factor Appに従うと必ず起こる問題なので、非常に気持ちがよく分かる話でした。

Building your MVP with Django: Lessons Learned Building and Launching a SaaS

  • スピーカー: James Van Dyneさん
  • 資料

これは英語のトークで、英語は自信がなかったのですが、内容に興味があったので参加しました。 DjangoでMVP(Minimum Viable Product)なアプリケーションを作る場合に避けたほうがいい設計と代替案についての解説でした。 Class Based Viewを使うのを避けて関数ベースビューを使うという話があって、サンプルコードとして関数ベースビューの中にネストしてget関数とかpost関数を作ってresolve_http_methodでリクエストメソッドによって呼び出す関数を切り返るという方法を紹介していたのが印象的でした。

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

  • スピーカー: Masashi Shibataさん
  • 資料

認証周りをカスタマイズする際の嵌りポイントやpython-social-authを使ったOAuth認証の実装方法について解説していただきました。 Djangoの公式ドキュメントでもこの辺はあまり詳しく解説してくれていないので、こういう話は嬉しいですね。 python-social-authは高機能ですがコードも非常に複雑なので、以下のようにpython-social-authを使わず実装してもよいとのことでした。 https://github.com/c-bata/django-auth-example/pull/4

Django REST framework 実践入門

  • スピーカー: Masataka Araiさん
  • 資料

DRF(Django Rest Framework)についてのお話でした。 DRFはDjangoの機能拡張というレベルを超えた、独立したフレームワークという感じがしますが、何となく使っているという人は多いのではないでしょうか。 「Serializer」・「Renderer / Parser」・「Router」・「documentation」などのDRFが用意している基本的な機能の解説や、実際に使ってみて辛い点と解決策について解説していただきました。 普段DRFを使っていて、DRF作ったAPIを呼んだ時にdjango-debug-toolbarのプロファイル結果が見えなくてどうすればいいのか悩んでいたのですが、django-silkというのがあるのですね。 他にも色々便利なサードパーティライブラリを紹介していただきましたが、無闇にサードパーティの利用することでDjangoやDRF自体のアップデートがやりにくくなってしまう弊害もあるので、慎重に検討したほうがいいとのことでした。

全体を振り返って

Djangoは普段仕事で使っていて、自分にとって一番身近なフレームワークだったので、非常に得るものは大きかったなと思いました。 早速現場で活かしてみたいと思った話も幾つかありました。 DjangoCongress JPはまだ日本で生まれたばかりのカンファレンスですが、これから回を重ねて成長していってほしいですね。


  1. を基にしたフィクションとのことです。 ↩︎