Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RuboCop Custom Formatter for Reviewdog Diagnost...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Masato Ohba
June 21, 2023
Programming
3.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RuboCop Custom Formatter for Reviewdog Diagnostic Format
gotanda.rb#53 "RuboCop Custom Formatter for Reviewdog Diagnostic Format"
Masato Ohba
June 21, 2023
More Decks by Masato Ohba
See All by Masato Ohba
From Formal Specification to Property Based Test
ohbarye
0
6.1k
5年間のFintech × Rails実践に学ぶ - 基本に忠実な運用で築く高信頼性システム / 5 Years Fintech Rails Retrospective
ohbarye
9
14k
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
3
13k
組織のスケールを見据えたプロジェクトリードエンジニア制度の実践 / Project Lead Engineer for Scaling Engineering Organization
ohbarye
14
4.1k
Two Blades, One Journey: Engineering While Managing
ohbarye
9
14k
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
3.2k
プロポーザルのつくり方 〜個人技編〜 / How to come up with proposals
ohbarye
8
2.8k
Data Migration on Rails
ohbarye
8
17k
Unlocking Potential of Property Based Testing with Ractor
ohbarye
3
23k
Other Decks in Programming
See All in Programming
Kotlinの15年とServer-Side Kotlin
n_takehata
1
200
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
200
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
230
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
350
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
1
160
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
320
小さなアプリを作って公開するまで
onozaty
0
120
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
380
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
970
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Building Applications with DynamoDB
mza
96
7.3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Invisible Side of Design
smashingmag
301
52k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Code Review Best Practice
trishagee
74
20k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Transcript
3VCP$PQ$VTUPN'PSNBUUFS GPS3FWJFXEPH%JBHOPTUJD'PSNBU !HPUBOEBSC PICBSZF
3VCP$PQ ͍ͬͯ·͔͢ʁ
SFWJFXEPHBDUJPOSVCPDPQ ͍ͬͯ·͔͢ʁ
SFWJFXEPHBDUJPOSVCPDPQ (JU)VCͳͲͷίʔυϗεςΟϯά αʔϏεʹϨϏϡʔίϝϯτΛߘ ͢ΔͨΊͷπʔϧ $-*ͱ࣮ͯ͠ߦՄೳ ಛఆͷπʔϧʹґଘͤͣɺҙͷ MJOUFSͱ౷߹Ͱ͖Δ SFWJFXEPHͱʁ IUUQTHJUIVCDPNSFWJFXEPHSFWJFXEPH
༷ʑͳπʔϧ͚ (JU)VC"DUJPOT͕ ଘࡏ͢Δ
SFWJFXEPHBDUJPOSVCPDPQ 3VCP$PQͱSFWJFXEPHΛ౷߹͢Δ (JU)VCDVTUPNBDUJPO 3VCP$PQͷࢦఠ༰Λίϝϯτͯ͠ ͘ΕΔͷͰɺ࣮ߦͨ͠δϣϒͷϩά Λݟʹߦ͔ͳͯ͘Α͍ EJ ff ʹର͚ͯͩ͠ίϝϯτͤ͞Δ͜ͱ
͕Ͱ͖Δ SFWJFXEPHBDUJPOSVCPDPQ ͱʁ SVCPDPQίϚϯυશମʹର࣮ͯ͠ߦ͞Εɺ݁ՌΛSFWJFXEPHଆͰ fi MUFS͍ͯ͠Δ DPNNFOUͰ͖ΔͷͰ EJTDVTTJPOՄೳ
SFWJFXEPHBDUJPOSVCPDPQDPOGJHFYBNQMF ৄࡉIUUQTHJUIVCDPNSFWJFXEPHBDUJPOSVCPDPQࢀর
SFWJFXEPHBDUJPOSVCPDPQTVHHFTUJPOGFBUVSF SFWJFXEPHBDUJPOSVCPDPQWͰՃ ͞Εͨػೳ 3VCP$PQʹBVUPDPSSFDUػೳ͕͋ Γɺݕग़ͨ͠ҧΛࣗಈิਖ਼Ͱ͖Δ ಉػೳ͕ఏҊ͢Δิਖ਼͕TVHHFTUFE DIBOHFͱͯ͠ίϝϯτ͞ΕΔΑ͏ʹ ͳͬͨ TVHHFTUJPOGFBUVSF
W͕ϦϦʔε͞Εͨͷ ࡉ͔͍มߋͰ͋Ε (6*͔ΒDPNNJU͢Δ ͚ͩͰΑ͍
ࢲ͕Γ·ͨ͠ IUUQTHJUIVCDPNSFWJFXEPHBDUJPOSVCPDPQQVMM
Ͳ͏࣮ͬͯݱ͔ͨ͠
Ξϓϩʔν w SFWJFXEPH$-*3VCP$PQͷϝδϟʔͳMJOUFSͷग़ྗΛQBSTFͰ ͖Δ͏͑ɺ3FWJFXEPH%JBHOPTUJD'PSNBU 3%'PSNBU ͱ͍͏ಠ ࣗͷೖྗܗࣜ༻ҙ͍ͯ͠Δ w ˠͲΜͳMJOUFSͰग़ྗΛGPSNBU͢ΕSFWJFXEPHରԠͰ͖Δ
w MJOUFSͷσϑΥϧτग़ྗΑΓ3%'PSNBUͷ΄͏͕දݱྗ͕ߴ͘ɺ TVHHFTUJPOޙऀͰͳ͍ͱදݱͰ͖ͳ͍ w ˠ3VCP$PQͷग़ྗ͕3%'PSNBUʹͳΔΑ͏ܗ͢Ε͍͚Δ IUUQTHJUIVCDPNSFWJFXEPHSFWJFXEPHUSFFNBTUFSQSPUPSEG
3%'PSNBU +40/ &YBNQMF 3VCP$PQͷ A$4UZMF 'SP[FO4USJOH-JUFSBM$PNNFOU .JTTJOHGSP[FOTUSJOHMJUFSBM DPNNFOUA Έ͍ͨͳग़ྗ͕ˠͷΑ͏ʹͳ͍ͬͯ
ΕΑ͍ P ff FOTFTΛEJBHOPTUJDTͷྻʹม ͢ΔΠϝʔδ
3VCP$PQʹGPSNBUUFSΛબ͢Δػߏ͕͋Δ $*Ͱ͍ͬͯΔ ϓϩδΣΫτ͋Δ $-*ΦϓγϣϯͰ ࢦఆՄೳ IUUQTEPDTSVCPDPQPSHSVCPDPQGPSNBUUFSTIUNM IUUQTXXXSVCZEPDJOGPHFNTSVCPDPQ3VCP$PQ'PSNBUUFS#BTF'PSNBUUFS ࣗ࡞ͷDVTUPNGPSNBUUFS
ར༻Ͱ͖Δ
DVTUPNGPSNBUUFS࣮ ։࢝࣌ͷTUBSUFEͰ)BTIΛੜ ϑΝΠϧ୯ҐͷJOTQFDUऴྃ࣌ͷ fi MF@ fi OJTIFEͰP ff FOTFTΛ
EJBHOPTUJDTʹมͯ͠٧Ί͍ͯ͘ ऴྃ࣌ͷ fi OJTIFEͰTUEPVUʹग़ྗ IUUQTXXXSVCZEPDJOGPHFNTSVCPDPQ3VCP$PQ'PSNBUUFS#BTF'PSNBUUFS 3VCP$PQ'PSNBUUFS#BTF'PSNBUUFSΛܧঝͨ͠ΫϥεʹϑοΫϝιουΛ࣮͢Δ
DVTUPNGPSNBUUFS࣮ 3VCP$PQ$PQ0GGFOTF͔Β ίʔυҐஔDPSSFDUJPOใ͕औΕΔ
Ռ SVCPDPQ$-*͔ΒGPSNBUUFSΛࢦఆ࣮ͯ͠ߦ͢Δ͜ͱ Ͱ3%'PSNBUͷ+40/͕ग़ྗ͞ΕΔΑ͏ʹͳͬͨ ͜ͷ+40/ΛSFWJFXEPH$-*ʹͤ(JU)VC DPNNFOUʹTVHHFTUJPO͕ͭ͘
ศར
·ͱΊ 🤝 3VCP$PQͷDVTUPNGPSNBUUFSΛॻ͘͜ͱͰSFWJFXEPHBDUJPOSVCPDPQʹ TVHHFTUJPOGFBUVSFΛ࣮͢Δ͜ͱ͕Ͱ͖ͨ ⚽ SFWJFXEPH3%'PSNBUͷ͓͔͛Ͱ͋ΒΏΔMJOUFSͱ౷߹Մೳʹͳ͓ͬͯΓɺ SVCPDPQDVTUPNGPSNBUUFSͷ͓͔͛Ͱ݁ՌΛNBDIJOFSFBEBCMFʹͰ͖Δ 👁 SFWJFXEPHBDUJPOCSBLFNBO͋Δ͠ɺಉ͡ΓํͰ͍Ζ͍ΖͰ͖Δ
ܕݕࠪπʔϧ TPSCFU TUFFQ ͷDVTUPNBDUJPOଘࡏ͠ͳ͍Ά͍ͷͰνϟϯε͔
4NBSU#BOL *OD 4PGUXBSF&OHJOFFS .BTBUP0ICB !PICBSZF 8IP*BN !PICBSZF