Shibuya.rbに行ってきた
先日行われたShibuya.rbに参加したのでそれについて復習
gemの紹介。
これまで作ったgemの紹介。
下記スライドに則って進められていった。
個人的にrubicureのインパクトがでかすぎる。
rubocopにPRを出した話
rubocopに存在するperformance族に対してPRを出すまでの話。
下記PRに関する話だそう
作成中のgem okuribitoの紹介
将来削除されうる、呼ばれていないメソッドを監視するgemの紹介。
不要なコードを削除することでコードを読みやすくする。
そのためには不要コードの特定が必要。
メソッドの呼び出しを監視して、不要コードを探せるようにする。
gemは下記
okuribito | RubyGems.org | your community gem host
作者さんによる紹介ページはこちら
このgemは会の終わり際にリリースされていった。
参加者の方からgem公開に関するTIPSが出てきて
- rubygemの名前は基本的に椅子取りゲームと同じなので、良い名前を思いついて公開予定であれば先にとっておくほうが良い。
- gemを作る際はテスト用意してCI用意しておくと良い。
などの知見を得た。
onkcopの紹介
rubocopを強くするgemの紹介
rubocopのデフォルト設定はきつすぎたり、使いづらかったりする。 それを使いやすくする設定用のgem。
その他
雑談レベルで出てきた話
deviceについて
認証関連の処理をやってくれるdeviseというgemがあるが、これの評判が良くなかったので軽くメモ
devise | RubyGems.org | your community gem host
その理由として挙げられていたのが
- deviseの用意したレールから外れると扱いが難しくなる
- binding.pryで処理の流れを追ってもよくわからん
- deviseの全容を知らずに使うと何かあったときに対処が難しくなる
- ユーザーのパスワードを内包しており、一度乗るともうはずせない。もしくははずしづらい。
- 認証の設計はdevice読んでからやるべき。
- というかそもそも認証という仕組みが悪い
などなど。
認証などの重要な箇所に使うgemはちゃんと動きを把握してから使うほうが良いのかもしれないと思った。
rubygemsの障害対策
障害対策のために、全てのgemを社内で保持するという方法があるらしい。
rubygemsもたまに落ちることがあり、そういう時はbundle installなどが正常に動作しなくなる。
rubygemsの障害がサービスデプロイ中に発生すると、失敗してしまう。
rubygems.orgとの共倒れを避けるために、rubygemsに上がったgemを全て取得し社内で保持しておく。
有事の際にそれを使用するようするそうだ、なるほど。
gem用rubocop
rails用のrubocopは多いが、gemに特化したrubocopは存在しないため、作ると需要があるかもしれない、とのこと。