Edited at

Padrinoをオススメする6つの理由

More than 5 years have passed since last update.

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.rb

## /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もとてもいいですよと思って書きました。