📕

【Ruby】組み込みライブラリとKernelモジュール

2022/11/20に公開

記事の概要

Rubyにデフォルトで用意されているタイトルの内容について確認する

この記事を書く理由

Rubyをちゃんと学ばないまま実務でRailsを触ってきた自分が最近これらを学び、もっと早くから知っていたかった!と感じたから

組み込みライブラリとgem(外部ライブラリ)

RubyやRailsを触っているとよく出てくるString,Integer,Array,hashなどは、組み込みライブラリとして、Rubyに始めから用意されている。(公式リファレンスの組み込みライブラリ一覧

それに対し、gemというものもある。
開発を行っていると、こちらもよく出てくると思うが(rails,rspec,deviseなど)、これらはgemと呼ばれているが、わかりやすく言うならgemは「外部ライブラリ」である。

組み込みライブラリとgemは使い方として以下の違いがある。

組み込みライブラリ gem
使う方法 何もしなくても使える includeしないと使えない

※組み込みライブラリではないがRubyに元から備わっている「標準ライブラリ」というものもある

個人的雑感

String,Arrayといったものとrspec,deviseのようなgemが、大枠としては同じ「ライブラリ」であるというのが衝撃だった。
Rubyはこれらのライブラリをそのまま使ったり、includeして使ったりして、目的の挙動を実現しているのだと理解できた。

Kernelモジュール

開発していると、putsを使って出力を確認する場面が自分にはよくあった。メソッドの中でputs 変数と書いて、想定した値が取得できているかをターミナルで確認したり、という使い方だ。

このputsというのはどこで定義されているのか?

それが Kernel モジュール である。

そして、KernelモジュールをObjectクラスがincludeしているため、どのクラスでも基本的にputsが使えるということになる。

Kernelモジュールのリファレンスはこちら

主要クラスとKernelモジュールの関係を図で表したものを以下に載せておきます。(書籍「プロを目指す人のためのRuby入門」、p300を参考)

個人的雑感

上の図のような言語の仕組みというのは、経験が浅い段階では理解できていないまま実務に当たることも出てくると思うが、まったくわかっていないまま放置するのではなく、少しずつでもいいので理解のために学習していくことが重要なのだと感じた。


転職を考えている方へ

「転職ドラフト」というサービスを使って、企業から指名を受けてみませんか?

実務1-2年目でも、うまくいけば転職ドラフトで年収数百万UPできるようです(ググると記事が見つかるはず)

登録時に次の紹介コードを入れて、その後レジュメ審査が通過すると、もれなくAmazonギフト券3000円分などのプレゼントがもらえます。

気になっている方はぜひ使ってみてください!

紹介コード:HJGJ

転職ドラフト

https://job-draft.jp/


参考資料

書籍「プロを目指す人のためのRuby入門」Amazonページ

Discussion