すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

Rubyをはじめよう - 手を動かして学ぶ

この記事で出来るようになること

Rubyはあのグルメ口コミサイトで有名な「食べログ」や、エンジニアなら誰もが知っている「GitHub」でも利用されている日本でポピュラーなプログラミング言語です。

Webサービスを作ったり、仕事のルーティン作業を自動化することも可能です。

webサイト

Pikawakaでは、「初学者がつまずきやすい難しい部分」も図を使いながら丁寧に説明するので安心して学べます。また実際に手元で動かして、理解を深めることができます。

それでは、PikawakaのカリキュラムでRubyを学んでいきましょう!

Rubyとは

rubyとは

Rubyとは、日本製のプログラミング言語(コンピュータに指示を伝えるための言語)です。

Rubyの設計思想として「シンプルにコードが書けること」があり、非常に簡潔にコードを記述することが可能です。

日本語のドキュメントも大量に揃って学習環境も充実しているため、初心者でも習得しやすい言語です!

ぴかわかさん
ポイント
  1. Rubyは、プログラミング言語の1つ
  2. 日本製のプログラミング言語なので、他の言語と比べて日本語のドキュメントが多い

Rubyが使用されているWebサービス

Rubyは、さまざまな有名サイトで使用されています。

Webサービスがどんな技術・言語を使って制作されているのかを確認できる「Wappalyzer」で、Rubyが使用されているWebサービスを一部紹介させて頂きます。

1.食べログ

食べログは、日本最大級のグルメの口コミサイトです。

食べログ

2.GitHub

GitHubは、ソフトウェア開発者向けのソースコードを管理するサービスです。

GitHub

3.Pikawaka

実は、PikawakaもRubyを使用しています。

pikawaka

今回紹介したRubyが使われているWebサービスは、ほんの一部です。
他にも多くの有名サイトでRubyが使われています。

ぴっかちゃん

なんでWebサービスは、Rubyを使うところが多いんだろう。。。

Rubyで作られた「Ruby on Rails」を使って、簡単に素早くWebアプリケーションを開発できるようになるからだよ!

ぴかわかさん

Rubyのインストール

Rubyのインストール方法はいくつかあります。
その中でも手元のパソコンに用意することが多いですが、初心者には「最初で最大の壁」と言われるようにWindowsやMacによって設定が異なり、複雑で挫折しやすい作業です。

そのため、Pikawakaのカリキュラムでは、Rubyなどのプログラミング言語や開発に必要なソフトウェアが最初から揃うAWS Cloud9で学んでいきます。

Cloud9は、WindowsやMacに関係なくインターネットに接続さえしていれば、Webブラウザからアクセスして利用できます。

ぴっかちゃん

Cloud9を用意していない方は、「AWS Cloud9の導入」で用意しよう

Cloud9を開いてRubyを確認してみよう

それでは、Cloud9を開いてインストールされているRubyを確認してみましょう。

まずは「ダッシュボードからCloud9の開き方」を参考にCloud9を開き、ターミナルを起動させましょう。

ターミナル起動

続いて、ターミナルで以下のコマンドを実行してください。

ターミナル | Rubyのバージョンを確認する
1
ruby -v

実行すると、画像のようにRubyのバージョンを確認することができます。
※バージョンは一致している必要はありません。

現在のRubyのバージョンを確認

これはCloud9に最初から用意されているRubyであり、すぐに使うことができます。
(画像では、見やすさのためにターミナルを最大化しています。)

ターミナル操作が不安な方は「Cloud9でターミナル操作を学ぼう」を復習しましょう。

ぴかわかさん

IT用語の基礎知識を学ぼう

プログラミングという言葉を聞いたことはあっても、実際の意味はよく分からないという方も多いのではないでしょうか。

Rubyプログラムを動かす前に、「プログラミングの流れ」や「プログラム、プログラミング、プログラミング言語、ソースコード」の用語も一緒に説明していきます。

