忘れないようにメモ
長いです。
背景
このサイト「開発メモ」は、Pyhton3、Django(CGI)、DojoToolkit(編集、管理画面)というとてもマニアックな環境で動作しています。
DBは、Djangoに合わせてPostgresSQLです。
通常ならば、PHP+適当なフレームワーク+jQueryまたは、Ruby+RubyOnRails+jQueryを選ぶかと思いますが、違います。
将来的に気持ちが揺らがないように、この環境を選択した、理由を記述しておきます。
DojoToolkitを選んだ理由
(DojoToolkitは管理側の画面に使用しています。公開画面はjQueryを使用しています。)
オールインワンであること
まず、DojoToolkitを選択した理由なのですが、Dojoはオールインワンです。
jQueryだとプラグイン使うことも多いと思いますが、Dojoの場合は、オールインワンなので基本的に不要です。
(※jQueryでもプラグイン使わなければいいじゃん、という話もある。)
オールインワンのメリット「バージョンアップが楽」
これに尽きます。
プラグインを使用する場合は、プラグインのバージョンアップも必要です。
本体のバージョンアップも必要です。しかも本体とプラグインの互換性の確認も必要です。
「バージョンアップしない」と決めれば良いのですが、セキュリティ的な問題があるとせざるをえません。
プラグインがあるとその分、バージョンアップのチェック、互換性テスト、負担が増えますが、オールインワンだと本体のみの負担ですみます。
なお、YUIについては開発中止、 ExtJSについては有償ということで、選択しませんでした。
Python3を選んだ理由
コーディングスピードが速い
Python「3」というより、Pythonを選んだ理由なのですが、コーディングスピードが速いからです。
PHPだとすべての変数に$を入力したり、{}や->のような記号が必要で入力の負担が大きいように思えました。
RubyやJavaを選ばなかった理由は、単純に環境がなかったからです。
(※筆者は、環境さえあれば、Javaがコーディングスピード、実行スピード共に最高だと思っています。 さらに言うと、{}のような記号の入力はあっても、Javaの静的型付けやエディタでの補完がコーディングスピードをかなり上げてくれます。)
ちなみに、Python3系を選んだ理由は、気まぐれです。
Djangoが使える
Djangoが使えるのは、Pythonだけです。
Djangoを選んだ理由
モデルクラスからDBへの反映
これです。
Djangoは、まず、モデルありきで、DBはそれを保存する場所という認識。
DB(テーブル、スキーマ)は、モデル構造を元に作成、変更されます。
他のフレームワークでこれができるのは、見たことがありません。
逆の発想でDBを基準にモデルを構成する、「アクティブレコード」というのもありますが、DBを基準にしていながら、結局、リレーションをコーディングする必要があったりで、一貫性がなく、筆者にはあいませんでした。
立ち上がりが早かった
筆者は、ですが、学習にかかる時間が短く、簡単なアプリでもサクッと始めることができました。
この辺は、筆者と相性がよかっただけかも知れません。
試してみたフレームワーク
ここにたどり着くまでに実際に試してみたフレームワークは、以下
- CakePHP
- Yii
- CodeIgniter
- FuelPHP
- Web2Py
- Ruby on Rails
まとめ
以上、Django+DojoToolkitを選んだ理由でした。
「他にももっと良いのがあるよ」とか、反論的なものがあれば、コメントお願いします。