Ruby on Railsとは?何ができるかをわかりやすく解説

Ruby on Railsとは?何ができるかをわかりやすく解説

Ruby on Railsは、Webサービス開発の負担を減らすフレームワークの1つです。Ruby on Railsとは何か、どんなサービスを作ることができるのか。Webサービス企業のCTOを務める星直史さんがわかりやすく解説します。


星 直史さんのプロフィール

https://www.timeticket.jp/hosts/naoshi.hoshi?utm_source=ttl&utm_medium=195&utm_campaign=experiences_6

新卒入社した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について星直史さんに相談する

関連するキーワード


Ruby on Rails とは

関連する投稿


インフラエンジニアとは?仕事内容やキャリアパスをわかりやすく解説

インフラエンジニアとは?仕事内容やキャリアパスをわかりやすく解説

IT関係の仕事として「システムエンジニア」や「プログラマー」はよく耳にしますが、「インフラエンジニア」はあまり耳慣れない言葉かもしれません。ITの基盤を作る縁の下の力持ち、インフラエンジニアとは? 現役のインフラエンジニアで、キャリアデザイナーも務める岡田亜希子さんに、インフラエンジニアの仕事やキャリアパスについて、わかりやすく解説してもらいました。


コーディングとは?初心者が習得すべきスキルや学習法を紹介

コーディングとは?初心者が習得すべきスキルや学習法を紹介

ITに関する職種には「Webデザイナー」や「プログラマー」、「コーダー」などさまざまあります。このうち、「コーダー」とはコーディングをする人を指します。では、コーディングとは何でしょうか。コーディングをするためには、どんなスキルを身につければよいのでしょうか。エンジニアの「ゆう」さんがわかりやすく解説します。


最新の投稿


DXとは? デジタルトランスフォーメーションの現状と課題をわかりやすく解説

DXとは? デジタルトランスフォーメーションの現状と課題をわかりやすく解説

近年、DX(デジタルトランスフォーメーション)という言葉を目にすることが多くなりました。DXとは何か。DXを実現するにはどんな取り組みをすればいいのか。フリーランスエンジニアとしてクライアント企業のDX支援に取り組む松坂匠記さんに話を聞きました。


Pythonとは?いま大人気のプログラミング言語をわかりやすく解説

Pythonとは?いま大人気のプログラミング言語をわかりやすく解説

機械学習やデータ分析といった分野で活用されることが多いプログラミング言語、Python。調査会社が行う人気プログラミング言語ランキングでは近年、常に上位にランクインしている注目の言語です。Pythonとは、どんな言語なのでしょうか。なぜ人気を集めているのでしょうか。フリーランスのデータサイエンティストとして活動するRさんが、Pythonについてわかりやすく解説します。


いま注目の「マインドフルネス」とは?メリットや実践方法をわかりやすく解説

いま注目の「マインドフルネス」とは?メリットや実践方法をわかりやすく解説

仕事や家事といった日々のタスクに追われたり、インターネットから得られる膨大な情報に翻弄されたり。現代社会に生きる私たちは日々、さまざまなストレスにさらされています。そんななか、「マインドフルネス」に注目が集まっています。マインドフルネスは、ストレスを軽減し、心を整える効果があるとされるからです。そもそも、マインドフルネスとはどういうものなのか、どのように実践するのか。心理カウンセラーの成澤けいさんに詳しく聞きました。


英会話が楽しくなる!英語のスピーキング力がアップする勉強法

英会話が楽しくなる!英語のスピーキング力がアップする勉強法

英語の4つの技能の中でも、日本人はスピーキングが特に苦手だと言われています。「英語を読む・書く・聞くはできるけど、話すのが苦手」「英会話で言いたいことが話せない」。英語のスピーキング力を高めるには、どうしたらいいのでしょうか。英語講師の「ゆうちゃん」が、英語のスピーキング力をアップさせる勉強法を解説します。


英語がスラスラ読めるようになる!英語のリーディング力がアップする勉強法を解説

英語がスラスラ読めるようになる!英語のリーディング力がアップする勉強法を解説

「海外の映画俳優やミュージシャンのSNSをフォローしてみたけれど、英語で何が書かれているかわからない」。こんな経験はありませんか?英語のリーディング力を高めれば、海外のWebサイトやSNSが読めるようになります。英語講師の「ゆうちゃん」に、英語のリーディング力を高めるための勉強法を解説してもらいました。