1.プログラミング

プログラミングとは、プログラムを考えて書くことです。

プログラムとは、「コンピュータに命令する処理の手順を記述したもの」です。

プログラミング

ぴっかちゃん

確かプログラムを書く人のことは「プログラマ」と呼ぶんだよね

2.プログラム(コンピュータプログラム)

コンピュータになにかしてもらいたい時は、命令を与える必要があります。その命令(どのような手順で処理を行うか)を記述したものがプログラムです。

プログラムは、コンピュータへの作業指示書ともいえます。

プログラム

コンピュータは、機械語(0101といった2進数)しか理解することができません。それだと逆に私たちが指示を出すことができなくなってしまいます。

そこで、コンピューターを動かす指示を人間にもわかりやすく書けるようにしたものがRubyなどのプログラミング言語です。

プログラミング言語

ぴっかちゃん

プログラミング言語は、私たちの話す言語とコンピューターの言語の中間に立つ「橋渡し役」だね!

またプログラミング言語で書かれたプログラムは「ソースコード」と呼ばれます。

ソースコード

ポイント
  1. プログラムとは、コンピュータに命令する処理の手順を記述したもの
  2. プログラミング言語とは、コンピュータに指示を伝えるための言語のこと
  3. ソースコードとは、プログラミング言語で書かれたプログラムのこと

3.プログラム実行

プログラム実行

プログラムが実際に動作する際には、ソースコード(プログラミング言語で書かれたプログラム)を機械語に翻訳(解釈)する必要があります。

機械語に翻訳したものを実行することで、コンピュータは命令通りに動いてくれます。

機械語に翻訳

翻訳方法には、「インタプリタ方式」と「コンパイラ方式」があります。

これから学ぶRubyは「インタプリタ方式」の言語です。
インタプリタ方式は、ソースコードの内容を1つずつ機械語に翻訳しながら実行します。

この方式では作成途中のプログラムでも、その行まで実行させることができるので「動作を確認しながらプログラムを作る」ことができます。

Rubyでは、rubyコマンドでインタプリンタを起動し、プログラムを実行することができるよ!

ぴかわかさん
ポイント
  1. ソースコードは、機械語に翻訳する必要がある
  2. 翻訳方法は、「インタプリタ方式」と「コンパイラ方式」がある
  3. Rubyは、逐次翻訳するインタプリタ方式の言語

Rubyプログラムを実行してみよう

それでは、実際にCloud9を使ってRubyプログラムを実行します。

Rubyファイルの作成方法や拡張子を学び、インデント幅の設定をした後にrubyコマンドを使ってプログラムを実行していきます。

1.Rubyのファイルを作ってみよう

まずは、Cloud9のターミナルでtouchコマンド(ファイル作成)を実行し、Rubyのファイルを作っていきます。

以下のコマンドをターミナルで実行してください。

ターミナル(~/environment) | Rubyのファイルを作成する
1
touch sample.rb

以下の動画のように、pikawaka配下にsample.rbが作成されていれば成功です。

rubyファイル作成

Rubyのファイルは、sample.rbのように拡張子をrbにする必要があります。これによってRubyのファイルだと識別することができます。

ぴっかちゃん

sample.rbのsampleの部分を変更しても.rbが付けば、Rubyのファイルと識別されるよ

ファイルの拡張子

ファイルには、ファイルの種類を識別する拡張子があります。
拡張子は、ファイル名の末尾に.で区切られた文字列です。

拡張子

HTMLのファイルはファイル名.html、CSSのファイルはファイル名.css、Rubyのファイルはファイル名.rbのようにファイルの種類によって拡張子を使い分けます。

ポイント

Rubyのファイルを作るときは、拡張子をrbにすること

2.インデント幅を変更しよう

ソースコードにおけるインデントとは、プログラムの構造を見やすくするために行頭に同じ幅の空白を入れることです。

