🐶
Djangoプロジェクトで設定しておくべきこと (1)前書き
Djangoプロジェクトで設定しておくべきこと
みなさん、プロジェクトでDjangoを利用してますか?
私は、
- 機械学習、分析の結果を返すAPIサーバー
- Backends For FrontendsとしてのGraphQLサーバー
でDjangoを利用しています。
速度こそイマイチですが、枯れていて知見の詰まった良いフレームワークですよね。
日本ではRailsと比べ人気がありませんが、個人的にはRailsよりDjangoを推奨してます。
今回の記事では、私がプロジェクトで設定している
Djangoプロジェクトの仕組み
を紹介していきます。
仕組みの重要性
プロジェクトをうまく回すのに一番重要なことは
仕組みを作る
ことです。
しかし、仕組みを作るという作業は
- 時間がかかる
- 一見なにも進んでないように思える
ので、どうしても後回しになりがちです。
しかし、仕組みを作ることは
長い目で見て大きな時間の節約
になるので、絶対にプロジェクトの早い段階で仕込んでおくべきです。
仕組みを作っておくと、プロジェクトが進めば進むほど、仕組み化してないプロジェクトと比較して生産性が高まります。
設定しておくべきこと一覧
Djangoを使ったプロジェクトでは、以下の項目の自動化をしておくことをおすすめします。
- flake8で文法チェックをする
- isortでimportの並び順を統一する
- mypyで型をチェックする
- radonでコードの質をチェックする
- xeonでA評価を取得する
-
unit testでモジュール単位をテストする
- unit test 60%(最低限)
- unit test 75%(一般的)
- unit test 90%(模範的)
- E2Eテストを実行する
- gitHubActionで作業者全員のコードチェックが実施される
- gitHubActionのci時に本番deploy時のセキュリティチェックが行われる
- gitHubActionでe2eテストが実行される
- gitHubActionでdeploy作業が自動化されている
- gitHubのtemplateを使って課題管理の提出ができる
- ドキュメントを見て5分で開発環境が構築できる
- gitの適切な管理方法が決まっていて、ドキュメントでまとめられている
- gitコメントの仕組みが自動化されている
- 誰でもリリース作業ができる
- 誰でも切り戻し作業ができる
- localでhttpsを利用して開発する
やることが多すぎると思う人もいると思いますが、
長期運用で必要な最低限のこと
を並べているだけなので、なるべく最初に設定しておきましょう。
システムが拡大して、生産性の低下が問題になってから仕組みを構築しようとすると、一大プロジェクトになってしまい、なかなか導入が進まなくなります。
なので、どんなに急いでいても、システムを立ち上げて1年以内には構築しましょう。
次の記事からは
具体的な設定方法を、コードを交えて
説明していきます。
(あまり長くなるようなら、最後に本としてまとめるかもしれません。zennの便利なところですね)
Discussion