実はRailsよりDjangoがオススメ!?両方使ってみた結果をまとめます
Webフレームワークの三大巨頭はLaravel(PHP)、Rails(Ruby)、Django(Python)ですが、プログラミングに慣れてる人にはRubyが大人気です。
そしてRailsにかなーり似ている、Python製WebフレームワークがDjangoです。
とはいえ言語の違いくらいしかないやろ、と思っていた私ですが、両方使ってみて、両者が全く違うものだと言うことがわかってきました。
その違いを、私の分かる範囲でまとめておきます。
前提:特徴をざっくり解説
どちらもフルスタックのフレームワークという点では同じですが、設計真相が違うので、細かいところは色々異なります。
その部分を、先にまとめます。
Rails
MVCモデル
RailsではMVCというデザインパターンが採用されています。
様々なサイトで詳しくまとめられているので、ここではあまり話しませんが、下記のイメージで問題ないです。
- Model(データベース)
- View(サイトの画面)
- Controller(Modelから取得したデータをViewに渡す)
DRY原則
Don`t Repeat Yourself
Railsでは「同じことを繰り返さないで!」と言う開発原則があります。
例えば同じことをするコードは、モジュール化したりクラスにしたりで、汎用性を高くするってことです。
コード以外にも、DBやスキーマにも重複は許されません。
CoC
Convention over Configuration
これもRailsの原則です。訳すと、「独自の設定はやめて規約に従え」ってこと。
Railsはその名の通り、規約、つまりレールの上で開発を進めれば、スムーズに完成まで持っていけるようになっています。
独自の設定を組み込んでいくとRailsの恩恵を活かせなくなるのでやめましょう、ってことですね。
Django
MVTモデル
DjangoではMVTというデザインパターンが採用されています。
Railsと同じように、まずはイメージをどうぞ
- Model(データベース)
- Template(サイトの画面)
- View(Modelから取得したデータをViewに渡す)
ざっくりとした理解であれば、名前が変わっただけ、ってくらいの認識でOKです。
DRY原則
DRY原則はDjangoでも同じです。
管理サイトがある
Djangoでは、管理者が自由にデータの作成・更新・削除ができるサイトがデフォルトでついてます。これはRailsにはないので、かなり大きな特徴です。
Railsではコンソールで叩きまくるか、管理画面を自作するしかないので、非常に使い勝手が良いです。
両方使ってみた感想
さて、ようやく本編です。
まとめる内容は経験ベースの体感なので、個人差はあると思いますが…
日本語の情報量はDjango < Railsだが…
巷でも言われてる通り、日本語の情報量は圧倒的にRailsです。
ただ、だからと言って、Djangoは英語の情報ばかりなので英語必須!って訳でもありませんでした。
情報が少ないには少ないのですが、検索すると、洗練された情報がすぐに出てくるイメージ。
詳しくは分からないけど、日本人でDjangoを使ってる人は、そこそこ詳しいエンジニアが多いのかも。だから、まとめられてる情報の質が高いんですかね。
Djangoは必要最低限のファイルしか自動生成されない
Railsはプロジェクトを作成するときに叩くコマンドで、開発に必要なほぼ全てのファイルが生成されますが、Djangoはそうでもありませんでした。
具体的に例を挙げると、アプリケーション単位のURLを定義するファイルは手動で生成する必要がありました。
デメリットに見えるかもしれませんが、個人的にはメリットだと思います。
だって、バグが起きたときに調べるファイルが少なくて済みますからね。
自動生成されたファイル自体がバグることはないはずですけど、自分で作った部分との繋がりでバグることは十分起こり得ますからね。
Rails≠Ruby Django≒Python
RailsにはRails特有の書き方があって、純粋Rubyとは全くと言っていいほど違うんじゃないか?って感じでした。
事前にRubyの勉強自体はしてたんですけど、Railsには全く活かせませんでしたね…
で、Djangoですが、こっちももちろん、純粋Pythonとはやや異なるも点はありましたが、ほぼPythonって感じでした。
今まで勉強してたPythonの知識で、そのまま書けました。
なので、個人的にはDjangoの方がスムーズに馴染めましたね。
エラーページはどちらも同じ感じ
開発環境でのエラーページはどちらも同じくらいわかりやすかったです。
Djangoは情報が少ないと聞いていたので、エラーが出た時の対処が大変そうだな〜と思ってましたが、これのおかげで助かりました。
てか分かりやす過ぎて、単純なエラーだとググらずに解決することも多かったですw
まとめ
以上、Railsと Djangoの両方を使ってみた感想でした!
まとめると、個人的にはDjangoの方が使いやすいな〜という感じでした。
やっぱりファイル数が少ないってのは大きすぎるメリットですね。全体像を把握しやすいので。
日本ではDjangoはあまり流行っていませんが、私はDjangoでの開発を経験しておくことをお勧めします。
まず、世界的に見ればPythonはすごく流行っていて、PythonでWebサイトを作ってる会社も多いです。
対して日本では現状、PythonでWebサイトを作ってる会社はほぼありません。
ただ現在、日本でも機械学習分野をはじめとしてPythonが凄く流行ってきているので、今後はWebサイトをPythonで作る需要もどんどん上がっていくんじゃないかな〜と思っています。
ぜひあなたも、Djangoを使ってみてください!
では!