今回は、いまやWebアプリ開発の定番フレームワークとなりつつあるRuby on Rails(以下「Rails」とします)についてお話しさせて頂きます。
Web上で公開されているアプリケーションの中にもRailsを使用しているものは非常に多く、これからプログラミングを始めようとしている方にとっても有力な選択肢の一つとなっています。
今回のブログを通じて、Railsの魅力や特徴を少しでも知って頂ければ嬉しく思います。
フリーランス案件を探すならこのエージェント!
転職を考えているならこのエージェント!
Ruby on Railsってなに?
RailsはRubyを使用したWebアプリケーションフレームワークであり、Rubyとは、主にWebアプリケーションの開発に用いられるプログラミング言語です。
Rubyについては以下の記事にまとめておりますので、こちらもぜひご覧ください。
みなさんこんにちは! 今回の記事は、 悩みを抱えた人 ・Rubyってどんなプログラミング言語なの?・Rubyを勉強すると将来役に立つかな?・Rubyのおすすめの学習方法が知りたい! というお悩みを解決する記事にな[…]
フレームワークというのは、日本語での意味(「枠組み」)と同じ形で捉えて頂いて結構です。つまり、Webアプリケーションを開発するために必要な機能を備えた枠組み、Webアプリケーション開発パックと考えて頂いて結構だと思います。
プログラミング言語やそれらを使用したフレームワークには基本的な理念・原則が存在しているのですが、Railsでのそれは「Don’t Repeat Yourself(DRY)」、「Convention over Configuration(CoC)」になります。
日本語ではそれぞれ、「同じことを繰り返さない」、「設定より規約」という意味になります。
Don’t Repeat Yourself(同じことを繰り返さない)
DRY原則とは、元々「達人プログラマー―システム開発の職人から名匠への道」という書籍の中で提唱されたソフトウェア開発原則です。その中で著者は以下のように提唱しています。
すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならない。 何故これがDRY原則なのでしょうか? DRY原則を破るということは、同じ知識を2箇所以上に記述することです。この場合、片方を変更するのであれば、もう片方も変更しなければならないのです。さもなければ異星人のコンピュータのようにプログラムは矛盾につまづくことになるのです。これはあなたが覚えていられるかどうかという問題なのではありません。これはあなたが忘れてしまった時の問題なのです。
以上の記載からも分かるように、DRY原則とは、ソフトウェア(※厳密には異なりますが、アプリケーションと同等と考えて頂いて結構です)を開発する中で同じ情報を重複させない、ということになります。
例えば、機能Aを開発し、その機能Aを利用する機能Bと機能Cが存在する場合、機能Bと機能Cの中に機能Aをべた書きするのではなく、機能Aをパッケージとして定義しておき、そのパッケージを機能Bと機能Cに組み込むというイメージです。
ベタ書きした場合、機能Aを変更しようとすると「機能Bの中にある機能A」と「機能Cの中にある機能A」の2箇所を変更しなければなりません。
それに対して、機能Aをパッケージとして定義しておくと、そのパッケージを変更するだけでその変更内容が機能Bと機能Cに反映されることになります。
今は例えなので機能が少なく、DRY原則の恩恵をそれほど感じられないかもしれませんが、本来の開発現場では何十、何百という機能が存在することになりますので、DRY原則を守ることが保守性の高い(メンテナンスのしやすい)ソフトウェア開発に繋がってきます。
Convention over Configuration(設定より規約)
「設定より規約」とはシンプルに格好良くまとめられておりますが、パッと見た感じでは何を言いたいのかが分かりづらいですよね。
これは言い換えると、”ソフトウェアを開発する際に細々と「設定」を追加していく「より」、まずはフレームワーク側で決められた「規約」を使ってみてくださいよ”ということを略したものだと捉えておいてください。
この原則があることによって、開発者は特に設定を追加せずとも規約に則ることでソフトウェア開発が可能になります。
Ruby on Railsという名前にもその原則が強く反映されており、Railsというレール(=規約)に乗っかったRubyという形で捉えることができますよね。
実際、Railsで開発する際には開発者は特に細々とした設定を考慮することなくすぐにアプリケーション開発を始めることができ、それが爆速での開発を可能にしている所以の一つだと思います。
手軽にWebアプリケーションを開発しましょう
実際にRailsでのアプリケーション開発を始めるのはどうすればよいのでしょうか?
とても簡単です。ターミナルで「rails new (アプリ名)」というコマンドを打つだけでWebアプリケーションの土台が出来上がってしまいます。ちなみに初期画面は以下のようになります。

