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
160
Django を使い続ける理由
FastAPI が流行っているなかでなぜ Django を使い続けるのか、というテーマです。
Python の事情や WEB の事情など、実体験からの個人的な感想を交えて話をします。
biwakonbu
July 12, 2024
Tweet
Share
More Decks by biwakonbu
See All by biwakonbu
爆速なPythonフレームワーク
biwakonbu
0
160
HTMX触ってみた
biwakonbu
0
180
スタートアップの技術顧問を3年間続けて発生した事と気付き
biwakonbu
0
390
プログラミングを体系的に学べる言語 Python を推したい
biwakonbu
0
130
プログラミング言語F#を学びはじめました
biwakonbu
0
310
開発の生産性を高める事を考える
biwakonbu
0
140
「プログラミングを習得する」を考えてみた
biwakonbu
0
80
Python の型事情について
biwakonbu
0
96
ESLint使ってますか?
biwakonbu
0
110
Other Decks in Technology
See All in Technology
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
3.4k
rubygem開発で鍛える設計力
joker1007
2
210
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
180
地図も、未来も、オープンに。 〜OSGeo.JPとFOSS4Gのご紹介〜
wata909
0
110
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
11k
"サービスチーム" での技術選定 / Making Technology Decisions for the Service Team
kaminashi
1
140
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
730
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
260
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
350
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.6k
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
4
540
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
260
Featured
See All Featured
Site-Speed That Sticks
csswizardry
10
660
The Cult of Friendly URLs
andyhume
79
6.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Embracing the Ebb and Flow
colly
86
4.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Building an army of robots
kneath
306
45k
Unsuck your backbone
ammeep
671
58k
What's in a price? How to price your products and services
michaelherold
246
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Raft: Consensus for Rubyists
vanstee
140
7k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
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 と比較してもディレクトリ構成の筋の良さや マイグレーションの便利さで頭抜けている感じです ❏ 部分的に細かなカスタムが出来るようになっているので後から苦しまない ❏ 初期の設計に依存しにくい作りになっているので柔軟に対応できました
宣伝:大阪プログラミングコミュニティやってます エンジニアのための学習・交流を行うコミュニティスペースを作っています 勉強したい人や人と繋がりたい人に向けてサービス提供していきます