Rubyはあのグルメ口コミサイトで有名な「食べログ」や、エンジニアなら誰もが知っている「GitHub」でも利用されている日本でポピュラーなプログラミング言語です。
Webサービスを作ったり、仕事のルーティン作業を自動化することも可能です。
Pikawakaでは、「初学者がつまずきやすい難しい部分」も図を使いながら丁寧に説明するので安心して学べます。また実際に手元で動かして、理解を深めることができます。
それでは、PikawakaのカリキュラムでRubyを学んでいきましょう!
Rubyとは
Rubyとは、日本製のプログラミング言語(コンピュータに指示を伝えるための言語)です。
Rubyの設計思想として「シンプルにコードが書けること」があり、非常に簡潔にコードを記述することが可能です。
日本語のドキュメントも大量に揃って学習環境も充実しているため、初心者でも習得しやすい言語です!
Rubyが使用されているWebサービス
Rubyは、さまざまな有名サイトで使用されています。
Webサービスがどんな技術・言語を使って制作されているのかを確認できる「Wappalyzer」で、Rubyが使用されているWebサービスを一部紹介させて頂きます。
1.食べログ
食べログは、日本最大級のグルメの口コミサイトです。
2.GitHub
GitHubは、ソフトウェア開発者向けのソースコードを管理するサービスです。
3.Pikawaka
実は、PikawakaもRubyを使用しています。
今回紹介した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を開き、ターミナルを起動させましょう。
続いて、ターミナルで以下のコマンドを実行してください。
1
ruby -v
実行すると、画像のようにRubyのバージョンを確認することができます。
※バージョンは一致している必要はありません。
これはCloud9に最初から用意されているRubyであり、すぐに使うことができます。
(画像では、見やすさのためにターミナルを最大化しています。)
ターミナル操作が不安な方は「Cloud9でターミナル操作を学ぼう」を復習しましょう。
IT用語の基礎知識を学ぼう
プログラミングという言葉を聞いたことはあっても、実際の意味はよく分からないという方も多いのではないでしょうか。
Rubyプログラムを動かす前に、「プログラミングの流れ」や「プログラム、プログラミング、プログラミング言語、ソースコード」の用語も一緒に説明していきます。
1.プログラミング
プログラミングとは、プログラムを考えて書くことです。
プログラムとは、「コンピュータに命令する処理の手順を記述したもの」です。
確かプログラムを書く人のことは「プログラマ」と呼ぶんだよね
2.プログラム(コンピュータプログラム)
コンピュータになにかしてもらいたい時は、命令を与える必要があります。その命令(どのような手順で処理を行うか)を記述したものがプログラムです。
プログラムは、コンピュータへの作業指示書ともいえます。
コンピュータは、機械語(0101といった2進数)しか理解することができません。それだと逆に私たちが指示を出すことができなくなってしまいます。
そこで、コンピューターを動かす指示を人間にもわかりやすく書けるようにしたものがRubyなどのプログラミング言語です。
プログラミング言語は、私たちの話す言語とコンピューターの言語の中間に立つ「橋渡し役」だね!
またプログラミング言語で書かれたプログラムは「ソースコード」と呼ばれます。
3.プログラム実行
プログラムが実際に動作する際には、ソースコード(プログラミング言語で書かれたプログラム)を機械語に翻訳(解釈)する必要があります。
機械語に翻訳したものを実行することで、コンピュータは命令通りに動いてくれます。
翻訳方法には、「インタプリタ方式」と「コンパイラ方式」があります。
これから学ぶRubyは「インタプリタ方式」の言語です。
インタプリタ方式は、ソースコードの内容を1つずつ機械語に翻訳しながら実行します。
この方式では作成途中のプログラムでも、その行まで実行させることができるので「動作を確認しながらプログラムを作る」ことができます。
Rubyでは、rubyコマンドでインタプリンタを起動し、プログラムを実行することができるよ!
Rubyプログラムを実行してみよう
それでは、実際にCloud9を使ってRubyプログラムを実行します。
Rubyファイルの作成方法や拡張子を学び、インデント幅の設定をした後にrubyコマンドを使ってプログラムを実行していきます。
1.Rubyのファイルを作ってみよう
まずは、Cloud9のターミナルでtouchコマンド(ファイル作成)を実行し、Rubyのファイルを作っていきます。
以下のコマンドをターミナルで実行してください。
1
touch sample.rb
以下の動画のように、pikawaka
配下にsample.rb
が作成されていれば成功です。
Rubyのファイルは、sample.rb
のように拡張子をrb
にする必要があります。これによってRubyのファイルだと識別することができます。
sample.rbのsampleの部分を変更しても.rb
が付けば、Rubyのファイルと識別されるよ
ファイルの拡張子
ファイルには、ファイルの種類を識別する拡張子があります。
拡張子は、ファイル名の末尾に.
で区切られた文字列です。
HTMLのファイルはファイル名.html
、CSSのファイルはファイル名.css
、Rubyのファイルはファイル名.rb
のようにファイルの種類によって拡張子を使い分けます。
2.インデント幅を変更しよう
ソースコードにおけるインデントとは、プログラムの構造を見やすくするために行頭に同じ幅の空白を入れることです。
例えば、HTMLではインデントありとインデントなしは、以下のようになります。
1
2
3
4
5
<ol>
<li>リスト1</li>
<li>リスト2</li>
<li>リスト3</li>
</ol>
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へ変更します。
これでインデント幅を変更することができました。
3.Rubyプログラムを実行してみよう
それでは、Rubyでプログラムを書いて処理を実行してみましょう。
プログラムを書いてみよう
まずは、以下の内容を右にあるアイコンをクリックしてコピーし、sample.rb
に貼り付けてください。
※この時点では、タイプミスを減らすために手打ちではなくコピーして貼り付けます。
1
puts "Hello"
動画のようにsample.rb
にコピー&ペーストします。また「自動保存の設定」をしているので、ファイルの保存は行いません。
後のカリキュラムで説明しますが、puts
は指定した値を出力できるメソッドです。つまりputs "Hello"
はHelloを出力させるという意味です。
続いて、rubyコマンドを使ってプログラムを実行します。
rubyコマンド
rubyコマンドでは、インタプリンタを起動し、プログラムを実行することができます。
Rubyで書いたプログラムを実行するには、以下のように実行したいファイルを指定します。
1
2
ruby 実行したいRubyのファイル
# ruby ファイル名.rb
sample.rbのプログラムを実行しよう
それでは、sample.rb
にRubyで書いたプログラムを実行してみましょう。
以下のコマンドをターミナルで実行してください。
1
ruby sample.rb
実行すると、動画のように「Hello」とターミナルに出力されています。
sample.rb
に書いたputs "Hello"
は「Helloを出力させる」という意味だったので、プログラム通りに実行することができましたね。
コメントアウトの場合
コメントアウトとは、記号(Rubyは#
)を使ってソースコード内の特定の箇所をコメント化することです。コメント化した箇所は、プログラムとして解釈・実行されません。
まずは、puts "Hello"
の前に#
を入れてコメントアウトしましょう。
1
# puts "Hello"
続いて、以下のコマンドをターミナルで実行してください。
1
ruby sample.rb
動画のようにコメントアウトしたputs "Hello"
は実行されず、無視されますね。
コメントアウトは、後で見返すためのメモやエラーの原因を探すときにも使われます。
起こりやすいエラーを把握しよう
sample.rb
にputs "Hello"
を記述する際には、手打ちではなくコピー&ペーストしました。(プログラムを書いてみようの箇所)
それは、起こりやすいエラーについてまだ学んでいない状態だったからです。
手打ちした場合に起こりやすいエラーとして「全角スペースの混入」や「スペルミス」があります。このエラーを把握することで、気をつけてプログラムを書くことができます。
全角スペースによるエラー
Rubyでは、全角スペースがソースコード内にあると、プログラムを実行した時にエラーが発生します。
以下の画像のようにputs "Hello"
の後に全角スペースを入れてみましょう。
※画像では、全角スペースをわかりやすくするために赤色にしています。
続いて、以下のコマンドでプログラムを実行してみましょう。
1
ruby sample.rb
コマンドを実行すると、動画のようにsyntax error
という構文エラーが起きます。
syntax error
は、プログラムの文法や構文が間違っている時に発生するエラーです。
ターミナルに出力されるエラー内容を確認すると、以下のように全角スペースがあるということを教えてくれていますね。
エラーの見方は、Rubyの基本構文を学んだ後の方が理解しやすいので、今は全角スペースが入るとエラーが起きることを覚えておこう!
半角スペースの挙動
それでは、puts "Hello"
の後に全角スペースではなく、半角スペースを入れた場合はどのような結果になるでしょうか。
以下の画像のように、全角スペースを半角スペースにしてください。
続いて、以下のコマンドでプログラムを実行してみましょう。
1
ruby sample.rb
すると動画のように、半角スペースだとエラーが起こらずに「Hello」と出力されます。
このようにRubyでは半角スペースではなく全角スペースをソースコードに混入させると、エラーが起こります。
全角スペースと半角スペースを可視化しよう
全角スペースには気をつけたいですが、半角スペースと見分けるのは大変ですよね。
Cloud9では「Show Invisibles」を有効にすることで、スペースや改行などを可視化できます。
それでは、動画のようにエディタの右下にある「歯車」>「Show Invisibles」をクリックしてチェックを入れましょう。
「Show Invisibles」にチェックを入れると、以下のように印(・)がつきます。
※画像では、全角・半角スペースをわかりやすくするために赤色にしています。
スペルミスによるエラー
スペルミスをしてしまうと、プログラム実行時にエラーが発生します。
動画のようにputs
のu
を削除して、pts
に変更してみましょう。
続いて、以下のコマンドでプログラムを実行してみましょう。
1
ruby sample.rb
コマンドを実行すると、動画のようにNoMethodError
というエラーが起きます。
NoMethodError
は、メソッドが存在しない場合に起こります。つまりpts
というメソッドは存在しないという意味です。
エラー内容を確認すると、puts
であることを教えてくれていますね。
今後、カリキュラム通りにプログラムを記述してエラーが発生した場合は、まず打ち間違いによるスペルミスを疑いましょう。
他にも全角入力もエラーの原因になるので、プログラムを書くときは半角入力になっているか確認しよう!
さいごに
この章では、Rubyが使われているWebサービスを知り、プログラミングやプログラムなどの用語について整理することができました。
また、Rubyで書いたプログラムの実行の仕方やよく起こりやすいエラーについても手を動かしながら学べましたね。
この記事のまとめ
- Rubyとは、日本製のプログラミング言語です。
- ファイルの拡張子は、
rb
を使います。 - rubyコマンドで、インタプリタを起動しプログラムを実行できます。
この記事で学んだことをTwitterに投稿して、アウトプットしよう!
Twitterの投稿画面に遷移します