例えば、HTMLではインデントありとインデントなしは、以下のようになります。

HTML | インデントあり
1
2
3
4
5
<ol>
  <li>リスト1</li>
  <li>リスト2</li>
  <li>リスト3</li>
</ol>
HTML | インデントなし
1
2
3
4
5
<ol>
<li>リスト1</li>
<li>リスト2</li>
<li>リスト3</li>
</ol>

インデントありの方がHTMLの開始・閉じタグや構造を素早く把握することができますね。
Rubyでプログラムを書くときも、インデントは使用します。

Cloud9では、tabキーを使うとデフォルトで設定される「半角スペース4つ」が挿入されまが、Rubyのコーディング規約に合わせて「半角スペース2つ」に変更しておきます。

インデントは、スペースキーではなくtabキーを使う方が楽だよ!

ぴかわかさん

Cloud9の設定画面で変更しよう

Cloud9の設定画面は、以下の動画のように右上の歯車をクリックして開きましょう。

設定画面を開く

続いて、以下のように設定画面の「Project Settings > Code Editor > Soft Tabs」を4から2へ変更します。

インデント幅を変更

これでインデント幅を変更することができました。

ポイント
  1. Rubyのインデント幅は、「半角スペース2つ」にすること
  2. インデントは、スペースキーではなくtabキーを使う

3.Rubyプログラムを実行してみよう

それでは、Rubyでプログラムを書いて処理を実行してみましょう。

プログラムを書いてみよう

まずは、以下の内容を右にあるアイコンをクリックしてコピーし、sample.rbに貼り付けてください。

※この時点では、タイプミスを減らすために手打ちではなくコピーして貼り付けます。

sample.rb
1
puts "Hello"

動画のようにsample.rbにコピー&ペーストします。また「自動保存の設定」をしているので、ファイルの保存は行いません。

sample.rbを編集する

後のカリキュラムで説明しますが、putsは指定した値を出力できるメソッドです。つまりputs "Hello"はHelloを出力させるという意味です。

続いて、rubyコマンドを使ってプログラムを実行します。

rubyコマンド

rubyコマンドでは、インタプリンタを起動し、プログラムを実行することができます。

Rubyで書いたプログラムを実行するには、以下のように実行したいファイルを指定します。

ターミナル | rubyコマンドの基本構文
1
2
ruby 実行したいRubyのファイル
# ruby ファイル名.rb

sample.rbのプログラムを実行しよう

それでは、sample.rbにRubyで書いたプログラムを実行してみましょう。
以下のコマンドをターミナルで実行してください。

ターミナル(~/environment) | rubyコマンドでプログラムを実行する
1
ruby sample.rb

実行すると、動画のように「Hello」とターミナルに出力されています。

実行結果

sample.rbに書いたputs "Hello"は「Helloを出力させる」という意味だったので、プログラム通りに実行することができましたね。

ポイント
  1. Rubyで書いたプログラムを実行するには、rubyコマンドを使う
  2. rubyコマンドでは、実行したいRubyのファイルを指定する
  3. 指定はruby 実行したいRubyのファイルで記述する

コメントアウトの場合

