クックパッドやマネーフォワードなど、主要なWebサービスの開発にも使われているRuby on Railsですが、比較的新しいフレームワークだということもあり、プログラミング初心者には一体どのようなものなのか想像がつかないのではないでしょうか。
今回は、今注目されているRuby on Railsについて、どのようなプログラミング言語なのか、どういった特徴があるのかをご紹介したいと思います。
INDEX
Ruby on Railsとは
Ruby on Railsは、その名の通りRubyによって作成されているフレームワークです。
フレームワークとは、基本的な機能が予め用意された機能群のことです。頻繁に使う機能や、便利な機能をあらかじめフレームワーク側で用意しておくことで、プロダクト開発をスムーズに行うことができるようになります。
Ruby on RailsはMVC(Model View Controller)という設計に基づいて開発を行います。
MVCは3つの言葉の頭文字であり、それぞれの意味は下記の通りです。
- M – モデル(Model) データの管理
- V – ビュー(View) 表示する部分
- C – コントローラー(Controller) 処理を行う部分
MVCモデルは、この3つを切り離すことによって効率的に開発を行うことを目指した考え方です。実際に、Ruby on RailsはMVCモデルを採用することによって開発にかかる時間を大幅に削減することができています。
Ruby on Railsで作れるもの
Webアプリケーション
Webアプリケーションと言われてもあまりぱっとしないかもしれません。具体的な例をあげると、マネーフォワードなどがWebアプリケーションです。
Web上で様々なデータを表示したり、ユーザー管理を行ったり、データの処理を行うなど、静的なWebページと違ってデータの処理が必要になるサービスのことをWebアプリケーションだと考えていただければいいかと思います。
ブラウザやスマホ端末の進化に伴って、Web上で行えることの幅がどんどん広くなっています。スマホゲームやサービスはアプリで使うというイメージが強いかもしれませんが、これからどんどんWebサービスが増えてくるだろうと思われています。
スマホアプリ(API)
スマホのアプリは、APIと呼ばれる仕組みを使って通信を行っています。
APIも馴染みが無い方にはイメージがつきにくいかもしれませんが、ある目的を持った通信処理だと考えるとイメージが付きやすいと思います。
ログインするための通信であればログインAPI、検索を行う通信であれば検索APIのように、それぞれのAPI毎に役割があります。
サーバにデータを送信し、サーバーで処理を行って、再びアプリにデータを送信する一連の流れを行う仕組みのことをAPIだと考えてください。
AndroidアプリであればJava、iOSアプリであればSwiftやObjective-Cを使ってアプリ自体の開発を行いますが、サーバーと通信を行う際には基本的に全ての通信にAPIが使われています。
Ruby on RailsはこのようなAPI開発を行うことが可能です。
Ruby on Railsの特徴
では、Ruby on Railsの特徴についてご紹介していきたいと思います。
開発のスピードが速くなる
Ruby on Railsは前にも述べたとおり、Rubyを使って作成されたフレームワークです。
基本的な機能が予め用意されているフレームワークを活用することによって、開発スピードがとても速くなります。
例えばログイン処理をPHPで作成する場合、ある程度テンプレートになっているものはあるかもしれませんが、細かい処理を自分で記述する必要があります。
それに対してRuby on Railsは簡単な記述だけで複雑な処理を行うことができ、あっという間にログイン処理を完成させることができてしまいます。
テストを自動で行うことができる
プログラミングを使って何かを作った時には、必ずテストを行う必要があります。テストを行わなければ、予期せぬ処理が走ってしまったり、セキュリティ上の問題にもなり得ます。
通常はテストを行うためのスクリプトを自分で作成しなければなりませんが、Ruby on Railsの場合はテストが自動化されています。
テストに費やす時間もそれなりにかかってしまうので、テストの自動化は先の開発スピードが速くなる要因の1つでもあり、Ruby on Railsを使うメリットの大きな1つでもあります。
SQLの知識が不要
PHPなどでデータベースを操作する場合には、色々な関数を組み合わせて処理を行うためのコードを記述する必要があります。
それに対してRuby on RailsはMVCモデルが使用されているため、簡単なコードでデータベースの操作を行うことができます。データベースの操作はセキュリティ的にも非常に気を使う部分なので、それを簡単に行えるとエンジニア的にはとても助かりますね。
初心者にはおすすめできない?
Ruby on Railsはとても便利なフレームワークなので、色々な処理を簡単なコードで行うことができます。簡単にプログラミングを行うことができるんだったら初心者に向いているのでは?と思うかもしれませんが、そこは人によって意見が大きく分かれます。
Ruby on Railsは簡単にプログラムを作成できる反面、細かい知識を身に付けづらいというデメリットがあります。
趣味でプログラミングをやってみる分にはRuby on Railsは面白いかもしれませんが、将来エンジニアとして活躍したいと思っている方は、まず他の言語でプログラミングの基本的な考え方を身につけて、それからRuby on Railsに手を付けた方がいいでしょう。
Ruby on Railsを使って作成されているサービス
マネーフォワード
色々なサービスと連携することで自動で家計簿が作成できるマネーフォワードはRuby on Railsを使用して開発が行われています。マネーフォワードは外部サービスとAPI連携したりスクレイピングをすることによって、自動的にデータを取り込んでデータを取得するという仕組みを使用しています。
それだけではなく、ユーザーごとのデータを処理したり、グラフを表示したりなど、複雑なデータを扱うサービスもRuby on Railsで作成できることがわかりますね。
Airbnb
民泊サービスとして一気に有名になったAirbnbですが、これもRuby on Railsを使って開発が行われています。
クックパッド
レシピサービスとして圧倒的な人気を誇るクックパッドもRuby on Railsが採用されています。
その他のサービス
その他にも、下記のサービスでRuby on Railsを使って開発が行われています。Ruby on Railsは様々なサービスの開発を行うことができるということがよくわかりますね。
- Gunosy
- Hulu
- Wantedly
まとめ
Ruby on Railsは使いこなせるようになると様々なWebアプリけーションを作成することができます。
サーバーサイドの言語としてRuby on Railsとよく比べられるのがPHPですが、PHPにも長所はあり、Ruby on Railsが正解でPHPは間違いという訳ではありません。PHPの方が優れている部分もたくさんあり、実際に多くの企業でPHPを使ったサーバーサイドの開発が行われています。
これからプログラミングを勉強しようと思っている方は、まず色々な言語を実際に触れてみて、それぞれの特徴や雰囲気を掴んでみると、色々学べるところがあるのではないでしょうか。
最近ではオンラインでプログラミングを学ぶことができるサービスも増えてきたので、そういったサービスの入門コースを活用すると様々な言語の初歩的な使い方を学ぶことができますよ。
これからの時代はますますプログラミングが重要になってくると見られており、人材もどんどん不足してくると見られています。
プログラミングを勉強しておけば、活躍できる舞台はたくさんあります。自分にあったプログラミング言語を見つけて勉強してみてはいかがでしょうか。