Djangoの機能を把握して設計レベルを上げる

Django ではMVT(Model, View, Template)3つの機能に分ける設計モデルがあります。(詳しくはDjango設計 MVC MTVという考え方という記事を書いてあります)

機能を3つに分けて考える事でコードを機能毎に分離しやすくなり、開発や保守がしやすくなります。私も最初はこの3つの機能を意識してコーディングしていました。

しかし、規模が大きくなるにつれてViewのコードが肥大化し開発や保守がしづらくなってしまいました。

webサイト開発する初心者にとってMVTはわかりやすいですが、中大規模なサイト開発では不十分です。MTV以外の機能も覚え、コードをより細かい機能毎に分離できるようした方が開発しやすくなります。

今回はMTV以外のDjangoに備わっている重要な機能を紹介します。

重要な機能

Djangoの重要な機能

私の開発経験からDjangoに備わっている機能の中で、特に重要な機能をピックアップして図化しました。ビュー層やモデル層などの分類はDjangoドキュメントを参考にしています。

上記以外の機能もありますが、地図機能など限定的なものやマイナーな機能は省いています。

“重要度 高”の機能は特に重要でよく使います。Djangoの基本中の基本の機能も多いのでこれらの機能を習得しておけば他の機能を学ぶ時の役に立ちます。

「何から手をつければ良いかわからない!」

と言う人はまずはこれらの機能を重点的に学ぶと良いと思います。

公式ドキュメントの問題点

Django の公式ドキュメントには各機能が詳細に書かれているため、どの機能が重要なのか分かりにくいです。設計に関する知識も求められます。

私が初心者の時は分量が多すぎて何度読んでも機能を整理できませんでした。約3年間、開発経験を積んだりや設計系の本を読んでやっと整理できる様になりました。

例えば私はマネージャーの価値に気づくまでに時間がかかりました。価値に気づくまではマネージャー側に実装すれば良いコードをビュー側に書いていました。

マネージャーの使い方を知り、ビューとマネージャーを使い分けられるようになったことで、ビューのコードの見通しが良くなったり重複が減ったり、テストがしやすくなりました。

最後に

私の開発経験からMTV以外の重要な機能を紹介しました。

考え方や、設計レベルは開発者によって違うので私が重要だと思う機能が

「ドキュメント読んでみたけどこの機能ってそんなに重要なの?」

と食い違う懸念はありますが、私がDjangoの初学者で「どの機能が重要で何を学べば良いかわからない!」と思ってた頃に今回のような指針があったら良いなと思い書きました。

今回の解説はViewが肥大化して困っている場合は特に役立つ考え方だと思います。

Django の機能を把活用して開発効率を上げていきましょう!

スポンサーリンク
スポンサーリンク