コメントアウトとは、記号(Rubyは#)を使ってソースコード内の特定の箇所をコメント化することです。コメント化した箇所は、プログラムとして解釈・実行されません。

まずは、puts "Hello"の前に#を入れてコメントアウトしましょう。

sample.rb | コメントアウトする
1
# puts "Hello"

続いて、以下のコマンドをターミナルで実行してください。

ターミナル(~/environment) | rubyコマンドでプログラムを実行する
1
ruby sample.rb

動画のようにコメントアウトしたputs "Hello"は実行されず、無視されますね。

コメントアウト

コメントアウトは、後で見返すためのメモやエラーの原因を探すときにも使われます。

起こりやすいエラーを把握しよう

sample.rbputs "Hello"を記述する際には、手打ちではなくコピー&ペーストしました。(プログラムを書いてみようの箇所)

それは、起こりやすいエラーについてまだ学んでいない状態だったからです。

手打ちした場合に起こりやすいエラーとして「全角スペースの混入」や「スペルミス」があります。このエラーを把握することで、気をつけてプログラムを書くことができます。

全角スペースによるエラー

Rubyでは、全角スペースがソースコード内にあると、プログラムを実行した時にエラーが発生します。

以下の画像のようにputs "Hello"の後に全角スペースを入れてみましょう。
※画像では、全角スペースをわかりやすくするために赤色にしています。

全角スペース

続いて、以下のコマンドでプログラムを実行してみましょう。

ターミナル(~/environment) | rubyコマンドでプログラムを実行する
1
ruby sample.rb

コマンドを実行すると、動画のようにsyntax errorという構文エラーが起きます。

エラー1

syntax errorは、プログラムの文法や構文が間違っている時に発生するエラーです。

ターミナルに出力されるエラー内容を確認すると、以下のように全角スペースがあるということを教えてくれていますね。

エラー内容1

エラーの見方は、Rubyの基本構文を学んだ後の方が理解しやすいので、今は全角スペースが入るとエラーが起きることを覚えておこう!

ぴかわかさん

半角スペースの挙動

それでは、puts "Hello"の後に全角スペースではなく、半角スペースを入れた場合はどのような結果になるでしょうか。

以下の画像のように、全角スペースを半角スペースにしてください。

半角スペースの場合

続いて、以下のコマンドでプログラムを実行してみましょう。

ターミナル(~/environment) | rubyコマンドでプログラムを実行する
1
ruby sample.rb

すると動画のように、半角スペースだとエラーが起こらずに「Hello」と出力されます。

半角スペースで実行した場合

このようにRubyでは半角スペースではなく全角スペースをソースコードに混入させると、エラーが起こります。

全角スペースと半角スペースを可視化しよう

全角スペースには気をつけたいですが、半角スペースと見分けるのは大変ですよね。
Cloud9では「Show Invisibles」を有効にすることで、スペースや改行などを可視化できます。

それでは、動画のようにエディタの右下にある「歯車」>「Show Invisibles」をクリックしてチェックを入れましょう。

設定

「Show Invisibles」にチェックを入れると、以下のように印(・)がつきます。
※画像では、全角・半角スペースをわかりやすくするために赤色にしています。

全角・半角スペース

ポイント

ソースコード内に全角スペースが入ると、プログラム実行時にエラーが発生するので気をつけよう!

スペルミスによるエラー

スペルミスをしてしまうと、プログラム実行時にエラーが発生します。

動画のようにputsuを削除して、ptsに変更してみましょう。

スペルミス

続いて、以下のコマンドでプログラムを実行してみましょう。

ターミナル(~/environment) | rubyコマンドでプログラムを実行する
1
ruby sample.rb

コマンドを実行すると、動画のようにNoMethodErrorというエラーが起きます。

スペルミスによるエラー

NoMethodErrorは、メソッドが存在しない場合に起こります。つまりptsというメソッドは存在しないという意味です。

エラー内容を確認すると、putsであることを教えてくれていますね。

エラー内容2

今後、カリキュラム通りにプログラムを記述してエラーが発生した場合は、まず打ち間違いによるスペルミスを疑いましょう。

他にも全角入力もエラーの原因になるので、プログラムを書くときは半角入力になっているか確認しよう!

ぴかわかさん

さいごに

この章では、Rubyが使われているWebサービスを知り、プログラミングやプログラムなどの用語について整理することができました。

また、Rubyで書いたプログラムの実行の仕方やよく起こりやすいエラーについても手を動かしながら学べましたね。

この記事のまとめ

  • Rubyとは、日本製のプログラミング言語です。
  • ファイルの拡張子は、rbを使います。
  • rubyコマンドで、インタプリタを起動しプログラムを実行できます。