Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Djangoの特徴とRevCommにおける選定理由

 Djangoの特徴とRevCommにおける選定理由

RevComm_inc

July 05, 2023
Tweet

More Decks by RevComm_inc

Other Decks in Programming

Transcript

  1. Copyright © RevComm Inc. 1.自己紹介 2 小門 照太 (Shota Kokado)

    Backend Team, @長野県 • 2022/1~ :RevComm • 2018~2021 :バックエンド開発 • 2013~2018 :インフラエンジニア 得意 • AWS, Python, Infrastructure • DevOps • ペットx3 • アウトドア(山) コザクラインコ セキセイインコ ねこ
  2. Copyright © RevComm Inc. contents 1. RevCommにおけるバックエンド開発とDjango 2. Djangoの特徴 a.

    セキュリティ b. ORM、マイグレーション管理 c. エコシステム d. チーム開発のしやすさ
  3. Copyright © RevComm Inc. contents 1. RevCommにおけるバックエンド開発とDjango 2. Djangoの特徴 a.

    セキュリティ b. ORM、マイグレーション管理 c. エコシステム d. チーム開発のしやすさ
  4. Copyright © RevComm Inc. RevCommにおけるバックエンド開発とDjango 10 • サービス概要 ◦ 400~500req/s

    (ピーク時間帯) ◦ ECSタスク数: 約100 ◦ 日本、アメリカ、インドネシアに提供
  5. 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
  6. Copyright © RevComm Inc. contents 1. RevCommにおけるバックエンド開発とDjango 2. Djangoの特徴 a.

    セキュリティ b. ORM、マイグレーション管理 c. エコシステム d. チーム開発のしやすさ
  7. Copyright © RevComm Inc. Djangoの特徴 14 • 例: XSS Django

    標準の HTML テンプレートエンジンにより、特殊文字がエスケープされる。
  8. Copyright © RevComm Inc. Djangoの特徴 15 • 例: XSS Django

    標準の HTML テンプレートエンジンにより、特殊文字がエスケープされる。
  9. 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
  10. Copyright © RevComm Inc. Djangoの特徴 23 チーム開発のしやすさ プロジェクトテンプレート機能 アプリケーションの初期化をサポートする機能が標準装備されている •

    django-admin startproject • django-admin startapp プロジェクトの初期化、アプリ追加の際に便利 • 誰が開発しても同じディレクトリ構成になりやすい • 別プロジェクト、別リポジトリになっても同じ構成を保ちやすい
  11. Copyright © RevComm Inc. まとめ 25 RevCommのバックエンド開発とDjangoの利用、特徴を紹介しました。 まとめ: Djangoの特徴と、RevCommが利用を続けているポイント •

    単体で多くの機能を持っていて開発を始めやすいフレームワークである ◦ ローンチ当時(2018年頃)は特に開発スピードを重視していた • チーム開発がしやすい ◦ ディレクトリ構成を統一しやすく、責務を明確にできる ◦ デバッグ容易性が高く、開発しやすい • セキュリティが考慮されている • ORMを同梱しており、使い勝手も良い • エコシステムが充実していて機能拡充がしやすい