SlideShare a Scribd company logo
1 of 49
Download to read offline
gem の探し方
How to search nice gems :-)
2014/12/25
Crevo 開発チーム勉強会 佐藤竜之介(@tricknotes)
https://www.flickr.com/photos/methosphang/8348144906/in/photostream/
自己紹介
I love OSS
NEW!
今日の話
わたしの gem の
探し方を紹介します
Why?
1. 開発が快適になる
車輪の再発名
はしない
すでに存在するライブ
ラリを使う方が圧倒的
に早く開発できる
2. よくテストされている
(ものにもよるけど)
ちゃんとテストされ
ているという安心感
3. 勉強になる
コードから学べることは多い
テストの仕方、
API デザイン、
内部の設計
etc…
知れば知るほど
強くなれる
•gem を探すための手数が増える
•いろいろな gem を探してみたくなる
今日のゴール
※他にいい方法を知ってたら教えてください
•探す
•思い出す
•検証する
お品書き
探す
gem 探し力
能動的探求
受動的探求
能動的探求
何か目的がある
目的の gem に最短手でたどり着きたい
https://www.ruby-toolbox.com
https://github.com/
https://rails-assets.org/
受動的探求
なんとなく面白そうな gem に出会いたい
ひとづてに教えてほしい
1. 作者を る
自分が興味を持った gem の作者は、
ほかにも興味の分野が近い
gem を作っているのでは
他人が気になった gem を知る
2. 人づてに知る
世界的に流行っている gem よりも、
自分に近い興味を持っているひとが
気になった gem の方が重要
(な場合が多い)
!
following の :star: がひとつの例
http://starseeker.so/
OSS の Rails アプリの
Gemfile を眺めてみる
3. 他の Rails アプリをみる
http://24pullrequests.com/
https://gitlab.com/
http://www.discourse.org/
http://errbit.github.io/errbit/
普段使ってるアプリがあれば
それが一番オススメ
思い出す
思い出す
見つけた gem をずっと
覚えておくことは不可能
必要になったときに思い出せれば OK
GitHub だと、
思い出すための検索はいまひとつ :(
https://app.astralapp.com/
自分が star したリポジトリに
タグ付けして検索できる
検証する
検証する
ぱっと見てよさそうな gem でも、
いざ使ってみると上手く要件に
マッチしないことも…。
まずは最初に軽く様子を見てみる。
使いやすそうか
やりたいことにあっているか
README の通りにやってみて上手くいくか
README を読む
実際に使ってみないとわからないこともある
!
他のライブラリと相性悪くないか
パフォーマンス問題ないか
etc…
試してみる
issue / PR たまってない?
テストはちゃんとされているか
開発が継続されているか
ちょっと触るだけでも得られる知見がある
!
Ruby / Rails 複数バージョンのテストの仕方
外部 API のモックの仕方
アプリケーション設定の扱い方
etc…
gem のアプローチを調べる
まとめ
•gem をいろいろ探してみよう
•あとで思い出せるようにしておこう
•まずはちょっと試してみよう
https://www.flickr.com/photos/hidekazufuruki/6881051786
Have a nice hack :-)

More Related Content

More from Ryunosuke SATO

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~Ryunosuke SATO
 
はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~Ryunosuke SATO
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~Ryunosuke SATO
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVCRyunosuke SATO
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景Ryunosuke SATO
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活をRyunosuke SATO
 
Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへRyunosuke SATO
 
Node.jsってどうなの?
Node.jsってどうなの?Node.jsってどうなの?
Node.jsってどうなの?Ryunosuke SATO
 
アジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことアジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことRyunosuke SATO
 
脱レガシー化計画
脱レガシー化計画脱レガシー化計画
脱レガシー化計画Ryunosuke SATO
 
Pusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフPusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフRyunosuke SATO
 

More from Ryunosuke SATO (17)

片手間JS on Rails
片手間JS on Rails片手間JS on Rails
片手間JS on Rails
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
 
はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
 
Testable JavaScript
Testable JavaScriptTestable JavaScript
Testable JavaScript
 
Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへ
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Node.jsってどうなの?
Node.jsってどうなの?Node.jsってどうなの?
Node.jsってどうなの?
 
アジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことアジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたこと
 
脱レガシー化計画
脱レガシー化計画脱レガシー化計画
脱レガシー化計画
 
Pusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフPusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフ
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
 

gem の探し方