目的
私がDjangoについて、しっかり調べて思ったことを残しておく。
分かりやすい比較などを公開するわけではない。
背景
Laravelを1年以上使って、Spirng Bootを少し触って理解できるレベルになったため、少ししか触ったことがないDjangoを改めて勉強した。
感想
Laravelは初期のフォルダ数が多いが、ModelやContorolerなどのファイルをどこに格納するのかわかりやすい。その分、フォルダ構成の自由度が下がるが、小規模プロジェクトなら問題なし。
ただし、マイグレーションファイルをいちいち追加するのはめんどくさい(他のFWでも同じ?)
Djangoは初期のフォルダ構成が少なすぎて、何をどこに作成したらよいかわかりにくいかった。
特にDjangoのアプリケーションをどの単位で作成するかが私には判断が難しい。機能単位でアプリケーションを区切るようだが、A機能のModelをB機能から参照するなど循環インポートを気にする必要があるたフォルダ設計の難易度が高い。
上記のようなDjnagoの難しい点をチュートリアルでは解説していないため、ちゃんと使用することを断念した。
昔、Djnagoの仕事をしたときは設計思想は簡略的でModelを使わずに実装していたため、何とかなっていたんだなと実感した。
Djangoで新規開発は大変そうだが、既存改修なら既存設計思想に従えばよいため仕事ができそう。
結論
特別な理由がない限りDjangoを避けます。
機会があれば、Djnagoを使うエンジニアに本記事で疑問に思ったことをどうやって解決しているのか聞いてみたい。