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
3.5k
RubyでPrettierを使ってみた
fuqda
0
320
RSpecによるOpen API自動テスト
fuqda
3
1.1k
OSSへの プルリクエスト作成の手引き
fuqda
2
320
Rails Girls Tokyo 13th Sponsor LT by STORES
fuqda
0
190
OSS初心者がつまづきながらOSSマナーを学んでいく話
fuqda
4
3.2k
Ruby2.7の新機能で簡易版Rubyインタプリタを実装してみる
fuqda
0
560
カンファレンスで技術的お土産を 増やすために出来ることを考えた
fuqda
2
510
Other Decks in Programming
See All in Programming
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
100
20250528 AWS Startupイベント登壇資料:AIコーディングの取り組み
procrustes5
0
140
Devinで実践する!AIエージェントと協働する開発組織の作り方
masahiro_nishimi
6
2.8k
從零到一:搭建你的第一個 Observability 平台
blueswen
0
300
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
340
"使いづらい" をリバースエンジニアリングする UI の読み解き方
rebase_engineering
0
130
Feature Flag 自動お掃除のための TypeScript プログラム変換
azrsh
PRO
4
660
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
130
TypeScript を活かしてデザインシステム MCP を作る / #tskaigi_after_night
izumin5210
4
500
〜可視化からアクセス制御まで〜 BigQuery×Looker Studioで コスト管理とデータソース認証制御する方法
cuebic9bic
3
310
JSAI2025 RecSysChallenge2024 優勝報告
unonao
1
420
#QiitaBash TDDでAIに設計イメージを伝える
ryosukedtomita
2
1.6k
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
A designer walks into a library…
pauljervisheath
205
24k
KATA
mclloyd
29
14k
Docker and Python
trallard
44
3.4k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Typedesign – Prime Four
hannesfritz
42
2.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Bash Introduction
62gerente
614
210k
Rails Girls Zürich Keynote
gr2m
94
13k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
2
110
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 ͝ਗ਼ௌ