Rubyのgemsとは何でしょうか。

インフラエンジニアをしています。
自身のスキルアップのためバックエンドの学習としてRubyを学習していたのですが、Ruby gemsがよく分かりませんでした。
Gemの基本的な概念と、実際のプロジェクトでの使い方について教えてください。
ruby gemsはアプリ開発において必須のスキルなのでしょうか。
以上、宜しくお願い致します。
1年前
view数 33

    回答を投稿して企業にアピールしましょう!

    Q&Aで投稿された回答は、
    企業側に表示されるプロフィールにも投稿履歴として表示されます。

    Offersにログイン・新規登録して、気になるテーマやトピックを話してみよう!

    \回答があります!/

    • Masakazu Fukami

      エンジニア

      1年前

      質問者様にレベル感がわからないので大変失礼な回答になってしまったら申し訳ないです。

      ある程度は自分で調べられていると思うのでざっくりお話しますが、概念的にはRPGで主人公に魔法を使わせるために装備する魔法の杖みたいなものです。
      例えば、火を出す魔法を使いたいから、火を出す魔法を出せる杖を主人公にインストールするイメージです。

      コードで言うと、Gemfileというファイルに以下のように書き、

      gem '火を出す魔法の杖'


      呼び出すファイルから以下のように呼び出します
      require '火を出す魔法の杖'
      
      火を出す魔法.ファイヤ


      ## ruby gemsはアプリ開発において必須のスキルなのでしょうか。
      こちらに関してですが、99.9%必須です。

      ちなみに、ruby gemsの中身もrubyでできています。
      つまり、火を出す魔法の杖を自分でコードとして書くことも可能です。

      その場合は呼び出すファイルで
      class 火を出す魔法の杖
        ..... 火を出す魔法の書き方を全部書く
      end
      
      
      火を出す魔法の杖.ファイヤ

      で読み出すことができます。

      じゃあgemってなんやねんって話なんですが、結局プログラミングって、
      コードを書く

      色んなところで使うからファイルに書き出したりして呼び出せるようにする
      の無限ループなんですよね。

      それが自分のプロジェクトを越えて、「世界中のみんなが使いそうな機能だから世界中に公開しよう!」としてできたのがgemです。
      これは各言語にあります。
      javascriptだとnpmとか。

      なので、仮にgemが使えないとしたら、世界中の人がありとあらゆる便利なgemを開発して公開しているのに、自分だけそれを使わずに車輪の再発明をしてしまうということです。
      これはかなり非効率なので、みんなgemを使うということです!

      ざっくりですがこんな感じでいかがでしょうか!
      view数 19
      • 1