Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rubocopとの付き合い方

 Rubocopとの付き合い方

第78回ruby関西での登壇資料です。
https://rubykansai.doorkeeper.jp/events/62491

Yasutomo Uemori

July 29, 2017
Tweet

More Decks by Yasutomo Uemori

Other Decks in Programming

Transcript

  1. コー ドレビュー の本質 コー ドレビュー に慣れないチー ムが、 何の考えもナシにコー ドレビ ュー

    を始めるととにかく気になったこと大小様々 な指摘が行われる ことになる。 一見、 いろいろな指摘が出て議論が活発になっている ように見えるが、 だいたい議論が紛糾しているのは「 コー ドのイン デント幅が違う」 とか「return が省略されてる。 俺は return があ ったほうが好み」 とか「 その場合は字下げをした方が綺麗にみえる んでは」 とか、 そんな些末なことばかりである、 ということが多い naoya のはてなダイアリー「 些末なコー ドレビュー」 より http://d.hatena.ne.jp/naoya/20140313/1394664578
  2. コー ドレビュー の本質 そんなことを延々 議論していたって、 はっきり言って何の意味もな い。 何の意味もない、 は言い過ぎにしても、 そんなところを改善し

    たところで実質的な品質は何ひとつ上がらないわけだし、 どうして も揃えたいなら lint ツー ルか何かで機械的にチェックすればよいこ とであって人間がやることではない。 naoya のはてなダイアリー「 些末なコー ドレビュー」 より http://d.hatena.ne.jp/naoya/20140313/1394664578
  3. コー ドレビュー の本質 やらなければいけないのは、「 その設計は拡張に対して開いていな いから開くべき」 とか「 これではエッジケー スが想定されていない からこういう不具合につながるのでは」

    とか「 そのテストでは後日 見返したときに第三者が要求仕様を解釈しづらい」 とかそういう指 摘である。 naoya のはてなダイアリー「 些末なコー ドレビュー」 より http://d.hatena.ne.jp/naoya/20140313/1394664578
  4. 再び、 コー ドレビュー がなぜ必要なのか 新人教育 品質向上 相互学習 => より本質的なことにクロー ズアップした教育をしたい

    => 変更や拡張、 バグ回避などに重点を置きたい => 設計や実装などのより良い議論に時間を使いたい
  5. rubocop とは Ruby の静的解析ツー ル コー ディングルー ルを始め、 様々 な静的解析を行ってくれる

    コー ディングルー ルは同作者のruby‑style‑guide に準拠 https://github.com/bbatsov/ruby‑style‑guide
  6. コー ディングルー ル? Ruby には公式のコー ディングルー ルがない Ruby の思想 =

    Happy Hacking! 楽しくプログラミングできるようにデザインされた言語 おのおのが好きなように、 楽しくかけるのが重要
  7. コー ディングルー ル? しかし、 必ずしも一人が楽しければHappy ではない 他人のコー ドを読む・ 触るとき 他人にコー

    ドを書いてもらうとき(Pull Request!) 業務においてはコー ドが自分だけのものではない 状況に応じた適切なコー ディングルー ルがあるとみんながハッピー になれる
  8. Cop I n R u b o C o p

    l i n g o t h e v a r i o u s c h e c k s p e r f o r m e d o n t h e c o d e a r e c a l l e d c o p s rubocop の用語で、 コー ド上で実行される検査のことをCop と呼ぶ Cop の種類 Style Layout Lint Metrics Performance Security Rails Bundler
  9. Todo r u b o c o p - -

    a u t o - g e n - c o n f i g を実行することで、Todo リストを作成 することができる。 「 今は直せない負債」 を目に見える形で残すことができるため、 既存プ ロジェクトへの導入などに効果的
  10. 次回 日時: 8/24( 木) の19 30~ connpass の募集は8/1 から ハッシュタグ:

    #railsdm keynote: pocke さん、 伊藤淳一さん 興味のある方は是非ご参加ください