1分で分かる!Gemとは?
ねぇねぇ、ジャバード先生。Rubyの開発ってどうすれば生産性がアップするの?
Rubyの開発?いろいろあると思うけど、何かあったの?
実はね、キリンさんがRubyの開発で困っているみたいなんだ。
たしかキリンさんって、RubyやRuby on Railsでアプリケーション開発していたよね?
あ、そうそう。キリンさん、今度やる機能追加でAWSのサービスを使うみたいなんだ。でも、そこがなかなか上手くいってないみたいでさ…。
そういうことか。キリンさんってgem (ジェム)は使っているのかな?
gem??
そう。gemっていうのはRubyのライブラリのことだよ。便利な機能やよく使う機能を、あらかじめ部品化したようなものだね。
他のプログラミング言語のライブラリと同じ様なもの??
そうだね。RubyやRuby on Railsで開発するなら、gemは活用したほうがいいよ!
じゃあ、キリンさんが抱えている困りごとも、そのgemを利用すれば解決するってことかな?
そうそう!今回キリンさんはRubyからAWSのAPIを呼ぶことになると思うんだけど、aws-sdk-coreっていうgemを使えばサクッと開発できるんじゃないかな?
そうなんだ!すごい便利だね!他にはどんなgemがあるのかな?
実はこの前お話ししたRSpecもgemの1つなんだ。ほかにも、ユーザー認証を簡単に実現できるgem、ファイル操作に特化したgem、データベースを管理するgem…。挙げればキリがないほど、たくさん存在しているんだよ。
そんなにあるんだね!
ちなみにgemパッケージは自分で作って公開することもできるんだよ。
そうなんだ!そうやってエンジニアさんが、どんどんgemパッケージを公開すれば、もっと便利になっていきそうだね!
ことりん君がいうように、既にそういうエコシステムができあがっているんだよ。ギブ アンド テイクの精神ってやつだね!
じゃあキリンさんにはgemのこと伝えておくよ!そしてキリンさんにも、gemパッケージの公開をおすすめしてみるね!
キリンさん、きっと喜んでくれるんじゃないかな!
そうだね!じゃあ行ってきまーす!
気を付けてね!
gemとは?採用に役立つ基礎知識
gemには2つの意味があります。
1つは、Rubyのライブラリ (パッケージ)のことです。ほかのプログラミング言語では、そのまま「ライブラリ」と呼ぶことが多いですが、Rubyでは、gem (またはgemパッケージ)と呼ばれています。もう1つは、それらのパッケージを管理するシステムであるRubyGemsをgemと呼ぶことがあります。
なお、自分が開発したgemは、RubyGemsに公開することができます。また、同じ様に他のエンジニアが公開したgemをインストールすることもできます。
gemを使うエンジニア
gemは、RubyやRuby on Railsを使うエンジニアが利用します。そのため、主にRubyでサーバーサイドを開発するサーバーサイド(バックエンド)エンジニアなどが使用します。
gemを使うエンジニアの特徴と在籍業界
gemは、Rubyエンジニアにとって無くてはならないものです。そのため、gemを使うエンジニアに特筆すべき特徴などはありません。
なお、Rubyエンジニアは、Web業界に多くいます。そのため、必然的にgemを使うエンジニアも、Web業界に多くいるといえるでしょう。
採用する時に知っておくとよいこと
gemのダウンロード数から見るRubyの人気度
さまざまな団体が、プログラミング言語に関するランキングを発表しています。昨今、それらのランキングで、Rubyのランクは下降している状況が続いているようです。そのため「Rubyはオワコンだ」と主張している人もいます。
ただ、gemを公開しているサイトの1つであるBestGems.orgを見ると、その見方は少し変わるかもしれません。このWebサイトでは、gemのデイリーダウンロード回数をランキング形式で表示しているのですが、トップのgemは200万回に迫る回数もダウンロードされています。
このダウンロード数を見る限り、まだまだRubyの人気は健在といえるのではないでしょうか。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス
gemの豆知識
代表なgem
RubyやRuby on Railsは、gemをインストールすることで開発効率がアップしたり、品質を高めることができます。ここでは人気が高いgemをいくつか紹介します。
Bundler
Bundlerは、gemパッケージを管理するためのgemです。
アプリケーション開発を行うとき、そのアプリケーションに必要となるgemパッケージや、それらのバージョンについて、メンバーで一致させておく必要があります。これを実現するのがBundlerです。
ちなみにBundlerは、なんと累計9億3,000万回もダウンロードされています。
参考:Bundler
rspec
rspecは、RubyやRuby on Railsのテストフレームワークです。rspecを使うことで、テストコードを簡単に実装することができます。
rspecも非常に人気があるgemであり、これまでに5億8,000万回もダウンロードされています。
参考:rspec
aws-sdk-cor
aws-sdk-coreは、AWS用のAPIクライアントです。aws-sdk-coreを利用することで、AWSの機能を簡単に呼び出すことができるようになります。
参考:aws-sdk-core
gem関連のイベント
gemに関するイベントとしては、以下のようなものがあります。
RubyWorld Conference
RubyWorld Conferenceは、RubyWorld Conference開催実行委員会が主催しているRubyをテーマとしたイベントです。このイベントでは、Rubyに関する事例や最新情報などが発表されます。
RubyKaigi
RubyKaigiも、毎年開催されているRubyをテーマとしたイベントです。このイベントは、日本で開催されていますが、参加者の10〜20%は日本国外からの参加者というグローバルなイベントでもあります。RubyKaigiでは、gemに関するテーマが発表されることがあります。
参考:RubyKaigi