color_boxの復習帳

復習します

Shibuya.rbに行ってきた

先日行われたShibuya.rbに参加したのでそれについて復習

shibuyarb.doorkeeper.jp


gemの紹介。

これまで作ったgemの紹介。

下記スライドに則って進められていった。

個人的にrubicureのインパクトがでかすぎる。

qiita.com


rubocopにPRを出した話

rubocopに存在するperformance族に対してPRを出すまでの話。

下記PRに関する話だそう

github.com


作成中のgem okuribitoの紹介

将来削除されうる、呼ばれていないメソッドを監視するgemの紹介。

不要なコードを削除することでコードを読みやすくする。

そのためには不要コードの特定が必要。

メソッドの呼び出しを監視して、不要コードを探せるようにする。

gemは下記

okuribito | RubyGems.org | your community gem host

github.com

作者さんによる紹介ページはこちら

muramurasan.hatenablog.jp

このgemは会の終わり際にリリースされていった。

参加者の方からgem公開に関するTIPSが出てきて

  • rubygemの名前は基本的に椅子取りゲームと同じなので、良い名前を思いついて公開予定であれば先にとっておくほうが良い。
  • gemを作る際はテスト用意してCI用意しておくと良い。

などの知見を得た。


onkcopの紹介

rubocopを強くするgemの紹介

github.com

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は存在しないため、作ると需要があるかもしれない、とのこと。