Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
黒歴史リポジトリを使ったリファクタリング勉強法のススメ
Search
fuqda
August 13, 2019
Programming
1
1.1k
黒歴史リポジトリを使ったリファクタリング勉強法のススメ
Otemachi.rb#20の発表資料です。
リファクタリングを利用した勉強方法の話をします。
fuqda
August 13, 2019
Tweet
Share
More Decks by fuqda
See All by fuqda
Composition API時代の Pub/Subパターンでの状態管理
fuqda
4
4k
RubyでPrettierを使ってみた
fuqda
0
370
RSpecによるOpen API自動テスト
fuqda
3
1.2k
OSSへの プルリクエスト作成の手引き
fuqda
1
330
Rails Girls Tokyo 13th Sponsor LT by STORES
fuqda
0
220
OSS初心者がつまづきながらOSSマナーを学んでいく話
fuqda
4
3.3k
Ruby2.7の新機能で簡易版Rubyインタプリタを実装してみる
fuqda
0
620
カンファレンスで技術的お土産を 増やすために出来ることを考えた
fuqda
2
560
Other Decks in Programming
See All in Programming
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
510
Claude Code Skill入門
mayahoney
0
390
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
590
20260315 AWSなんもわからん🥲
chiilog
2
150
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
550
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
410
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.8k
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
190
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
140
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
550
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
300
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
150
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
Unsuck your backbone
ammeep
672
58k
Balancing Empowerment & Direction
lara
5
940
Typedesign – Prime Four
hannesfritz
42
3k
Designing Powerful Visuals for Engaging Learning
tmiket
0
280
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
A better future with KSS
kneath
240
18k
A Tale of Four Properties
chriscoyier
163
24k
Optimizing for Happiness
mojombo
378
71k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
85
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Transcript
ࠇྺ࢙ϦϙδτϦΛ ͬͨϦϑΝΫλϦϯά ษڧ๏ͷεεϝ ɹɹɹɹɹɹɹɹ fuqda(@fuqda90) 2019.08.14(Wed) Otemachi.rb#20
ࣗݾհ Tama.rb Organizor Work @ STORES.jp, inc. RubyͰ!Λ৯ΔΑ͏ʹͳΓ2Ͱ͢ Twitter
: fuqda(@fuqda90) Github : Shigeyuki-fukuda (JU)VC
ࠓͷ
࣮ۙફͨ݁͠Ռ ޮՌ͕͋ͬͨΦεεϝ ษڧ๏ͷ"
ʲ࣭ʳ ٕज़ॻಡΜͩޙ ࣮ફͯ͠·͔͢ʁ
ʲ࣭2ʳ ಡΜ͚ͩͩͩͱʹ͍͔ͨෆ҆… ͱ͍͏͔…Ε·ͤΜ͔? (ͪͳΈʹͦ͏Ͱ͢#)
ؾܰʹຊͰֶΜͩ༰Λ ࣮ફ͍ͨ͠
(࠷ѱյΕͯྑ͍ΞϓϦͰ$)
ͦ͜ͰΦεεϝ͍ͨ͠ʂ
ۦ͚ग़͠ͷࠒʹॻ͍ͨίʔυ (ࠇྺ࢙ϦϙδτϦ)ͷ ϦϑΝΫλϦϯά %✨
ཧ༝
୯७ʹϦϑΝΫλϦϯάग़དྷΔ༨͕ଟ͍ →͢༨͕গͳ͍ͱ࡞ۀͯͯͭ͠·Βͳ͍ͷͰ ɹۃʹ伱ͩΒ͚ͷίʔυΛϘίϘίʹ͘͢Β͍͕ ɹࡐͱͯ͠ྑ͍ ษڧΛͨ͠ݱ࣌ͱ͢Δલͷ͕ࠩ໌֬ →Ͳͷ͘Β͍ʹ͍͍ͯΔ͔ʁΛ͕ࣝͳ͔ͬͨࠒ ɹͱൺΔ͜ͱͰݱঢ়ͷཧղͷѲʹཱͪͦ͏
ͬͱݴ͏ͱ ϖΞϓϩͰΔͷΛ Φεεϝ͍ͨ͠✋
ϖΞϓϩͰΔํ͕͍͍ཧ༝ ࢥߟͷཧ͕ग़དྷΔ →ҰਓͩͱԿͱͳͬͪ͘͜ͷίʔυͷํ͕ྑ͍͔Βͱ ɹᐆດʹ͢Δͱ͜ΖΛ૬ख͕͍ΔͱԿނͦͷॻ͖ํ͕ ɹྑ͍ͷ͔Λઆ໌͢Δඞཁ͕ग़ͯ͘Δʂ ɹͦͷͨΊઆ໌ͷաఔͰᐆດͳཧղʹؾ͚ͯྑ͍ →૬खͱࣗͰΞϓϩʔν͕ҧ͏໘͕͋ΔͣͳͷͰ ɹͦΕ͕ͦͷ··ֶͼʹͳΔ
࣮ࡍʹ͍ͬͯͬͨ͜ͱ
Tama.rbͷ˞ࣗݾհ༻ΨνϟΞϓϦͷ ϦϑΝΫλϦϯά ※Tama.rbؔऀͷࢯ͕ۦ͚ग़͠ͷࠒʹ ࡞ͬͨΞϓϦΛڐՄΛΒͬͯ͢͜ͱʹ… ϝϯόʔ @fuqda @ken3ypa
ʲΞϓϦ֓ཁʳ ࣗݾհΨνϟ ɾQuestion(࣭) ɾConjunction(ଓࢺ) ɾTheme(ςʔϚ) ͜ΕΒͷΧςΰϦʔʹ֘͢ΔొϫʔυΛ ΨνϟͷΑ͏ʹҾ͍ͯ ϥϯμϜͰը໘ʹදࣔ͠ ͦΕΛݩʹࣗݾհͯ͠Β͏ΞϓϦ
ϦϑΝΫλϦϯάͷΰʔϧ ៉ྷͳίʔυʹ͢(ͦΕ͚ͩ͡Όͳ͍) ⭕ ۦ͚ग़͔͠Βࠓ·ͰֶΜͩΦϒδΣΫτ ࢦͷΞϨίϨ֤छॻ੶ͷֶश༰Λ Ξτϓοτग़དྷΔ͔ΛϦϑΝΫλϦϯά ͷதͰ֬ೝ͢Δ͜ͱ
ϦϑΝΫλϦϯά͢Δ ্ͰνΣοΫ߲ͨ͠
ɾ໋໊ͷଥੑνΣοΫ ɹ (Ϋϥε໊ɾϝιου໊ɾΧϥϜ໊etc…) ͦͷ໊લͰΘΔʁ ex)ͱ͋ΔϕϯνϟʔاۀͰϗϯτʹ͋ͬͨා໋໊͍ class EmailMailer →Կʹର͢Δϝʔϧ͕͍ͨ͠Ϋϥεͳͷ͔શ͘ΘΒΜ ͗͢Δ໋໊͡Όͳ͍ʁ ex)
Ϋϥε໊ɿGroup, Operation →໊͍લʹprefix͕ඞཁͦ͏ γεςϜ্Ϳ͔ͭΔ໊લ͡Όͳ͍ʁ ex) ΧϥϜ໊ɿsize, count →ͦͷੲϑΝογϣϯܥαʔϏεͰͷαΠζΛsizeͱ͍͏ ΧϥϜͰཧͨ͠ͱ͜ΖORϚούʔͷ෦ͷϝιουͱ Ϳ͔ͭͬͯҙਤ͠ͳ͍ڍಈΛͨ͜͠ͱ͕͋ͬͨͦ͏ͳ
ɾΫΤϦͷଥੑνΣοΫ
ɾϞσϦϯάͷଥੑνΣοΫ ຊʹ͜ͷϞσϧඞཁʁ →QuestionϞσϧҰͭʹ ɹ ActiveRecord::EnumΛੜͯ͠ཧ͢Ε ɹ Conjunction(ଓࢺ)ͱ ɹ ThemeϞσϧෆཁͳͷͰʁ ※Πϝʔδ
enum category: { conjunction: 0, theme: 1 }
ɾRailsత/OOPత͔νΣοΫ ͕దʹׂ͞ΕͯΔʁ →AΫϥε͕BΫϥεͷதͷॲཧΛΓա͗ͯͳ͍͔ →ԿͰͷαʔϏεΫϥεͱ͔࡞ͬͯͨΒຣࡴ(ࠓճແ͠) ͜ͷ࣮ͳ͍ͱμϝʁ →ෳͷϞσϧͰڞ௨ͨ͠ॲཧ͕ ɹActiveSupport::Concernʹ·ͱΊΒΕ͍͕ͯͨ ͦͦແବͳϞσϧΛআͨ͠Β ActiveSupport::Concern͍Βͳ͘ͳ͍ʁ^_^; ɹ➡
ຣࡴ
૯
ɾϦϑΝΫλϦϯάͰग़ͯ͘ΔΞΠσΞ ɹͦͷͷ͕ࠓͷࣗͷ࣮ྗ ɾۀͩͱେਓͷࣄͰϦϑΝΫλϦϯάʹ ɹͳ͔ͳ͔खΛ͚ΒΕͳ͍͔ͳͷͰ… झຯͷίʔυͰͿͬյ͠ͳ͕ΒֶΜͰ ɹۀίʔυʹөग़དྷͨΒྑͦ͞͏✨ ɾϖΞϓϩɾϞϒϓϩͰࠓճͷΑ͏ͳϦϑΝΫλϦϯάΛ ͢Δͱ୯७ʹָ͍͠ & ษڧʹͳΔͷͰ
ʑͷֶशϚϯωϦଧഁʹ͓ࢼ͋͠Ε
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠3 ͝ਗ਼ௌ