Enviar pesquisa
Carregar
RuboCopとXPコーディング規約
•
1 gostou
•
1,889 visualizações
Koichi ITO
Seguir
XP祭り 2016のライトニングトークス資料 (http://xpjug.com/xp2016)
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 66
Recomendados
Webサーバ勉強会@福岡のLT資料です。 http://atnd.org/events/26885
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料
学 松崎
表参道.rb #6 (http://omotesandorb.connpass.com/event/21811/) obj&.foo になるかも? https://bugs.ruby-lang.org/issues/11537#note-42
Safe navigation operator in Ruby
Safe navigation operator in Ruby
Koichi ITO
セキュリティ・キャンプ アワード2016の最終審査の発表資料です。パケット解析のライブラリについてお話しします。
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
表参道.rb#5 (http://omotesandorb.connpass.com/event/20289/)
frozen string literal in Ruby
frozen string literal in Ruby
Koichi ITO
サイボウズ・ラボユース成果報告会の発表資料です。 拡張可能なパケット解析ライブラリの開発、と言うテーマでLibPGENについて発表しました。
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
This slide introduces about Unified JVM Logging.
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Ruby 2.4 の新機能/変更点 紹介
Ruby24
Ruby24
Masahiro Tomita
オープンソースカンファレンス2016北海道で「セキュリティ・キャンプ同窓会」として成果報告を行った時のセミナー資料です。
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
slankdev
Recomendados
Webサーバ勉強会@福岡のLT資料です。 http://atnd.org/events/26885
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料
学 松崎
表参道.rb #6 (http://omotesandorb.connpass.com/event/21811/) obj&.foo になるかも? https://bugs.ruby-lang.org/issues/11537#note-42
Safe navigation operator in Ruby
Safe navigation operator in Ruby
Koichi ITO
セキュリティ・キャンプ アワード2016の最終審査の発表資料です。パケット解析のライブラリについてお話しします。
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
表参道.rb#5 (http://omotesandorb.connpass.com/event/20289/)
frozen string literal in Ruby
frozen string literal in Ruby
Koichi ITO
サイボウズ・ラボユース成果報告会の発表資料です。 拡張可能なパケット解析ライブラリの開発、と言うテーマでLibPGENについて発表しました。
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
This slide introduces about Unified JVM Logging.
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
Ruby 2.4 の新機能/変更点 紹介
Ruby24
Ruby24
Masahiro Tomita
オープンソースカンファレンス2016北海道で「セキュリティ・キャンプ同窓会」として成果報告を行った時のセミナー資料です。
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
slankdev
DevSumi 2012 Kansai で使用したスライドです
JavaScript.Next Returns
JavaScript.Next Returns
dynamis
#渋谷java 発表資料です。
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
Java 女子部 講義資料 https://javajo.doorkeeper.jp/events/21337 This presentation is used to lecture about the introduction of Java Virtual Machine at Java Japan User Group (Girls).
JVM のいろはにほ #javajo
JVM のいろはにほ #javajo
Yuji Kubota
ペパボ福岡支社における Rubyの活用事例 @Ruby・mrubyビジネスセミナーFUKUOKA2015
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
Uchio Kondo
IoT/M2M展 2019【春】(Japan IT Week 2019春)でのアヴネット株式会社様のブースにおいて,ミニプレゼンを実施させていただきました. ROS (Robot Operating System)に対応した研究・教育向けの自動走行ロボットTurtleBot3において,任意のハードウェア回路を書換可能なFPGAを活用することができる統合開発プラットフォームZytleBotの紹介です.ROBOTIS Japan様とも協業しております. https://github.com/tlk-emb/ZytleBot ROSの各種メリットを活かしながら,自動走行ロボットの開発にFPGAを導入することができます.CPUでは難しい処理をFPGAにオフロードすることで,高性能化や省電力化を図ることができます.また,ROSノードからのFPGAのインターフェースをテンプレートとして提供しており,ROSxFPGAのロボットシステム開発の加速化にも貢献します.
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
Hideki Takase
libpgen version 1.0 の簡単な使用方法を紹介しています。
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
ぎんざRuby会議01 スポンサーLT (https://ginzarb.github.io/kaigi01/)
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
TokyuRuby会議11 (https://tokyurubykaigi.github.io/tokyu11/)
アプリがパッチにまみれたら
アプリがパッチにまみれたら
Koichi ITO
Rails Developers Meetup #3 (https://rails-developers-meetup.connpass.com/event/60765/)
Stairway to The Pragmatic Rails Programmer
Stairway to The Pragmatic Rails Programmer
Koichi ITO
ESM LT #2
最軽の開発手法 dX 改
最軽の開発手法 dX 改
Koichi ITO
Ruby Business Users Conference 2017 (http://www.rubybusiness-conf.org/)
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Koichi ITO
表参道.rb #19 https://omotesandorb.connpass.com/event/48967
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Koichi ITO
RubyWorld Conference 2016 (http://2016.rubyworld-conf.org/ja/) のスポンサープレゼンテーション
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
Koichi ITO
Ginza.rb 第40回 (https://ginzarb.doorkeeper.jp/events/52895)
俺の開発日誌
俺の開発日誌
Koichi ITO
esm LT での発表スライド
ghq gem-src and more
ghq gem-src and more
Koichi ITO
XP祭り 2016 (http://xpjug.com/xp2016)
俺たちの新人教育!!
俺たちの新人教育!!
Koichi ITO
第74回 Ruby関西 勉強会 (https://rubykansai.doorkeeper.jp/events/49364)
スローテスト刑事 (デカ)
スローテスト刑事 (デカ)
Koichi ITO
Agile Japan 2016 長崎サテライト with NaITE (http://nagasaki-it-engineers.connpass.com/event/32873)
Gate of Agile Web Development
Gate of Agile Web Development
Koichi ITO
TokyuRuby会議10 (http://regional.rubykaigi.org/tokyu10/)
RubyKaigi 2015 の Drinkup を支える技術
RubyKaigi 2015 の Drinkup を支える技術
Koichi ITO
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! (https://nishinipporirb.doorkeeper.jp/events/42587)
開発時の探し物を楽にする習慣作り
開発時の探し物を楽にする習慣作り
Koichi ITO
とちぎテストの会議04 (http://d.hatena.ne.jp/tochigitestnokaigi/20160423)
Motivationware
Motivationware
Koichi ITO
表参道.rb#10 (http://omotesandorb.connpass.com/event/29102/)
達人プログラマーへの道
達人プログラマーへの道
Koichi ITO
Mais conteúdo relacionado
Mais procurados
DevSumi 2012 Kansai で使用したスライドです
JavaScript.Next Returns
JavaScript.Next Returns
dynamis
#渋谷java 発表資料です。
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
Java 女子部 講義資料 https://javajo.doorkeeper.jp/events/21337 This presentation is used to lecture about the introduction of Java Virtual Machine at Java Japan User Group (Girls).
JVM のいろはにほ #javajo
JVM のいろはにほ #javajo
Yuji Kubota
ペパボ福岡支社における Rubyの活用事例 @Ruby・mrubyビジネスセミナーFUKUOKA2015
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
Uchio Kondo
IoT/M2M展 2019【春】(Japan IT Week 2019春)でのアヴネット株式会社様のブースにおいて,ミニプレゼンを実施させていただきました. ROS (Robot Operating System)に対応した研究・教育向けの自動走行ロボットTurtleBot3において,任意のハードウェア回路を書換可能なFPGAを活用することができる統合開発プラットフォームZytleBotの紹介です.ROBOTIS Japan様とも協業しております. https://github.com/tlk-emb/ZytleBot ROSの各種メリットを活かしながら,自動走行ロボットの開発にFPGAを導入することができます.CPUでは難しい処理をFPGAにオフロードすることで,高性能化や省電力化を図ることができます.また,ROSノードからのFPGAのインターフェースをテンプレートとして提供しており,ROSxFPGAのロボットシステム開発の加速化にも貢献します.
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
Hideki Takase
libpgen version 1.0 の簡単な使用方法を紹介しています。
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
Mais procurados
(6)
JavaScript.Next Returns
JavaScript.Next Returns
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
JVM のいろはにほ #javajo
JVM のいろはにほ #javajo
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
Mais de Koichi ITO
ぎんざRuby会議01 スポンサーLT (https://ginzarb.github.io/kaigi01/)
Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
TokyuRuby会議11 (https://tokyurubykaigi.github.io/tokyu11/)
アプリがパッチにまみれたら
アプリがパッチにまみれたら
Koichi ITO
Rails Developers Meetup #3 (https://rails-developers-meetup.connpass.com/event/60765/)
Stairway to The Pragmatic Rails Programmer
Stairway to The Pragmatic Rails Programmer
Koichi ITO
ESM LT #2
最軽の開発手法 dX 改
最軽の開発手法 dX 改
Koichi ITO
Ruby Business Users Conference 2017 (http://www.rubybusiness-conf.org/)
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Koichi ITO
表参道.rb #19 https://omotesandorb.connpass.com/event/48967
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Koichi ITO
RubyWorld Conference 2016 (http://2016.rubyworld-conf.org/ja/) のスポンサープレゼンテーション
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
Koichi ITO
Ginza.rb 第40回 (https://ginzarb.doorkeeper.jp/events/52895)
俺の開発日誌
俺の開発日誌
Koichi ITO
esm LT での発表スライド
ghq gem-src and more
ghq gem-src and more
Koichi ITO
XP祭り 2016 (http://xpjug.com/xp2016)
俺たちの新人教育!!
俺たちの新人教育!!
Koichi ITO
第74回 Ruby関西 勉強会 (https://rubykansai.doorkeeper.jp/events/49364)
スローテスト刑事 (デカ)
スローテスト刑事 (デカ)
Koichi ITO
Agile Japan 2016 長崎サテライト with NaITE (http://nagasaki-it-engineers.connpass.com/event/32873)
Gate of Agile Web Development
Gate of Agile Web Development
Koichi ITO
TokyuRuby会議10 (http://regional.rubykaigi.org/tokyu10/)
RubyKaigi 2015 の Drinkup を支える技術
RubyKaigi 2015 の Drinkup を支える技術
Koichi ITO
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! (https://nishinipporirb.doorkeeper.jp/events/42587)
開発時の探し物を楽にする習慣作り
開発時の探し物を楽にする習慣作り
Koichi ITO
とちぎテストの会議04 (http://d.hatena.ne.jp/tochigitestnokaigi/20160423)
Motivationware
Motivationware
Koichi ITO
表参道.rb#10 (http://omotesandorb.connpass.com/event/29102/)
達人プログラマーへの道
達人プログラマーへの道
Koichi ITO
表参道.rb #9
Let's get ready for next Ruby
Let's get ready for next Ruby
Koichi ITO
勤務先の社内発表資料
職と人
職と人
Koichi ITO
Yamama.rb #0
Agile Software Development with Edge Ruby
Agile Software Development with Edge Ruby
Koichi ITO
オトナとRuby (https://toruby.doorkeeper.jp/events/30722)
プロの無職についての考察:序
プロの無職についての考察:序
Koichi ITO
Mais de Koichi ITO
(20)
Bundler 2 の胎動
Bundler 2 の胎動
アプリがパッチにまみれたら
アプリがパッチにまみれたら
Stairway to The Pragmatic Rails Programmer
Stairway to The Pragmatic Rails Programmer
最軽の開発手法 dX 改
最軽の開発手法 dX 改
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Railsアプリケーションプロジェクトでの読み書きそろばんの1周目、2周目とそれから
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
10年生きる Ruby / Rails アプリケーションプログラマーのエコシステム
俺の開発日誌
俺の開発日誌
ghq gem-src and more
ghq gem-src and more
俺たちの新人教育!!
俺たちの新人教育!!
スローテスト刑事 (デカ)
スローテスト刑事 (デカ)
Gate of Agile Web Development
Gate of Agile Web Development
RubyKaigi 2015 の Drinkup を支える技術
RubyKaigi 2015 の Drinkup を支える技術
開発時の探し物を楽にする習慣作り
開発時の探し物を楽にする習慣作り
Motivationware
Motivationware
達人プログラマーへの道
達人プログラマーへの道
Let's get ready for next Ruby
Let's get ready for next Ruby
職と人
職と人
Agile Software Development with Edge Ruby
Agile Software Development with Edge Ruby
プロの無職についての考察:序
プロの無職についての考察:序
RuboCopとXPコーディング規約
1.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 RuboCopとXP コーディング規約 XP祭り�2016 早稲⽥大学�⻄早稲⽥キャンパス 2016-09-24�(Sat) 伊藤�浩⼀�(@koic) (株)永和システムマネジメント
2.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 わたし
3.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 わたし (株)永和システムマネジメントで 働くシニアリーダー。Rubyとか メタルなんかが好きです�lml�lml https://github.com/koic✓ https://twitter.com/koic✓ https://koic.hatenablog.com✓
4.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 �
5.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 はじ めに
6.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 XPの中⼼となる活動 XPはコーディングをソフトウ ェアプロジェクトのキーアク ティビティ、つまり「中⼼と な る活
動」 と し て選ん で い る。 [「エクストリームプログラミング�1st�序⽂」より 引用]
7.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 今⽇の話
8.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 今⽇の話 XPオリジナルプラクティスの ひとつ『コーディング規約』 ✓ もともと予定していた『スロー テスト刑事�(デカ)�』は先週、 京都で使っちゃいました http://www.slideshare.net/koic/ slow-test-cop ✓ ✓ デカシリーズ第2弾(RuboCop)✓
9.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Keywords Coding�standard✓ RuboCop✓ XP�and�Community✓
10.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Coding�standard オリジナルXPのプラクティス の1つでもある ✓
11.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Coding�standard 読み⼿の負担を減らすリーダブ ルなコードに近づける ✓ PRレビューなどのコードリー ディング時につまらないところ で引っ掛かりたくない ✓ チームメンバーのコードを似た ようなコードに近づける要素 ✓
12.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 ツールによる自動化 RubyではRuboCopという Gemが有名 github.com/bbatsov/rubocop✓ ✓
13.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 RuboCopのチーム活用例 CI�で�RSpec�と�RuboCop�の 実⾏結果をビルド結果とする ✓ PR�に対して�RuboCop�でコメ ントを付ける ✓
14.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 RuboCop 正直あまり好きではなかったが 次のひと⾔との出会いで考え⽅ が変わった ✓
15.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 @onk�says
16.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Yep!
17.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 現場のRuboCop デフォルトの設定では取り締ま りが厳しすぎることからカスタ マイズされて使われたりする 有名な�onk/onkcop✓ esminc/deka̲eiwakun✓ SonicGarden/sgcop✓ その他非公開cop含め多様✓ ✓
18.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 @onk�says お互いに良いコーディング規 約があれば本家に提案しよう
19.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 原初のXPをふりかえる XPは常識を原理とし、極限ま で実践するからである。 [「エクストリームプログラミング�1st�序⽂」より 引用]
20.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 eXtreme例�(XPE1stより) コードレビューがよいのであれ ば、いつでもコードレビューを ⾏う ✓ テストが良いのであれば、全員 がいつでもテストをして、顧客 もテストを⾏う ✓ 設計がよいのであれば、設計を 全員の⽇常の仕事の⼀部にする ✓
21.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 ツマミをフルボリュームに 良いコーディング規約なのであれ ば、upstreamにそのコーディン グ規約を提案する。
22.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 upstream�への�PR
23.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 PRの概要 Cop/Performance族✓ コーディング規約の中でも割と 有益性が明確な分野だと思って いる ✓ sort�{�...�}�から�sort̲by�{�...�}� にするよう取り締まる ✓
24.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 sortとsort̲byおさらい 安定なソートかそうでないか ggr✓ 警告を出すようにした⽅が良かった かも�thx�#shibuyarb ✓ ✓ パフォーマンスの違い 今回提案したい観点✓ ✓ Cop/Performanceへの提案の ためベンチマークを付けたい ✓
25.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Enumerable#sort�ブロッ クなし(参考) ������������������� ������������������������������������ ����������������������� �������������������������������� ��������������������������������������������� ���
26.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Produces: �������������������������������������� �������������������������������������������������������� �������������������������������������������������������� sort̲by�{�|a|�a�}�ブロックありのときは�sort�の⽅が速い。
27.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Enumerable#sort�ブロッ クあり�(今回用) ������������������� ������������������������������������ ����������������������� ������������������������������������������������������������� ������������������������������������������� ���
28.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Produces: �������������������������������������� �������������������������������������������������������� �������������������������������������������������������� sort�{�|a,�b|�a.to̲s�<=>�b.to̲s�}�ブロックありのときは�sort̲by (&:to̲s)�の⽅が速い。
29.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 以上を背景 にcopで指 摘したい事
30.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 指摘を埋め込んだコード ������������� ����������������������������� ����������������� ���������������������������������������
31.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 こう指摘したい ����������������� ����������������� � ��������� ��������������������������������������������������������������������������������� ��������������������������������������� ��������������������������������������� ������������������������������������
32.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 プログラマーなので 既存のcopにないので新たなcop を作ってみた。
33.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 新たなcop作り⽅概要 copで取り締まるASTを宣⾔し、 ASTの⾛査イベントについて、 Copサブクラスを作って書く ������������������������� ���������������� ���
34.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 PRまでのざっくりした流れ 既存の類似コードを読む1.� テストコード(RSpec)を書く2.� whitequark/parserでAST (抽象構⽂⽊)を作る 3.� ASTに対するイベントを書く4.� autocorrectを書く5.� .travisを元に全ビルドを実施6.�
35.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 1.類似の コードを 読む
36.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 類似のコードを読む 割りとコードがドキュメント✓ コードリーディングによる静的 解析とbinding.pryによる動的 解析の2軸が自分の基本 ✓ 今回はCop/Performance/ RedundantSortByが目的に近 い既存コード 目的に近いコードがあると楽✓ ✓
37.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 2.テスト コードを 書く
38.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 実装をよく分かっていないか らこそレッドバーから始める ���������������������������������������������������� ��������������������������������������� ��������������������������������������������������������� �� ���������������� ���������������������������������������������������������������������� ��������������������������������������������������� ����� 三角測量が⾜りずハードコーディングが残っていたのでテストを ⾜して直す指摘をPRコメントでもらって直したりした。
39.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 3.parser でASTを 作る
40.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 RuboCopが使うParser github.com/whitequark/parser �������������������� gemspecを眺めて良く知らない ライブラリは軽く使ってみる ✓
41.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 既存のASTを作って学習 目的に近いredundant̲sort̲by.rb にあるASTを再現させてみる。 ����������������������������������� ������ ��������������������� ������� ������������� ������������
42.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 参考:�S式より馴染む? Generated�by�github.com/koic/ruby̲ast̲visualizer
43.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 今回作りたいASTを作る ������������������������������������������������� ������ ������������������ ������� ������������ ������������� ������� ��������� �������������������������� ��������� �����������������������
44.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 今回のcopのASTへの実装 ������������������������������ �������� ������������������� ��������� ��������������� ���������������� ��������� ����������� ��������������������������� ����������� ������������������������ ���
45.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 参考:�S式より馴染む? Generated�by�github.com/koic/ruby̲ast̲visualizer
46.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 RuboCopのNodeについて lib/rubocop/ast̲node.rbなど 読んでた ✓ ��������������������������������������������������������������������������
47.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 4.ASTに対 するイベン トを書く
48.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 on̲xxx�メソッド メタプログラミングで実装され ている ✓ lib/rubocop/ast̲node/ traversal.rbなど読んでた ✓ ����������������������������������������� ���������������������������������������������������������������������������
49.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 取り締まりについて書く 対象のASTに取り締まり対象が⾒ つかったらoffernseに追加する。 ������������������ �������������������������������������������� ���������������������������������� ���������������������������� ��������������������������������������� ������������������������������������������� ����� ���
50.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 5.�autocorrectを書く RuboCopには自動修正する-- auto-correctというオプショ ンがある ✓
51.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 指摘を埋め込んだコード ������������� ����������������������������� ����������������� ���������������������������������������
52.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 rubocop�--auto-correct� オプションを付けて実⾏する �������������������������������� ����������������� � ��������� ��������������������������������������������������������������������������������������������� ��������������������������������������� ��������������������������������������� ���������������������������������������������������������
53.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 autocorrectの差分結果 自動修正される。 ���������� ����������������������������� ����������������� ����������������������������������������� �����������������������
54.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 RuboCop::Node node.children.last.children.last. children.lastへの苦渋。
55.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 autocorrectの実装 method名をASTから引っ張ってく るところに苦渋の後が⾒える。 ��������������������� ��������������� ����������� ����������� ����������������������������������������������������������� ��������������������������������������������������������������������� ����� ���
56.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 6.travisを 元に全ビル ドを実施
57.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 .travis重要 RuboCop自体がRuboCopで取り 締まられている。 ������� ��������������������� �����������������������
58.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 PR前に全ビルドを実施 project̲spec.rbよく出来てる デフォルトの取り締まりとなる config/enabled.ymlへの設定記述 がなくてエラー ✓ CHANGELOG.mdのリンクが不⾜ していてエラー ✓ ✓ Line�is�too�long.の取り締まり が厳しくてつらい ✓
59.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 問題点を指 摘してもら ったうえで
60.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 めでたく即⽇マージされた
61.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 onkcop 作者より
62.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 XPE2nd�24章『コミュニテ ィとXP』
63.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 XPの中⼼となる活動 XPはコーディングをソフトウ ェアプロジェクトのキーアク ティビティ、つまり「中⼼と な る活
動」 と し て選ん で い る。 [「エクストリームプログラミング�1st�序⽂」より 引用]
64.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 Programmingを中⼼に Aが良いならAをeXtremeに...✓ Bが良いならBをeXtremeに...✓ Cが良いならCをeXtremeに...✓
65.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 コーディング規約が良いなら お互いに良いコーディング規 約があれば本家に提案しよう
66.
RuboCopとXPコーディング規約 Powered�by�Rabbit�2.1.9 