20210406_アウトプット(Ruby)

アウトプット画像

やったこと

  • 志望動機をじっくり考える(4/5)

  • ゼロからわかるRuby超入門の続き(9:モジュール)

1%の成長

  • モジュールについて理解が深まった
  • 企業の求めていることは何かと、自分が貢献できることについて考えている(途中)

新しく学んだこと

モジュール

🤔私:モジュールって何?
🥸先生:メソッドを共同で利用できるようにすることだよ。

(1)モジュールを作る

module モジュール名
end

(2)メソッドを定義する

module モジュール名
 def モジュールのメソッド
  foo
 end
end

(3)クラスで使えるようにする

class Drink
  include モジュール名
 # 省略 クラス内の定義
end

⚠️インスタンメソッドの場合はincludeだけど、クラスメソッドにしたい場合はextendにする。

上記の3つの手順でモジュールは活用する💡

🤔私:クラスと何が違うの?違いがよくわからない。
🥸先生:下記のようなポイントがあるよ。モジュールは主にメソッドを部品として使うことが目的なんだ。

モジュールのポイント
インスタンスを作ることは出来ない(引数や戻り値はOK!)
複数のクラスで何度も部品(メソッド)として使える
クラス継承のポイントである「子は親の一部です」が通じなくてもモジュールは使える
Enumerable(イニューメラブル)モジュール
  • インクルードするクラスには each が定義されていると、便利なイミューメラブルメソッドを使えるよ。

😊私:つまり、自分でクラスを定義した時に、eachメソッドを定義すると、enumerableをインクルードしてメソッド群を使えるってことだね。

docs.ruby-lang.org



  感想

  • クラスを理解した後に、モジュールの概念をもう一度学んだら、違いがより明確に理解できた。モジュールはメソッドのパーツだったのか。(インスタンスを生成できない、という意味がようやくスッキリ。やっぱりクラスがひっかかっていたのか。)
  • 日頃の勉強と同じくらい、行きたい企業について向き合うことも大事だと思っていて、時間の使い分けが難しい。ついつい企業のこと調べているとワクワクしてきて時間が経ってしまう。
  • あと寝不足になるとドライアイが辛くなる😭早めに寝よう💦