Ruby入門 - サンプルコードとあわせてRailsなども解説
Rubyの学習をするにあたって、入門者向けにRubyのインストールや開発環境構築から、簡単なサンプルコードの解説と練習問題までざっくりと説明していきます。
Rubyの学習をするにあたって、入門者向けにRubyのインストールや開発環境構築から、簡単なサンプルコードの解説と練習問題までざっくりと説明していきます。
スキルアップ
2020/11/25 UP
- プログラミング
- SE資格・スキル
- 入門
- Ruby
Rubyは、Webアプリケーション開発の現場で多く採用されている人気のスクリプト言語です。Webアプリケーション開発に携わるエンジニアの多くが習得していて、Webエンジニアを目指す人には必須とも言える言語になっています。
今回はRubyの学習をするにあたって、入門者向けにRubyのインストールや開発環境構築から、簡単なサンプルコードの解説と練習問題までざっくりと説明していきます。おすすめの学習方法も紹介するので、自分のレベルに合わせて学び方を検討してください。
【入門者向け】Rubyとは?
Rubyは、1995年日本の開発者(まつもとゆきひろ氏)によって開発された、比較的新しいプログラミング言語です。国産のプログラミング言語としては初めて国際電気標準会議(IEC)で国際規格に認証され、主要言語の中でも高いシェアを持つ人気言語の一つです。
Rubyはオブジェクト指向のスクリプト言語に属し、Web開発の分野で主に活用されています。整数や文字列を含む全てのデータ型がオブジェクトになっている、純粋なオブジェクト指向です。言語の開発理念である「ストレスなく楽しいこと」と相まって、プログラミングに初めて挑戦する人でもオブジェクト指向言語という概念を理解しやすくなっています。
近年、WebアプリケーションフレームワークRuby on Railsに利用されたことで、急速に広まり、Perl、 PHP、 Pythonと並んで、Webサービス開発でシェアが大きく拡大したプログラミング言語の一つとなりました。
大手SNSサイトやレシピサイトなど、日常生活でよく利用する身近なWebサービスでもRubyは活用されています。
Rubyの特徴や学習するメリットを3つ解説
Rubyはその開発理念から、他の言語とは異なる特徴や学習するメリットがあります。ここでは、他の言語とどのような点において異なるのか、比較しながら解説していきます。
シンプルで分かりやすい
開発者であるまつもとゆきひろ氏は、「言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである 」と明言しています。そのため、他言語と比較すると構文がシンプルで分かりやすく、Rubyを未学習の状態であっても、なにが書いてあるのか直観的に理解できるようになっています。
コードの可読性の高さは、プログラミング初心者にとって大切な要素です。ある程度言語を習得すれば、既存のコードを見ながら自分で学べるようになるので、他言語と比較して学習のハードルは格段に低いと言えます。
気軽に実行できる
コンパイル不要なスクリプト言語のため、コードを書いてすぐに動作を確認することができます。すぐに開発環境を整えられることや、テキストエディタでもコーディングできること、後述するRuby on Railsの導入の簡便さなどもRubyのメリットです。プログラミングを学習しようと思い立ってから、実際にコードを実行するまでの時間が最小限で済みます。
学習を始めたばかりの初心者でも、1時間程度でサンプルコードを実行できるようになるため、勉強を始める段階で時間がかからないことから、挫折しにくいのもメリットと言えるでしょう。
日本で開発された言語
日本で開発された言語であるため、日本語で書かれたドキュメントが充実しています。日本人の開発者人口も多く、初心者からプロまでコミュニティが活発なので、英語コミュニティ中心の他言語のように、情報収集で困ることもありません。
日本語の丁寧な解説サイトやサンプルコードの紹介もたくさんあるので、オンラインにあるドキュメントだけでも、安心して学習に臨めるでしょう。
Ruby on Railsの利用でWeb開発効率がUP
Ruby on RailsとはRuby専用のフレームワークで、2004年にデンマークのプログラマであるデイヴィッド・ハイネマイヤー・ハンソン(通称DHH)氏によって開発されました。
Webアプリケーションの開発をする時に開発の土台となるフレームワークを使うことで、よく使用される処理をコーディングする必要がなくなるため、必要最低限のプログラミングでWebサービスを構築できます。
Ruby on Railsを採用することで開発期間の短縮や機能改修工数の圧縮が可能なため、Webアプリケーション開発では非常に人気の高いフレームワークの一つとなっています。そのためWebアプリケーション開発では、Ruby on Railsが扱えることを条件とした求人も多く、Rubyを使うエンジニアにとってはRuby on Railsは必修と言えるフレームワークです。
Ruby初心者はまずRuby on Railsを勉強しておけば、未経験からの採用でも実務ですぐに役に立てる可能性があります。
非常に便利なRuby on Railsですが、一方で他のフレームワークと競合することもあります。そのため、開発の要件によっては使用に注意が必要な場合や、そもそも使用できない場合もあります。このようなケースを切り分けるためにも、Ruby on Railsの知識は身に付けておくほうがよいでしょう。
Rubyの開発環境構築 - ダウンロードとインストール
Rubyの学習を始めるにあたって、必須となる開発環境構築手順を説明します。OSによってダウンロードするファイルなどが異なるため、自身のOSにあった導入方法を選択してください。なお、今回はWindowsでのインストールを中心にご紹介します。
Rubyは、公式サイトからダウンロードが可能です。
Windows環境にRubyをインストールする場合は、RubyInstallerを使用します。
ダウンロードしたインストールファイルを実行し、画面の指示に従ってインストールを進めます。
以下の画面が表示されればインストールは終了です。
正しくインストールされた確認するため、コマンドプロンプトを起動し、以下のコマンドを実行してください。
ruby -v
インストールしたバージョンと同じものが表示されれば、環境の構築は完了です。
入門者のためのRubyの基本文法
ここからは、Rubyのコードを記述するために覚えておきたい基本文法を紹介します。
Rubyは可読性が高く、シンプルな構文構造をしています。ある程度英語の読解力があれば、英文を読み解くようにコードが読めるのが特徴です。
コードを記述する上で最低限押さえておくべきポイントは、データ型、変数と演算子、クラスとメソッド、プロパティと、頻繁に使用する条件分岐とループの構文です。
それでは実際に一つずつ見ていきましょう。
データ型
データ型とは、データをプログラムが処理する方法をコンピュータに指示するためのものです。そのデータを使用してなにができるのか、また、実行可能な操作はなんなのかを決定します。
以下はRubyの代表的なデータ型です。Ruby on Rails4で使用できるデータ型は14種類あり、さらにPostgreSQLを使用している場合はIPアドレスなどを格納するデータ型など7種類が追加で使用できます。
Int |
整数 |
---|---|
Float |
浮動少数点 |
Boolean |
true /false |
string |
文字列 |
変数と演算子
変数とは数字や文字などのデータをプログラムで処理するために、名前をつけて一時的に格納するものです。演算子とは、四則演算を始めとした数式などの処理を行う際に使用する記号を指します。
以下はRubyで使用される代表的な演算子です。
数値 |
+ - * / % ** |
---|---|
文字列 |
+ << |
ビット |
~ & | ^ << >> [] |
代入 |
= += -= *= /= %= **= &= |= ^= <<= >>= |
比較 |
== != < > <= >= <=> === |
論理 |
! && || not and or |
クラスとメソッド、プロパティ
Rubyにおいて、クラスとはインスタンスを作成する際のオブジェクト指向の指示を出す部分です。このクラスにそってインスタンスを作成し、そのインスタンスで処理を行います。
メソッドとは他の言語における関数と同じ働きをする要素です。Rubyの場合、最初からプログラミング言語のコアに標準で組み込まれているメソッドをカーネルメソッド、ユーザーが自分で定義したメソッドは単にメソッドと呼ぶことが多くあります。
また、プロパティはオブジェクトに紐付いたデータを指しています。
サンプルではTestClassでクラスを宣言し、testMethodというメソッドを作成しています。
また、testMethodの引数として testData というプロパティを指定しています。
サンプルコード
class TestClass def testMethod(testData) end end
条件分岐
他の言語と同様に、一般的な if 文とほぼ同じ if else end で構成されています。
以下のサンプルでは 変数strの中身が TEST の場合とそうでない場合で条件を分岐し、異なる処理をしています。
サンプルコード
if str == "TEST1" then puts "This is Test1" elsif str == "TEST2" then puts "This is TEST2" else puts "Error" end
ループ
if同様に一般的な構文です。while do end で構成されます。
以下のサンプルは num が5以下である間は現在のnumの値を出力する処理をループして行います。また、 to_s はintである num を文字列に変換する処理です。
サンプルコード
num = 0 while num < 5 do puts "Number is: " + num.to_s num = num + 1 end
Rubyの入門用サンプルコードを実行してみよう
開発環境と基礎的な文法を理解したところで、実際にサンプルコードを実行してみましょう。ここでは Hello Worldと、if whileを使ったサンプルを紹介します。
Rubyのファイルを実行するには、サンプルコードをテキストファイルにコピーペーストして、任意の名前をつけ、拡張子を.rbに変更します。次に、コマンドプロンプトで以下のコマンドを実行します。ファイル名は実行したいファイルのものに変更してください。
Ruby hello.rb
まずはRubyで Hello Worldを書いてみよう
文字列 “Hello World”を、出力する命令文であるputsを使用して出力します。
サンプルコード
puts "Hello World"
上記のサンプルコードをテキストファイルに記載し、hello.rbのファイル名で保存します。
Windowsならコマンドプロンプト、Macならターミナルを開き、Ruby hello.rbのコマンドで実行すると、以下のようにHello Worldと表示されました。
1行でHello Worldを表示するコードのように、Rubyは他の言語と比較してシンプルで分かりやすい構文構造になっています。
if と while を組み合わせたサンプルコード
続いてループと条件分岐を使った少し複雑なサンプルコードを実行してみましょう。
サンプルコード
num = 0 while num < 10 do if num == 0 then puts num.to_s + " is Zero" elsif num > 5 then puts num.to_s + " is over 5" else puts num.to_s + " is under 5" end num = num + 1 end
このサンプルでは、numが10未満の場合は処理をループさせるwhileの中で、if 文で条件を分岐しています。numが 0の場合、5以下の場合、それ以外の場合の3つのパターンで条件を判断し、異なる内容を出力します。
サンプルコードをテキストファイルにコピーペーストして、if.rbと名前を付けて保存し、コマンドプロンプトで実行してみましょう。
ifで条件を分岐したとおり、0、5以下、それ以外の場合の3つのパターンで異なる出力が処理されました。
このようにifとwhileを組み合わせることによって、より複雑な条件を分岐することが可能です。
Rubyのおすすめ学習方法
Rubyは日本発祥のプログラミング言語なので、公式サイトも日本語に完全対応しているほか、日本語の学習コンテンツが充実しています。日本語のコミュニティも活発で、他言語よりも最新情報をキャッチアップしやすいのも国産のプログラミング言語であるRubyならではと言えるでしょう。
学習に適した書籍や参考書はもちろん、無料で受講や視聴が可能なe-ラーニングやセミナー動画が数多く公開されているので、活用することで独学でもある程度の水準までスキルアップすることが可能です。
また、前述の通り環境構築が容易であるため、独学しながら実際に手を動かしてコーディングを学ぶことで、実践的な技術が身につきやすく、ステップアップが容易になります。
直観的なプログラミングが可能であるRubyを学習すれば、アプリや簡単なWebサービスなどを作成しながら、開発全体の知識を身に付けられるでしょう。
短期間で効率よく学習したい場合は、独学とスクールの受講を併用して進めるのがおすすめです。RubyはWebアプリケーション開発で人気の高い言語であるため、スクールにも豊富な講座が設定されています。
プログラミング入門者にもおすすめなRubyに挑戦しよう
Rubyはシンプルで分かりやすい構文構造が特徴で、プログラミングに初めて触れる初心者でも習得しやすい言語でありながら、実用性も兼ね備えていて人気が伸び続けています。特にRuby on Railsの需要は高く、求人の募集内容でも指定されることが多い分野です。
Web開発に関わるエンジニアを目指したい場合、Rubyを習得すれば未経験からでもキャリアパスを描くことができるでしょう。プログラミング入門者でも学習しやすい環境が整っているRubyに挑戦し、エンジニアを目指してみてはいかがでしょうか。