さて、Padrinoはフルスタックフレームワークではおなじみのプロジェクト・ジェネレーターがありまして、コマンド一発でプロジェクトの雛形を生成できるようになってます。しかしながら、このプロジェクト・ジェネレーターには、機能ごとにどのコンポーネントを選ぶか、様々なオプションを付けることができ、迷うこともあるんじゃないかと思います。
ということで、今回どのコンポーネントを使うことにしたかと、その理由について書いてみたいと思います。
とりあえず、一覧はこちらです。(ちなみに選択可能な他の選択肢はここに載ってます。)
- orm: activerecord
- test: cucumber
- script: jquery
- renderer: erb
- stylesheet: scss
- mock: none
プロジェクト・ジェネレーターのコマンドは
padrino g project <the_app_name> -d activerecord -t cucumber -s jquery -e erb -c scss
ですね。
それぞれ理由について書いてみます。
orm: activerecord
ORマッパーです。activerecordを選んだのは、Railsで標準的に採用されていて情報が手に入りやすそうだったからです。もちろんここでactiverecordのやり方を習得したら、Railsのプロジェクトをやることになった際も役立つだろうという計算もあります。他の選択肢はよく知りません。
test: cucumber
テスト駆動開発のファンとしては重要なテスティングフレームワーク。これは以前も書いたようにcucumberをチョイス。ちなみに、選んでみて後から気づいたんですが、cucumberを指定すると自動的にcapybaraも組み込まれて使用されます(もちろんrspecも)。他の選択肢はrspec以外はよく知りません。
script: jquery
javascriptフレームワークはjQueryをチョイス。まあ最もメジャーで資料も豊富だし使いやすいしこれが一番ですかね。prototypeは古いイメージがあります。extcoreは書き方が好きじゃないです。dojoは面倒そう。rightjs, mootoolsはよく知りません。
renderer: erb
テンプレートエンジン。迷いました。hamlは確かに構造的に美しいかも知れませんが、学習コストが高く慣れるまで時間かかりそうなのと、後々デザイナーさんとの協業の際非常に面倒になりそうなのでパス。slimも同様の理由でパス。一瞬liquidのPHPでいうところのsmartyに似たシンプルさに惹かれましたが、調べてみると情報がとても探しにくい。柔軟性の高さも勘案して結局erbにしました。
stylesheet: scss
これもlessとscssどっちにしようか迷いました。たぶんコーディングの観点からは差はありません。しかしrubyのプロジェクトなので、ビルドエンジンがrubyであるscssとは相性が良さそうで、lessは結局node.jsの導入が面倒なので止めました。
mock: none
モックフレームワークは実は存在自体今回調べてて初めて知りましたが、あまり必要性を感じなかったので指定しませんでした。なんかJava界隈では結構活躍してるっぽいですね。誰かどんな風に便利なのか知ってたら是非コメント書いて教えてください。
以上、コンポーネントを選んだ理由でした。参考になれば。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
0 件のコメント:
コメントを投稿