Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Django を使い続ける理由
Search
biwakonbu
July 12, 2024
Technology
0
190
Django を使い続ける理由
FastAPI が流行っているなかでなぜ Django を使い続けるのか、というテーマです。
Python の事情や WEB の事情など、実体験からの個人的な感想を交えて話をします。
biwakonbu
July 12, 2024
Tweet
Share
More Decks by biwakonbu
See All by biwakonbu
爆速なPythonフレームワーク
biwakonbu
0
190
HTMX触ってみた
biwakonbu
0
210
スタートアップの技術顧問を3年間続けて発生した事と気付き
biwakonbu
0
500
プログラミングを体系的に学べる言語 Python を推したい
biwakonbu
0
160
プログラミング言語F#を学びはじめました
biwakonbu
0
400
開発の生産性を高める事を考える
biwakonbu
0
200
「プログラミングを習得する」を考えてみた
biwakonbu
0
110
Python の型事情について
biwakonbu
0
140
ESLint使ってますか?
biwakonbu
0
150
Other Decks in Technology
See All in Technology
組織全体で実現する標準監視設計
yuobayashi
2
480
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
290
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
1
200
越境する組織づくり ─ 多様性を前提にしたチームビルディングとリードの実践知
kido_engineer
2
190
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
580
事例に見るスマートファクトリーへの道筋〜工場データをAI Readyにする実践ステップ〜
hamadakoji
1
290
スクリプトの先へ!AIエージェントと組み合わせる モバイルE2Eテスト
error96num
0
150
マルチロールEMが実践する「組織のレジリエンス」を高めるための組織構造と人材配置戦略
coconala_engineer
3
710
非情報系研究者へ送る Transformer入門
rishiyama
11
7.1k
2026-03-11 JAWS-UG 茨城 #12 改めてALBを便利に使う
masasuzu
2
350
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
150
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
290
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
400
The Limits of Empathy - UXLibs8
cassininazir
1
250
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
Everyday Curiosity
cassininazir
0
160
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
330
Building Applications with DynamoDB
mza
96
7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.8k
Claude Code のすすめ
schroneko
67
220k
Transcript
Django を使い続ける理由 株式会社coroutine 東川 諒央
自己紹介 1 Django (Python) の選定理由と功罪 3 Django で困った事 4 Django?
FastAPI じゃなく? 2 5 まとめ
自己紹介 1 株式会社 coroutine 東川 諒央 @biwakonbu 大学教員 ゲームバックエンド フリーランス
経歴 Go Python 実績言語 Ruby 技術顧問 エンジニア教育 業務 設計 プログラミング インフラ etc… Rust Haskell TypeScript 趣味言語 Lisp F#
> Django? FastAPI じゃなく?
Django? FastAPI じゃなく? 2 ❏ はい、Django です ※ 個人の感想です ❏
Django を使いたい理由 ❏ フルスタックでかつプラグインが豊富 ❏ マイグレーションが便利 ❏ admin site を標準でサポートしている ❏ 静的ファイルのデプロイもやってくれる (django command でできる) ❏ ディレクトリ構成が好き (機能毎に構成する) ❏ ドキュメントやノウハウが豊富
Django? FastAPI じゃなく? 2 ❏ じゃあ FastAPI を使わない理由は? ❏ 仕事で
SaaS 開発を立ち上げからやる事は殆どない ❏ 相談にのっても Rails 使ったりで、現場に合わせて対応するため ❏ 業務系でスクラッチでやるなら FastAPI より Django の方が利が多い ❏ そもそも Python 自体が実行速度は良くないため、 FastAPI のメリットが薄い ❏ どうしても Python じゃないとダメなチームが選択するとかかな、と
Django? FastAPI じゃなく? - フレームワーク別ベンチマーク 2 大体450req/sec
Django? FastAPI じゃなく? - 言語別速度比較 2 引用: 宇宙の晴れ上がり: プログラミング言語の実行速度比較(2023/4)
Django? FastAPI じゃなく? 2 Python やフレームワークが高速化されるのは嬉しい が、ライブラリをごちゃごちゃ入れ変えて高速化するのを Python で目指したくない 自分が
Python に求めるのは楽に開発、運用ができる事だけ
> Django 事例
Django 事例 3 ❏ ブラウザゲーム (2015~2016) ❏ DAU 2 万前後
❏ スマホネイティブゲーム (2016~2017) ❏ 開発途中で開発チームごと移籍 ❏ 社労士向けサービス PoC 開発 (2017~2018) ❏ PoC で終了 ❏ 基幹システムリプレース (2019~現在) ❏ DX チームの組成とシステムリプレース、現在運用中
Django 事例 3 ❏ 高負荷アプリについて ❏ app server のコストが高めなものの、ほぼ困るポイントは無し ❏
DB アクセスが課題になるのでフレームワークレベルの話にならない ❏ ゲームの時は RDB + Redis で 90% くらいの負荷を対策していた ❏ アクセス自体についても uvicorn で複数ワーカー立てればある程度捌ける ❏ PoC について ❏ 技術選定コストがほぼない (FastAPI も厳密にはだいたい毎回固定になるが ...) ❏ マイグレーションファイルを手書きしなくていいのが本当に楽 ❏ Template 毎に仕様を変えれるので最初泥臭く作っても影響範囲は狭くできる ❏ 素の Django で API 作ってから DRF を導入して両方動作なども可能
> Django で困った事
Django で困った事 4 ❏ 標準の Paginator が遅い ❏ 実装が何故か悪いので件数が多い一覧にページネーションを入れるなら カスタムページネータを実装して差し替える
❏ 標準のままだと一覧実装でフィルタの実装が面倒 ❏ django-filter を使うと簡単になるので入れれば解決
Django で困った事 4 ❏ 標準の機能で API を作るのはちょっと面倒が多い... ❏ Django REST
Framework (DRF) がおすすめです (Django Ninjaも良さそう) ❏ Django の問題じゃないけどパッケージ管理とかランタイム管理が面倒だった ❏ 今は rye があるのでこれ 1 本で大丈夫 ❏ Django の問題じゃないけど formatter, linter の導入が面倒 ❏ 今は ruff があるのでこれ 1 本で大丈夫 ❏ 標準機能でデバッグする時はちょっと不便 ❏ django-debug-toolbar, django-extensions を入れれば大体解決します ❏ API は django-debug-toolbar と DRF の SwaggerUI がおすすめ ❏ アプリの実動作で toolbar が使いたいなら chrome の拡張がいいかも
Django で困った事 4
まとめ 5 ❏ 速さを求めていないので困らなかった ❏ 速さを求めるなら正直 Go のとかの方がいいんじゃないかと ... ❏
そもそも Python 遅いし... ❏ 個人的には速さやパフォーマンスの為に FastAPI を使いたくなかったです ❏ 着手開始からのプロダクト生産性は Django は高い ❏ フルスタックの強みです ❏ Rails や Laravel と比較してもディレクトリ構成の筋の良さや マイグレーションの便利さで頭抜けている感じです ❏ 部分的に細かなカスタムが出来るようになっているので後から苦しまない ❏ 初期の設計に依存しにくい作りになっているので柔軟に対応できました
宣伝:大阪プログラミングコミュニティやってます エンジニアのための学習・交流を行うコミュニティスペースを作っています 勉強したい人や人と繋がりたい人に向けてサービス提供していきます