Python Django フレームワークのアーキテクチャ決定記録
決定日: 2021-07-15
状態: 承認済み
コンテキスト
当組織は、顧客データを管理する Web アプリケーションの開発を計画しています。プログラミング言語として Python を選択し、アプリケーション開発のための Web フレームワークとして Django を検討しています。
決定
Web アプリケーションの開発に Django Web フレームワークを使用することを決定しました。Django は、Web アプリケーションを迅速かつ効率的に構築するための、堅牢なツールと機能のセットを提供します。
要因
私たちの決定に影響を与えた要因には次のものがあります:
オブジェクトリレーショナルマッピング(ORM): Django には組み込みの ORM があり、SQL クエリを書かずにデータベースと対話できます。これにより、アプリケーションの開発が容易になり、長期的な保守も容易になります。
MVC フレームワーク: Django はモデル・ビュー・コントローラー(MVC)アーキテクチャに従っており、アプリケーションのビジネスロジックとプレゼンテーション層を分離しやすくなります。
スケーラビリティ: Django はそのスケーラビリティ能力で知られており、大規模アプリケーションの開発に優れた選択肢です。
セキュリティ: Django には、クロスサイトスクリプティング(XSS)や SQL インジェクションなどの一般的な Web 攻撃に対する保護など、組み込みのセキュリティ機能があります。
コミュニティサポート: Django には、サポートを提供し、フレームワークの開発に貢献する、大規模で活発なコミュニティがあります。
検討した代替案
Flask や Pyramid などの他の Web フレームワークを検討しました。しかし、Django はより成熟して確立されたフレームワークであり、堅牢な機能セットを備えていることが分かりました。
また、Web フレームワークを使用せずに、SQLAlchemy や Flask-RESTful などのライブラリを使用してアプリケーションを開発することも議論しました。しかし、Django はより広範な機能を提供するため、完全な Web アプリケーションにはより良い選択であることが分かりました。
結果
Django の採用は、次の結果をもたらします:
Django の組み込みツールと機能により、アプリケーションの開発と保守が容易になる。
ビジネスロジックとプレゼンテーション層の分離により、より整理された、保守しやすいコードになる。
アプリケーションのスケーラビリティと堅牢性。
アプリケーションを一般的な Web 攻撃から保護するのに役立つ、組み込みのセキュリティ機能。
サポートのための大規模で活発なコミュニティへのアクセス。
Django は他のフレームワークよりも学習曲線が急であることを理解していますが、それがもたらす長期的な利点のために、投資する価値があると考えています。
結論
検討した要因に基づき、Web アプリケーションの開発に Django Web フレームワークを使用することを決定しました。Django の機能、コミュニティサポート、スケーラビリティ能力により、完全な Web アプリケーションを構築するための最良の選択肢であると信じています。フレームワークが効果的かつ効率的に使用されるよう、開発者に Django の使い方をトレーニングします。