🐶

Djangoプロジェクトで設定しておくべきこと (1)前書き

2021/09/29に公開

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