Submit Search
Upload
Rubocop についてざっくり解説
•
0 likes
•
1,250 views
ota42y
Follow
https://ota42y.com/blog/2016/10/27/shinjuku-rb-42/
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 13
Download now
Download to read offline
Recommended
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
ota42y
チケット駆動でテスト駆動なアプリケーション開発
チケット駆動でテスト駆動なアプリケーション開発
Yoshimi Tominaga
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
ota42y
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
Yosuke Hiraishi
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
Sato Shun
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
賢 秋穂
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
ota42y
Recommended
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
ota42y
チケット駆動でテスト駆動なアプリケーション開発
チケット駆動でテスト駆動なアプリケーション開発
Yoshimi Tominaga
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
ota42y
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
Yosuke Hiraishi
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
Sato Shun
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
賢 秋穂
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
ota42y
なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
ota42y
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
Rails上でのpub/sub イベントハンドラの扱い
Rails上でのpub/sub イベントハンドラの扱い
ota42y
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
ota42y
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
ota42y
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
ota42y
マイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャ
ota42y
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
ota42y
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
ota42y
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
ota42y
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
ota42y
More Related Content
More from ota42y
なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
ota42y
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
Rails上でのpub/sub イベントハンドラの扱い
Rails上でのpub/sub イベントハンドラの扱い
ota42y
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
ota42y
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
ota42y
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
ota42y
マイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャ
ota42y
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
ota42y
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
ota42y
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
ota42y
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
ota42y
More from ota42y
(11)
なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
Rails上でのpub/sub イベントハンドラの扱い
Rails上でのpub/sub イベントハンドラの扱い
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
マイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャ
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
Rubocop についてざっくり解説
1.
Rubocop についてざっくり解説 ota42y 2016/10/26 Shinjuku.rb #42
2.
自己紹介 ota42y ヘルスケア系の会社勤務 rubyとかgoとかC++とか 最近dartが凄いというウワサ
3.
4.
Rubocop https://github.com/bbatsov/rubocop コーディング規約にそっているかをチェック 修正可能なら自動修正(オプション) 規約は設定ファイルで細かく変更可能 ベースはRuby style guide
(同作者)
5.
How to works
(demo) % rubocop Inspecting 67 files .C..CCCCCCCCWCCC.W.C..C.C..C.....C.CCCCCWCCC......C.WWCCC Offenses: test/utils_test.rb:9:43: C: Prefer single-quoted strings assert_equal true, Prmd::Utils.blank?(" ") ^^^ ... 67 files inspected, 552 offenses detected 行と警告内容を出してくれる
6.
auto-correct (demo) % rubocop
--auto-correct test/utils_test.rb:4:3: C: Assignment Branch Condition siz def test_blank? ^^^ test/utils_test.rb:8:43: C: [Corrected] Prefer single-quot assert_equal true, Prmd::Utils.blank?("") --auto-correctオプションで自動で直してくれる [Corrected]がつく 直さない物もある メソッド長すぎ系や例外握り潰すな系
7.
対応しているcon g https://github.com/bbatsov/rubocop/blob/master/ con g/default.yml 多すぎて説明無理 スタイル系からバグ検出まで様々 x
== nil よりx.nil? {には空白を入れろ メソッド多重定義の検出 downcase比較よりcasecmp
8.
copの区分け cop (チェックルールをこう呼ぶ) Style Lint bad practicesやエラーになりそうなの抽出 Metrics 一定量超えたらダメ系(行長すぎ、関数巨大すぎ) Performance Rails Rails特有のもの(
nd_by_name,where(). rst)
9.
既存プロジェクトへの導入 linterで困るのが既存コードへの適応 既に入ってたので途中からの導入は(゚⊿゚)シラネ http://blog.onk.ninja/2015/10/27/rubocop- getting-started おすすめの入れ方っぽい 現状で警告が出るものを全て無効にする 設定を一ずつ有効にして消していく
10.
便利 簡単
11.
その他 内部ではASTにして頑張って解析しているみたい parser gemが解析やってる https://github.com/whitequark/parser rubyソースコードで遊ぶとき便利そう Rubocopは主に解析ルールを持ってる 300個以上(´・_・`)! 独自ルールを作るのは凄い大変そう…?
12.
コード構成 色々ありますが重要なのはほぼこれぐらい Runner 解析実行するところ auto-correctでは差分が消えるまで実行 Cop 解析のルールを実装するクラス xxxxCopクラスで解析をする on_whileとかon_ifとかをパーサーから受け取る
13.
実際どんな感じ line length チェック 本体 https://goo.gl/E9FqBY 共通のものはincludeされている https://goo.gl/CrlZcI https://goo.gl/q9B0BU
Download now