Ruby on Railsとは?何ができるかをわかりやすく解説
Ruby on Railsは、Webサービス開発の負担を減らすフレームワークの1つです。Ruby on Railsとは何か、どんなサービスを作ることができるのか。Webサービス企業のCTOを務める星直史さんがわかりやすく解説します。
目次
- Ruby on Railsとは?
- Ruby on Railsの特徴とは?
- Ruby on Railsのメリット・デメリット
- Ruby on Railsの学習方法は
新卒入社したSIerでC#, Javaを学んだ後にピクスタ株式会社に2012年に入社しました。 写真素材・ストックフォト「PIXTA」の改善改修に従事。その後、開発リーダー、マネージャーを経て、2018年1月より開発部長に就任しました。 現在2020年1月よりスナップマート株式会社 取締役CTOとして働いています。 エンジニアリングのことならお気軽にご相談ください。
Ruby on Railsとは?
——Ruby on Railsとはどんなものなのでしょうか。 Ruby on Railsは、Rubyというプログラミング言語を使ってWebアプリケーションを作るためのフレームワークです。 フレームワークにはWebアプリを作成するために必要な機能や構造があらかじめまとめられており、枠組みに沿ってプログラムを書くことでアプリを動作させることができます。「起承転結」に沿って文章を書くのと同じようなイメージです。 たとえばデータベースに接続したいというとき、Ruby on Railsを使用しないとデータベース接続用のコードを書く必要があります。しかしRuby on Railsを使えば、どのデータベースに接続するかという設定さえすれば、接続用コードを書かなくてもRails側で自動的にデータベースに接続してくれます。
Ruby on Railsの特徴とは?
■Ruby on Railsの特徴
——Ruby on Railsにはどんな特徴があるのでしょうか。 Ruby on Railsには、大きく2つの特徴があります。 ・MVCフレームワークであること
・密結合なので少人数でも迅速に開発が行えること MVCとは、モデル(Model)、ビュー(View)、コントローラー(Controller)の頭文字をあわせたものです。モデルはデータベースの情報の読み取り・書き込みをする機能。ビューはブラウザ上でどんな表示をするかを定義づける機能。コントローラーはどんなデータを読み取るか、そのデータをどんなふうに表示させるかをモデルやビューに指示し、実行させる機能を担っています。このMVCの3つが1つのパッケージになっていることが、Ruby on Railsの1つ目の特徴です。 このように、モデル・ビュー・コントローラーが1つになっているシステムを「密結合」と呼びます。密結合であるRuby on Railsは、1人のエンジニアが1つのシステムでモデル、ビュー、コントローラーを扱うことができるため、少人数でも迅速に開発を進めることができます。これが2つ目の特徴です。
■Ruby on Railsが得意とすること
——Ruby on Railsではどんなことができるのでしょうか。
Ruby on Railsは、Webアプリケーションの開発を少人数のエンジニアで迅速に行うことに特化したフレームワークです。小さな規模のシンプルなWebサービスを開発するのに向いています。
——Ruby on Railsを使ったWebサービスの事例にはどんなものがありますか?
国内のWebサービスでは、料理レシピサービスの『クックパッド』、海外では宿泊施設の貸出・予約サイト『Airbnb』などが挙げられます。
私が取締役CTOを務めている写真素材・ストックフォトサービスの『Snapmart』、その親会社の『PIXTA』もRuby on Railsで作られています。
Ruby on Railsのメリット・デメリット
■Ruby on Railsのメリット
——Ruby on Railsを使うメリットはどんなところにあると思いますか? 私が初めてRuby on Railsを使ったときに感じたメリットは、「自分がコードを書かなくてもやりたいことの仕組みを提供してくれる」という点です。 Ruby on Railsはルールにのっとってコードを書いていけば大きく踏み外すことはありません。これを「レールに乗る」という言葉で表現しますが、「Ruby on Rails」の文字どおり、レールに乗れば脱線することなくスピーディーにWebアプリの開発ができるというのがメリットですね。
■Ruby on Railsを使うことのデメリット
——では、Ruby on Railsを使うことのデメリットはなんだと思いますか? 1つのシステムにたくさんのデータやビューを盛り込むことで、動きにくくなってしまう点です。そのため、大規模な組織やシステムにはあまり向いていません。 はじめは小規模で始めたWebサービスでも、ユーザーが増えて規模が大きくなることで、ユーザー登録をするユーザーと、それを管理する管理者ユーザーがWebサービスにログインすることになります。 そうなると、はじめは1つだった「ユーザー」の意味あいが、「サービスを利用するユーザー」と「管理者としてのユーザー」の2つにわかれます。利用者側ユーザーがAという動きをする一方で、管理者ユーザーはBという動きをする。こうして長いコードの中に条件分岐が発生し、処理が複雑になっていきます。 また、さまざまな情報が1つのRailsのシステムに集まることで、管理画面の不具合を直したらユーザー登録システムに影響が出てしまうといった不具合の連鎖が起こります。それを直す時間的コストが大きくなってしまうので、Ruby on Railsは大規模な組織やシステムには向きません。
Ruby on Railsの学習方法は?
■Ruby on Railsは学習環境が充実している
——Ruby on Railsは初心者が学ぶには難しいでしょうか。 解説を読みながら最低限のコードを書くだけで、それなりに動くWebアプリを作ることができるので、初心者にも敷居は低いのではないかと思います。 Ruby on Railsは学習環境が充実しています。Rubyはまつもとゆきひろさんという日本人が開発した言語なだけあって、学習するためのWebサイトや日本語の記事が豊富にありますし、コミュニティも活発です。プログラミングスクールのWeb開発コースでは、Ruby on Railsを取り上げているところもたくさんありますね。 ——学習に役立つおすすめのWebサイトなどはありますか? 『Ruby on Rails チュートリアル』というサイトがあります。Ruby on Railsに入門するための解説がステップバイステップで書かれています。 これまで一切プログラミング言語をさわったことがないという人は、Ruby on Railsを学ぶ前に、プログラミングで何ができるのか、プログラミングの考え方・書き方はどういうものなのかといったところから学ぶと、理解が深まります。
■異業種からのエンジニアを目指すならRuby on Railsがおすすめ
——Ruby on Railsはどんな人におすすめですか? 私の周辺には、営業やマーケターなど異業種からエンジニアを目指す人がたくさんいます。そんな人が最初に取り組みやすく、転職にも結びつきやすいのがRuby on Railsだと思っています。 少人数での開発に向いたRuby on Railsは、スタートアップやベンチャーといった小規模な組織で多く採用されている技術です。そうした企業に就職・転職をしたいと考えている人は、Ruby on Railsを習得するとよいのではないでしょうか。
関連記事を見る
→ プログラミング初心者の悩みを解決!経験豊富なウェブエンジニアが疑問に答えます!
→ フリーランスのSEってどんな仕事? メリットとデメリットをわかりやすく解説
→ 【React Native 入門】スマホアプリ開発のプロが教える「React Native」の学び方
星直史さんのプロフィールを見る
Ruby on Railsについて星直史さんに相談する