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
takanamito
July 24, 2017
Technology
2
3.3k
ドキュメントとテストのないプロジェクトを引き継ぐ
2017.07.24 技術的負債ナイト@Speee の発表資料です。
https://speee.connpass.com/event/60381/
takanamito
July 24, 2017
Tweet
Share
More Decks by takanamito
See All by takanamito
ActiveModel::Attributes APIとSwaggerでRailsのAPIレスポンスに型を持ち込む
takanamito
0
570
Siriに身の回りのお世話をしてもらう
takanamito
0
6.4k
PHPで運用中のサービスをRubyに切り替える
takanamito
0
5.2k
安心してフレームワークをのりかえたい
takanamito
0
1.1k
HLSでやっていく 動画ストリーミング配信
takanamito
0
2.4k
あんしん大規模リプレースサポート
takanamito
1
1.5k
Other Decks in Technology
See All in Technology
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
TypeScript、上達の瞬間
sadnessojisan
46
13k
Platform Engineering for Software Developers and Architects
syntasso
1
510
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
190
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
180
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
6
670
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Building Applications with DynamoDB
mza
90
6.1k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Navigating Team Friction
lara
183
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Facilitating Awesome Meetings
lara
50
6.1k
Agile that works and the tools we love
rasmusluckow
327
21k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Transcript
υΩϡϝϯτͱςετͷͳ͍ ϓϩδΣΫτΛҾ͖ܧ͙ ٕज़తෛ࠴φΠτ@Speee 7/24 2017
ࣗݾհ • id: takanamito • גࣜձࣾSpeee • ΤϯδχΞ • िʹαʔϞϯϥϯͰ͠Ό͗͗ͯ͢ͷͲ͕௧͍
• ෆಈ࢈ҰׅࠪఆαΠτ • ՈΛചΓ͍ͨϢʔβʔ͞Μͱෆಈ࢈اۀͷϚονϯά • 2014ελʔτ • 1500ࣾҎ্ͷاۀͱఏܞ͠ 20ສ݅ͷෆಈ࢈ച٫ཱαϙʔτ •
ࣄۀશମͰ40~50໊΄Ͳ
͘͡ • νʔϜjoin࣌ͷঢ়گ • Կ͕ෛ࠴ͩͬͨͷ͔ • ෛ࠴ͱͷ͖߹͍ํΛߟ͑Δ • ෛ࠴ͱ͖߹͏࣌ʹҙ͍ࣝͯͨ͜͠ͱ
νʔϜjoin࣌ͷঢ়گ 1/4
5/1 join • ։ൃνʔϜ4໊ • ͏ͪ1໊ͷୀ৬ʹ͍ɺ͕ҟಈ͖ͯͨ͠ • ಈ͍͍ͯΔͷ • ຊମαΠτ
(Ruby, PHP) • Adminπʔϧ (Java, 724class, 66,611ߦ) • ΫϥΠΞϯτاۀ͞·͚πʔϧ (Java) • όον͕41ݸ (΄ͱΜͲJava)
Կ͕ෛ࠴ͩͬͨͷ͔ 2/4
ෛ࠴ʹ͍Ζ͍Ζ Ҿ༻ ٕज़తෛ࠴ͷฦࡁϓϩδΣΫτ͕ࣦഊ͢ΔͷϫέKqVUFͷه IUUQEIBUFOBOFKQKqVUFEFQUBHBJO ٕज़తෛ࠴2JJUB IUUQRJJUBDPNFSVLJUJJUFNTDDEEF
ΠΤʔϧʹ͓͚Δෛ࠴ • υΩϡϝϯτ͕Γͯͳ͍ • ͦͦԿͷػೳ͕͋Δπʔϧͳͷ͔ • ʮ࣮͜ͷυΩϡϝϯτݹͯ͘...ʯ • ςετίʔυ͕গͳ͍ •
Adminπʔϧ 66,611ߦʹରͯ͠ 39tests • ୀ৬༧ఆͷ։ൃऀͷ಄ͷதʹ͔͠ͳ͍༷ • λΠϜϦϛοτ1ϲ݄
༧࣮ߦόον • ࣍ͰఏܞاۀͷܝࡌεςʔλεͳͲΛ Γସ͑Δ༧͕Ͱ͖Δػೳ • ༧छผʹςʔϒϧ͕͋Γɺ༧Ϩίʔυ͕1݅ͣͭ insert͞Ε͍ͯ͘ • ʮͳΜͰ͜ͷςʔϒϧ͚ͩ༧࣮ߦͯ͠ͳ͍ΜͰ͔͢ʁʯ •
ʮ͑ͬʯ • Ұੜ࣮ߦ͞ΕΔ͜ͱ͕ͳ͍༧ػೳͩͬͨ͜ͱ͕ൃ֮
୭ʹฉ͍ͯΘ͔Βͳ͘ͳΔ ঢ়گ͕ഭ͖͍ͬͯͯͨ
υΩϡϝ ϯτ ςετ ෳࡶ d ॏཁ ଐਓԽ ۓٸ "ENJO πʔϧ
º º ˕ ˚ º +BWB όον܈ º º d ˓ º ˓ ˞͋ͱͰ͏ճग़͢ͷͰɺͬ͟ͱݟͱ͍͍ͯͩ͘͞
ෛ࠴ͱͷ͖߹͍ํΛߟ͑Δ 3/4
ࢧ͏͖͔ɺࢧΘ͟Δ͖͔ • ෛ࠴ͷ͍͠: ٕज़తෛ࠴ͩͱࢥΘΕΔίʔυɺϑϨʔϜϫʔ ΫɺϓϥοτϑΥʔϜΛϦϑΝΫλϦϯά͢Δ͔ɺஔ͖͑Δ • ෛ࠴ͷస: ݱࡏͷղܾࡦΛʮᘳͰͳ͍͚ΕͲྑ͍ʯղܾ ࡦͱஔ͖͑Δɻ৽͍͠ղܾࡦɺΑΓ͍རͰ͋Γɺᘳ ͳղܾࡦΛߏங͢ΔͱඇৗʹߴՁʹͳΔͳΒɺΑ͍બࢶ͔
͠Εͳ͍ • རଉͷΈࢧ͏: ίʔυͱͱʹੜ͖ΔɻϦϑΝΫλϯϦϯά ɺͦΕ΄Ͳྑ͘ͳ͍ίʔυʹऔΓΉΑΓߴ͔ͭ͘͘Β Ҿ༻.BOBHJOH5FDIOJDBM%FCU IUUQTXXXJOGPRDPNBSUJDMFTNBOBHJOHUFDIOJDBMEFCU
Ͳ͜·Ͱฦࡁͯ͠ Ͳ͜·Ͱڞଘ͍͔ͯ͘͠
υΩϡϝ ϯτ ςετ ଐਓԽ ෳࡶ d ॏཁ ۓٸ "ENJO πʔϧ
º º ˚ ˕ º +BWB όον܈ º º º ˓ ˓ υΩϡϝ ϯτ ςετ ෳࡶ d ॏཁ ଐਓԽ ۓٸ "ENJO πʔϧ º º ˕ ˚ º +BWB όον܈ º º d ˓ º ˓ ڞ௨ͯ͠ Γͯͳ͍
υΩϡϝ ϯτ ςετ ෳࡶ d ॏཁ ଐਓԽ ۓٸ "ENJO πʔϧ
º º ˕ ˚ º +BWB όον܈ º º ˓ º ˓ υΩϡϝ ϯτ ςετ ෳࡶ d ॏཁ ଐਓԽ ۓٸ "ENJO πʔϧ º º ˕ ˚ º +BWB όον܈ º º d ˓ º ˓ "ENJOӡ༻ʹ ৯͍ࠐΜͰ͍ΔͨΊ ෳࡶߴ͍͕ɺ໘ ༷ʹৄ͍͠ਓ͕ଟ͔ͬͨ
υΩϡϝ ϯτ ςετ ෳࡶ d ॏཁ ଐਓԽ ۓٸ "ENJO πʔϧ
º º ˕ ˚ º +BWB όον܈ º º d ˓ º ˓ όον܈ΤϯδχΞ͔͠ Βͳ্͍ʹ ୀ৬༧ఆͷࣾһʹݟ͕ूத
υΩϡϝ ϯτ ςετ ෳࡶ d ॏཁ ଐਓԽ ۓٸ "ENJO πʔϧ
º º ˕ ˚ º +BWB όον܈ º º d ˓ º ˓ ୀ৬લʹͳΜͱ͔͠ͳ͍ͱ ຊʹ୭৮Εͳ͘ͳΔ
όον܈ • ୀ৬༧ఆͷ։ൃऀ͕͍ͳ͘ͳΔͱ୭༷͕Θ ͔Βͳ͍ • छྨ͕ଟ͘ࠓޙมߋͷՄೳੑ͕ߴ͍ίʔυ ૣΊʹίϯτϩʔϧͰ͖ΔΑ͏ʹ͍ͨ͠ • ଐਓԽ x
ॏཁ͕ߴ͍ͱஅ͠ ෛ࠴ͷ͍͠(RubyԽ)Λ͢Δ͜ͱʹ
Adminπʔϧ • ΠΤʔϧͷࣄۀͷίΞͱͳΔπʔϧ • ༷ʹৄ͍͠ਓ͕ΤϯδχΞҎ֎ʹ • ܹ͘͠ػೳՃվम͢Δ༧ఆͳ͍ • རଉͷΈࢧ͏ (͜ͷ··ӡ༻͢Δ)͜ͱʹ
• ৽ػೳՃ࣌ʹRailsʹΓग़͢ ෛ࠴ͷసͷબࢶ
ҙࣝͨ͠ϙΠϯτ • ଐਓԽ͍ͯͨ͠ͷΛࣗͨͪͷίϯτϩʔϧ Լʹ • શͯΛฦࡁ͠Α͏ͱ͠ͳ͍ • ͳͥฦࡁ͢Δඞཁ͕͋Δͷ͔ɺฦࡁ͢Δ͜ͱͰ Կ͕ྑ͘ͳΔͷ͔ʹ͍ͭͯࣄۀऀͱ͢
ෛ࠴ͱ͖߹͏࣌ʹ ҙ͍ࣝͯͨ͜͠ͱ 4/4
ෛ࠴ʹ͖߹͍ͳ͕Β • ӡ༻ܥͷλεΫΛੵۃతʹΔ 㱺 ࣄۀͱγεςϜ͕ಁ͚ͯݟ͑Δ • ͳͥͦ͏ͳͬͯΔ͔Θ͔Βͳ͍ͱ͜Ζฉ͍ͯΈΔ 㱺 ༧όονͷΑ͏ͳൃݟ͕ •
ୀ৬͢Δલʹɺ༷Ͱͳ͘ӡ༻ʹؔ͢ΔυΩϡϝϯτ Λ࡞ͬͯΒ͏ 㱺 εςʔΫϗϧμʔ͕Θ͔Εฉ͘૬ख͕Θ͔Δ
·ͱΊ
• ෛ࠴ͷछྨΛݟۃΊΔ • ෛ࠴Λฦࡁ͢Δ͖͔ߟ͑Δ • ෛ࠴Λฦ͢ίετΛݮΒͨ͢ΊͷΞΫγϣϯΛ
͋Γ͕ͱ͏͍͟͝·ͨ͠