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の特徴とRevCommにおける選定理由
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
RevComm_inc
July 05, 2023
Programming
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Djangoの特徴とRevCommにおける選定理由
RevComm_inc
July 05, 2023
More Decks by RevComm_inc
See All by RevComm_inc
フロントエンドの状態管理とMiiTelにおける事例の紹介
revcomm_inc
3
900
“駆け出しPlatformチーム"の立ち上がりとこれから
revcomm_inc
1
270
Company Deck -English-
revcomm_inc
4
510
2024-02-07 ソフトウェアエンジニアリングの枠を超えて:テックブログ運営で見つけた自分の役割(DevRel/Tokyo #89 〜テックブログ運営〜)
revcomm_inc
0
140
エンジニア不足の中で どう技術的負債と向き合ったのか RevComm Research の場合 -
revcomm_inc
6
9.7k
Feature Flagについて本気出して考えて実践してみた
revcomm_inc
9
9.1k
快適なテスト体験を実現する、Djangoのテスト思想と工夫
revcomm_inc
0
2.1k
会社紹介資料/Company Deck
revcomm_inc
4
120k
エンジニア向け_会社説明資料/Company Deck for Engineers
revcomm_inc
2
98k
Other Decks in Programming
See All in Programming
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
360
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
280
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
180
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
1
240
OSもどきOS
arkw
0
590
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
300
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
300
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
7.8k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
390
AI 輔助遺留系統現代化的經驗分享
jame2408
1
980
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
370
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
A Tale of Four Properties
chriscoyier
163
24k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
300
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
It's Worth the Effort
3n
188
29k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Transcript
Copyright © RevComm Inc. Djangoの特徴と RevCommにおける選定理由 2023.07.05 Shota Kokado
Copyright © RevComm Inc. 1.自己紹介 2 小門 照太 (Shota Kokado)
Backend Team, @長野県 • 2022/1~ :RevComm • 2018~2021 :バックエンド開発 • 2013~2018 :インフラエンジニア 得意 • AWS, Python, Infrastructure • DevOps • ペットx3 • アウトドア(山) コザクラインコ セキセイインコ ねこ
Copyright © RevComm Inc. contents 1. RevCommにおけるバックエンド開発とDjango 2. Djangoの特徴 a.
セキュリティ b. ORM、マイグレーション管理 c. エコシステム d. チーム開発のしやすさ
Copyright © RevComm Inc. contents 1. RevCommにおけるバックエンド開発とDjango 2. Djangoの特徴 a.
セキュリティ b. ORM、マイグレーション管理 c. エコシステム d. チーム開発のしやすさ
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 5 「MiiTel」…音声解析AIを搭載したIP電話(SaaS) 技術スタック(大区分) • IP電話(PBX/VoIP)
• AI ◦ 音声解析 ◦ 自然言語処理 • Webアプリケーション
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 6 「MiiTel」…音声解析AIを搭載したIP電話(SaaS) 技術スタック(大区分) • IP電話(PBX/VoIP)
• AI ◦ 音声解析 ◦ 自然言語処理 • Webアプリケーション
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 7 アーキテクチャ概要 引用元: MiiTelの技術スタックとアーキテクチャ変遷を紹介します( 2023年5月版)
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 8 アーキテクチャ概要 Webアプリケーションのバックエンド(一部) においてDjangoを利用 引用元:
MiiTelの技術スタックとアーキテクチャ変遷を紹介します( 2023年5月版)
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 9 アーキテクチャ概要 バックエンドアプリケーションはコンテナ化して Amazon ECS
で実行 引用元: MiiTelの技術スタックとアーキテクチャ変遷を紹介します( 2023年5月版)
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 10 • サービス概要 ◦ 400~500req/s
(ピーク時間帯) ◦ ECSタスク数: 約100 ◦ 日本、アメリカ、インドネシアに提供
Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 11 • サービス概要 ◦ 400~500req/s
(ピーク時間帯) ◦ ECSタスク数: 約100 ◦ 日本、アメリカ、インドネシアに提供 • プロジェクト概要 ◦ Django 導入時期: 2019年頃 ※プロジェクト開始時期: 2017年 ◦ コントリビューター数: 約20名 ▪ ※累計: 約60名 ◦ Django アプリケーション数: 約40 ◦ 使用バージョン ▪ Python 3.10/Django 3.2 ▪ Python 3.11/Django 4.2
Copyright © RevComm Inc. contents 1. RevCommにおけるバックエンド開発とDjango 2. Djangoの特徴 a.
セキュリティ b. ORM、マイグレーション管理 c. エコシステム d. チーム開発のしやすさ
Copyright © RevComm Inc. Djangoの特徴 13 セキュリティ 様々なアプリケーション脆弱性に関する対策が標準でサポートされる • XSS
• CSRF • SQLインジェクション etc Security in Django | Django documentation | Django
Copyright © RevComm Inc. Djangoの特徴 14 • 例: XSS Django
標準の HTML テンプレートエンジンにより、特殊文字がエスケープされる。
Copyright © RevComm Inc. Djangoの特徴 15 • 例: XSS Django
標準の HTML テンプレートエンジンにより、特殊文字がエスケープされる。
Copyright © RevComm Inc. Djangoの特徴 16 ORM、マイグレーション管理 • Model クラスと統合されたORM
models.py クエリ実行例
Copyright © RevComm Inc. Djangoの特徴 17 ORM、マイグレーション管理 • データベースとの接続は利用者に対して隠ぺいされているため、処理を簡潔に記述できる ◦
=> 開発/デバッグ容易性が向上 SQLAlchemy ORM の例
Copyright © RevComm Inc. Djangoの特徴 18 ORM、マイグレーション管理 • データベース接続時のオプションカスタマイズも可能 settings.py
Copyright © RevComm Inc. Djangoの特徴 19 ORM、マイグレーション管理 • マイグレーション管理(= DBテーブルの管理)機能も搭載
Copyright © RevComm Inc. Djangoの特徴 20 エコシステムの充実 様々な用途のサードパーティライブラリが開発されている 設定ファイルに追加することでプラグインのように使用できる settings.py
Copyright © RevComm Inc. Djangoの特徴 21 エコシステムの充実 様々な用途のサードパーティライブラリが開発されている RevCommで導入しているサードパーティの一例 •
Django REST framework (DRF) ◦ REST APIの実装に利用 ◦ 大半の API を DRF で実装 ▪ e.g. Serializer によりデータのバリデーションを移譲 • django-countries ◦ 国際化 (i18n) 対応 ◦ CountryField を使用 • django-debug-toolbar ◦ パフォーマンス計測など、開発/デバッグ用途に有用なツール See also: Awesome Python、Awesome Django
Copyright © RevComm Inc. Djangoの特徴 22 チーム開発のしやすさ プロジェクトテンプレート機能 アプリケーションの初期化をサポートする機能が標準装備されている •
django-admin startproject • django-admin startapp
Copyright © RevComm Inc. Djangoの特徴 23 チーム開発のしやすさ プロジェクトテンプレート機能 アプリケーションの初期化をサポートする機能が標準装備されている •
django-admin startproject • django-admin startapp プロジェクトの初期化、アプリ追加の際に便利 • 誰が開発しても同じディレクトリ構成になりやすい • 別プロジェクト、別リポジトリになっても同じ構成を保ちやすい
Copyright © RevComm Inc. Djangoの特徴 24 チーム開発のしやすさ ユニットテストにおいて、デフォルトでテストケース間のデータを独立して扱える ※SQLAlchemy の場合、pytest
fixture と組合せて追加のセットアップが必要
Copyright © RevComm Inc. まとめ 25 RevCommのバックエンド開発とDjangoの利用、特徴を紹介しました。 まとめ: Djangoの特徴と、RevCommが利用を続けているポイント •
単体で多くの機能を持っていて開発を始めやすいフレームワークである ◦ ローンチ当時(2018年頃)は特に開発スピードを重視していた • チーム開発がしやすい ◦ ディレクトリ構成を統一しやすく、責務を明確にできる ◦ デバッグ容易性が高く、開発しやすい • セキュリティが考慮されている • ORMを同梱しており、使い勝手も良い • エコシステムが充実していて機能拡充がしやすい
Copyright © RevComm Inc. Thank you! 26