例えば、facebookという名前のアプリを開発したい場合には、「rails new facebook」と打つだけです。
びっくりしませんか?たったこれだけでRailsはアプリケーション開発に必要な設定を全て用意してくれます。
フレームワークが存在していない時代にはこれらを全てゼロから設定していかなければならなかったと思うと背筋がゾッとしますよね…。
もちろん、「rails new」を実行した後に実際の画面の実装(HTML/CSS)やサーバーサイド側の実装(Ruby)を進めていく必要があるのですが、その土台を作り上げるのがこれだけ簡単だということをご理解ください。
上記のように簡単にアプリケーション開発を始められるとなると、「あんまり大した機能ないんじゃない?」という疑問を持つ方も多いのではないでしょうか?
…いえいえ、全くそんなことはございません!
以下でご説明するgemの力も借りつつ、Webアプリケーションに必要な機能を網羅することが可能です。
Railsの魅力、それはgemにあり
以下のRubyに関する記事でも軽くご紹介しましたが、gemとは簡単にいうと便利な機能がまとめられたプログラムになります。
みなさんこんにちは! 今回の記事は、 悩みを抱えた人 ・Rubyってどんなプログラミング言語なの?・Rubyを勉強すると将来役に立つかな?・Rubyのおすすめの学習方法が知りたい! というお悩みを解決する記事にな[…]
Railsではこれらのgemをインストールし、それらをGemfileというファイルで管理しながらWebアプリケーションを開発していくことになります。
ここではほとんどのRailsアプリケーションで使用されているであろうgemをいくつかご紹介させて頂きますね。
これ以外にも便利なgemは多く存在しますので、それらは別の機会にまとめてご紹介させて頂きます。
ユーザー管理の番人、「devise」
deviseは主にユーザー管理機能(登録/編集/削除)を担ってくれます。
このgemを使うだけでセキュリティも担保されたユーザー管理機能を実装することができます。
いくつかのコマンドを打つだけで使い始めることが可能ですので、気軽に使って見ることが可能です。
実際の始め方は以下のGithubのGetting started以下を参照してくださいね。
https://github.com/heartcombo/devise
検索の魔術師、「ransack」
ransackは主に検索機能を担ってくれます。
「東京駅付近で月給30万円以上」の求人検索、みたいな機能ってWebアプリケーションでよく見られますよね。
そういった機能もransackを使用することで簡単に実装することができます。
このransackさん、「こんな検索機能が欲しい!」といった要望には大体応えてくれます。
非常に多くの検索機能が備えられているのですが、詳しくは以下のGithubのGetting started以下を参照してみてくださいね。
https://github.com/activerecord-hackery/ransack
ページ管理ならお任せあれ、「kaminari」
kaminariというgemは主にページ管理を担ってくれます。
よくWebサイトとかのページ下部に「最初 前 1 2 3 … 次 最後」みたいな表示がありますよね。
kaminariを使うと、こういったページ管理機能をとても簡単に実装することができます。
詳しい使い方については以下のGithubのInstallation以下を参照してみてくださいね。
https://github.com/kaminari/kaminari
最後に
さて、ここまで「Ruby on Railsってなに?」というところからその魅力についてご紹介させて頂きましたがいかがだったでしょうか?
このブログを通じて少しでも「傍(はた)を楽(らく)にする」ことができていれば嬉しく思います。
最後まで読んで頂きありがとうございました。