DjangoCongress JP 2021
参加し、発表しました。
感想
オフラインイベント楽しい。
疲れたのが楽しい。
会場の反応があるのが楽しい。
他の参加者との雑談が楽しい。
楽しい。
わざわざ遠くまで行くのが楽しい。
首痛い楽しい。
オナカスイタ楽しい。
WiFi制限楽しい。
朝
9:45 会場入り
名札、イベントシール、検温、消毒、緊急連絡先登録、1テーブル1名 ... アフターコロナのイベント、って感じだ!
>
>
>
>
Django 3.2 ASGI対応 - こわくない asyncio 基礎とasync viewの使い所 10:25 ~ 11:05
スライド
「初めてのオフライン参加、浮かれてます!」ww

オフラインイベント、トーク中のちょっとした冗談で、会場から「クスクス」って微かに聞こえてくるとめっちゃ安心する... なにこの安心感..
「ちょっと分かりにくいので、レストランに例えさせてください」

分かりやすい!しかしイラストや、なんでもあるなー
RLSを用いたマルチテナント実装 for Django 11:15 ~ 11:55
スライド:
> 

久しぶりのオフライン登壇で浮かれてます!(ステージから参加者のみなさんをパチリ)
>
>

しまった、自分のデモのときにDebugToolbarでSQLを見せるの忘れてた!·
「RLSを使っているとき、DjangoAdminの表示時にWHERE句にはテナントIDでの絞り込み等ないですよ」というデモをし忘れました(´・ω・`)
お昼休憩 / Lunch 11:45 ~ 13:15
サインさせていただきました~
『エキスパートPythonプログラミング 改訂2版』『自走プログラマー』『独学プログラマー』わいわい
蕎麦!
長野オリンピック セントラルスクゥエア in 長野市, 長野県
Djangoでのプロジェクトだって型ヒントを運用出来る! 13:15 ~ 13:55
スライド:
> 
「 models.QuerySet[Post]
のように特定モデルの型のQuerySetを型指定できます」

なるほどー
「ビジネスロジックがviewとmodelに変則的に散らばっていて、処理を追うのが大変」

わかる。ちょうわかる。
「親和性が悪い、と知識が不足していた当時は思ってたが、今回の発表で調べているうちに解決した」

これが発表する醍醐味のひとつだよね。人に伝えようとすると自分の知識が強化される。
ボーイスカウト・ルール「キャプキャンプ場を汚したのが自分でなくても、来たときよりもきれいにしてからその場を去る」

いいな。
Django管理サイトをカスタマイズする前に教えてほしかったこと 14:05 ~ 14:45
スライド:
> 

今日初めてのオンライン登壇!スクリーンに映し出されるZoom画面(with チャット)
一昔前なら、ライブビューイングがこんな感じだったなあ
AdminSiteを使ったカスタマイズ例
admin.site.site_header
を書き換える

へーー、これは知らなかった

DjangoAdminはほぼデフォルトで使ってたけど、改めてみると多機能だしけっこう複雑だなあ
コードが断片化しやすくテストがしづらい
lxmlとSeleniumでテスト

DjangoAdminをlxmlで検証!?っていうかPython 2.5 時代のアイコン懐かしいな!
> 
「DjangoAdminが便利なのは分かった、しかし日本語情報が少ない、なにか良い本がないものか・・・」
「『現場で使えるDjango管理サイトのつくり方』という本を書きました」
いい流れw
フォトセッション
>

未経験者のDjangoでの個人開発 15:15 ~ 15:45
スライド:
>
おまえ誰よ
haru, 17歳、N高等学校(2年)

17歳・・・!めちゃくちゃしっかりしてる

発表内容がすばらしすぎる.. TwitterのTLが賞賛の嵐
> 

質疑応答
Q. 自分を振り返ってつぎに繋いでいるのがすごいと思ったけど、普段からそういうことを意識していますか?
A. 小さい頃からスポーツをしていて、同学年と比べるんじゃなく先輩と比較して、先輩はこれくらい出来ているけど自分はこれくらいなのはなぜか?を見て変えていくことをしていたので、それがプログラミングに生きたのかと思います
Q. 本があったとして、どうゆう本があったら助かったか?本やるときにおさえてほしいか?
A. ネットでDjangoのmodelsの書き方はわかったが、クリーンアーキテクチャを実践するならどうやったらいいか。モジュール分割での命名は?など知りたかった。
Q. python-social-auth、Twitterのリダイレクトで躓いたがどうだったか?
A. Dockerを入れてて、callbackの設定がアドレス127.0.0.1でダメで...というので躓いた。にらめっこしてて気づかなかったので、エンジニアの人に聞いて解決した。実際に質問するときに情報に気づくことが多かった。
Q. Djangoを触り始めたのがつい最近なので似たような立場として興味本位での質問です。今後Djangoで学びたいことなどはありますか?
A. 設計まわりで、共同開発するときに他の人に入ってもらいやすくするにはどうするか、といったことを考えてます。時間があれば機械学習の方にも挑戦してみたいと思います。
> 
Securing Django Web Applications 15:55 ~ 16:25
by Gajendra Deshpande
スライド:
>

"Securing Django Web Applications" あとでスライドじっくり読もう... Djangoのセキュリティのまとめ、ちょう助かる

認証クラックの対策の一番目は MFA 利用かー。もうMFA避けられない時代だなあ

"Customize error messages to hide sensitive information" Djangoが出すメッセージならセンシティブなのは出さないだろう、という思い込みがあったなー

あとで、ちょっとやってみようかな。IPAのチェックシートと突き合わせて見たら面白そう
Django & Celery in production 16:35 ~ 17:05
スライド:
>
>
タスクキューの用語集
Task, Queue, Producer, Broker, Consumer

説明が丁寧
大きいタスクがworkerを占有するとキューが詰まっちゃう

あるあるー
リトライ設計、非同期処理には大事。ここまで整理したことなかったな。「リトライタイミングを指数関数的なタイミングにする、ランダムでずらす」ランダムなるほど

「リトライ設計」「ログ保存」「Celery 4.0からtask protocolがversion2に」「Flowerで監視するとTask状況が可視化される」このトーク資料、Celery使う時は要チェックだ!(あとで思い出せるようにツイートしておく作戦)
理解して使いこなすDjangoのForm機能 17:15 ~ 17:45
スライド:
>

このDjango Formのトークも、資料的価値が高い...!なんとなく知ってる情報、知らなかった情報、があるので備忘録によいな。初めて触れる人に教えるときにもよさそう。資料公開希望~
クロージング / Closing 17:55 ~ 18:15
日本システム技研さん、スポンサーありがとうございました!
ジャンケン大会
akiyokoさん提供の本
shimizukawa から提供の本
>
スタッフ写真
>
ほんと、 COVID-19 対策でスタッフは準備大変だったよね。安全に配慮した準備、ありがとうございました!