Railsなんて勉強しない方がいいよ!的なエントリが話題になっているのを見かけたので、
そうだよねそれよりPadrinoだよね!
と曲解してみました。
というわけで、Padrinoの良いところを思いつくまま記してみました。
Padrinoの良いところ
要はSinatraだ
Padrino is a ruby framework built upon the excellent Sinatra web library.
Guides Home - Padrino Ruby Web Framework
ということでSinatraを使いつつ、各種O/Rマッパーやテンプレートエンジンなどと簡単に連携しながら開発が出来ます。
中身はSinatraなのでアクションもこんな感じで簡単に作れます。
get '/users/:id' do
end
これだとたくさんURLを作りたいときはごちゃごちゃになっちゃうよねということで
## /users/:id と同じ
MyApp::App.controllers :users do
get index, with: :id do
end
end
のようにURLをPadrinoのコントローラに作成してもらうようにも出来ます。
routes.rbのような簡単なような難しいようなものを書かないで済むのが僕的にかなりでかいです。
URLの作り方は以前にまとめたので良かったらどうぞ。
PadrinoでRESTfulなURLを作ろう
generatorがある
豊富なgeneratorがあるのでプロジェクトを作成してコントローラーやモデルを追加してすぐに「キレイな形で」開発しやすい
# プロジェクトの作成
padrino g project your_project -d activerecord -t rspec -e slim
# modelを共有しながらプロジェクト内にモバイル向けのアプリケーションを作ることも出来ます
padrino g application mobile
# コントローラを作成
padrino g controller users
# モデルを作成
padrino g model user
プラグインの作成もgeneratorから行えます。
spec, minitestなどテストがすぐ書ける
rspecを使うようにプロジェクトをgenerateしておけば、rspecの設定をしておいてくれるのですぐにとりあえずrspecを使って開発することが出来ます。
generatorを使ってcontrollerやmodelを作成すると同時にspecなどテストファイルも作成してくれます。
padrino rake spec
と叩けばspecを実行出来ます。
ActiveRecordなどRailsのコンポーネントが使える
当然ですが、ActiveRecordやActiveSupportのような便利なものはrequireして使えるので結構Railsを使ってるのと変わらない使い勝手で開発ができます。
modelsディレクトリ内にあるmodelはプロジェクト内のどのapplicationからでもアクセス出来るのがうれしいです。
その他slim, haml, rspec, sequel, datamapper, mongoid, sass, lessなど有名なコンポーネントともすぐ連携出来るようになっています。
consoleがある
これは僕としてはかなり大事です。
padrino consoleを叩けばrails consoleと同じように作っているプロジェクトのmodelを叩いて動きを確かめることが簡単に出来ます。
他にもデータ処理をmodelに書いてあるロジックを通して行うことが出来るので、Web画面を準備したりするのは大変だけどちょっとデータ変更をしたいという時にすごく便利です。
これがないとウチの仕事は回らなくなるかも。あんまり頼るのも良くなけどね :)
Rails風にキレイなディレクトリ構成がすぐに使える
Railsはキレイなディレクトリ構成がいいっすよね。それも取り込んでます。
generatorで作ってくれたりするのでlib, log, spec, models, configなど分かりやすい名前で期待した通りの役割を果たしてくれます。
Railsっぽい構成でRailsやっていればすぐ分かる気がする。
Padrinoのよくないところ
結局Rails使えばよくない?と思えなくもない
見出しの通り。
でも、やっぱりSinatraの軽快さを活かしつつキレイな構成でconsoleを使いつつ開発出来るのは素晴らしいと思うなー。
というわけで
Railsの勉強はしないよりした方がいいんじゃないかと思うけど、Padrinoもとてもいいですよと思って書きました。