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
レガシーコードの触り方 / Working Effectively with Legacy Code
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takuto Wada
PRO
May 13, 2017
Programming
18k
79
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レガシーコードの触り方 / Working Effectively with Legacy Code
オープンセミナー2017@岡山
Takuto Wada
PRO
May 13, 2017
More Decks by Takuto Wada
See All by Takuto Wada
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
27
18k
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
52
36k
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
46
44k
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
192
130k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend
twada
PRO
89
53k
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
37
15k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
3.9k
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
15
7.9k
Other Decks in Programming
See All in Programming
フィードバックで育てるAI開発
kotaminato
1
120
どこまでゆるくて許されるのか
tk3fftk
0
500
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
200
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
0
290
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
270
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
510
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
500
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
130
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
170
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.5k
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
150
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
550
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
340
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
260
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Thoughts on Productivity
jonyablonski
76
5.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
240
Evolving SEO for Evolving Search Engines
ryanjones
0
240
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Transcript
ϨΨγʔίʔυͷ ৮Γํ ాਓ !U@XBEB .BZ !ΦʔϓϯηϛφʔԬࢁ
ాਓ JEUXBEB !U@XBEB HJUIVCUXBEB
None
ひとり歩きするスタンド ελϯυ໊ϫΠϧυɾαόϯφ
assert(typeof item.id === 'strong') | | | | | |
| false | | "foo" | Item{id:"foo",name:"bar"} "string" --- [string] 'strong' +++ [string] typeof item.id @@ -1,6 +1,6 @@ str -o +i ng https://github.com/power-assert-js/power-assert power-assert
ΑΖ͓͘͠ئ͍͠·͢
ݱ͔ΒͷதܧͰ͢
ർฐ͖ͬͨ͠ݱ
IUUQTXXXqJDLSDPNQIPUPTPLJOBXBTPCB ߥΈ͖ͬͨίʔυ
രॲཧͷΑ͏ͳϦϦʔε
ͭͷlͳΒΘ͠z
IUUQTXXXqJDLSDPNQIPUPTELBMP lςετΛॻ࣌ؒ͘ͳ͍z
ετϨε ςετ
ࣗಈςετ ετϨε
ςετΛॻ͕࣌ؒ͘ͳ͍ͷͰ ͳ͘ɺςετΛॻ͔ͳ͍͔ Β͕࣌ؒͳ͘ͳΔͷͰ͢ɻ
lಈ͘ίʔυʹ৮ΕΔͳz IUUQTXXXqJDLSDPNQIPUPT!/
&EJU1SBZࢮ͕͍ͬͯΔ
$PWFS.PEJGZ
w ʮςετΛॻ͕࣌ؒ͘ͳ͍ʯͷͰ ͳ͘ʮςετΛॻ͔ͳ͍͔Β͕࣌ؒ ͳ͘ͳΔʯ w ʮಈ͘ίʔυʹ৮ΕΔͳʯͱಆ͏ɻ ৮Βͳ͘ͱपΓ͕มΘͬͯಈ͔ͳ ͘ͳΔɻ৮Εͳ͚Είʔυ؇ ͔ʹࢮΜͰ͍͘ ͭͷʮͳΒΘ͠ʯͱಆ͏
ͭͷlಓ͠Δz
w ʮϨΨγʔίʔυͷδϨϯϚʯ w lίʔυΛมߋ͢ΔͨΊʹςετΛඋ͢Δ ඞཁ͕͋Δɻଟ͘ͷ߹ɺςετΛඋ͢Δ ͨΊʹɺίʔυΛมߋ͢Δඞཁ͕͋Δz w ϨΨγʔίʔυʹ৮ΔͨΊͷ ޠኮͱٕ๏Λཧͨ͠ຊ w
TUBDLPWFSqPXDPN͔Βͷ ඃݴٴୈҐ ϨΨγʔίʔυվળΨΠυ
w ϨΨγʔίʔυվળΨΠυΑΓந ͕ߴ͍ w ιϑτΣΞͷϦΤϯδχΞϦϯάΛߦ ͏ͭͷબࢶΛ͍ࣔͯ͠Δ w ϦϑΝΫλϦϯά w ϦΞʔΩςΫςΟϯά
w ϏοάɾϦϥΠτ ϨΨγʔιϑτΣΞվળΨΠυ
Ͳ͜ʹςετΛ ॻ͍͍͔ͯ͘
ʮ௧ΜͩՕॴʯͱʮख͕ಧ͘Ռ࣮ʯ
w ϦεΫ w खಈςετͷίετ w ࣗಈԽίετ ςετͷτϦΞʔδ
ςετέʔεΛҰཡʹ·ͱΊΔ ςετέʔε σβΠϯมߋ ηΩϡϦςΟΞϥʔτ औҾཤྺ ޱ࠲ͷౚ݁ ৽نϢʔβొ ݕࡧ݁Ռͷฒͼସ͑ ͓ۚͷೖۚ ৼΓࠐΈͷ֬ೝ
ϦεΫΛݟੵΔ ςετέʔε ϦεΫ σβΠϯมߋ ηΩϡϦςΟΞϥʔτ औҾཤྺ ޱ࠲ͷౚ݁ ৽نϢʔβొ ݕࡧ݁Ռͷฒͼସ͑ ͓ۚͷೖۚ
ৼΓࠐΈͷ֬ೝ
खಈςετͷίετΛݟੵΔ ςετέʔε ϦεΫ खಈςετͷ ίετ σβΠϯมߋ ηΩϡϦςΟΞϥʔτ औҾཤྺ ޱ࠲ͷౚ݁ ৽نϢʔβొ
ݕࡧ݁Ռͷฒͼସ͑ ͓ۚͷೖۚ ৼΓࠐΈͷ֬ೝ
ࣗಈԽίετΛݟੵΔ ςετέʔε ϦεΫ खಈςετͷ ίετ ࣗಈԽίετ σβΠϯมߋ ηΩϡϦςΟΞϥʔτ औҾཤྺ ޱ࠲ͷౚ݁
৽نϢʔβొ ݕࡧ݁Ռͷฒͼସ͑ ͓ۚͷೖۚ ৼΓࠐΈͷ֬ೝ
༏ઌॱҐΛ͚ͯฒସ͑Δ ςετέʔε ϦεΫ खಈςετͷ ίετ ࣗಈԽίετ ޱ࠲ͷౚ݁ ৼΓࠐΈͷ֬ೝ औҾཤྺ ݕࡧ݁Ռͷฒͼସ͑
͓ۚͷೖۚ ηΩϡϦςΟΞϥʔτ ৽نϢʔβొ σβΠϯมߋ
Ͳ͏ςετΛ ॻ͍͍͔ͯ͘
w ςετ͕ͳ͍ͷطʹઃܭ͕ѱ͍ஹީ w ઃܭ࣮Λม͑Δͷ͕લఏ w ࣮ͷςετΛॻ͔ͳ͍͜ͱ w ςετ͕Χόʔ͢Δൣғʹ༡ͼΛ࣋ͨ ͤɺΧόʔൣғΛϦϑΝΫλϦϯά w
ঢ়گʹԠͯ͡&&ςετΛ͍͜ͳ͢ ઃܭͷՄಈҬΛ֬อ͢Δ
w ࠷ॳ͔Βશ෦Ζ͏ͱ͠ͳ͍ w ςετۦಈʹͩ͜ΘΔͳ w ςετϑΝʔετʹͩ͜ΘΔͳ w ʮϢχοτʯςετʹͩ͜ΘΔͳ w ςετͷ࣮ߦʹͩ͜ΘΔͳ
w ςετͷཏੑʹͩ͜ΘΔͳ ͩ͜ΘΔͳ
w ྑ͍Ϣχοτςετͷࢦඪʹ༏ઌ ͕͋Δ w ࠶ݱɺ܁Γฦ͠Մೳ 3FQFBUBCMF w ಠཱ͍ͯ͠Δ *OEFQFOEFOU
w ଞͦΕ͔ΒͰ͍͍ ͩ͜ΘΖ͏
w ߹෦ͷݕ౼ͱۛຯ w ߜΓࠐΈͷൃݟͱґଘͷ w ࠶ݱੑ͋Δςετϋʔωεͷඋ w ूதฤू )ZQFSBXBSF&EJUJOH
w ίϯύΠϥ*%&·͔ͤ w ༷Խςετ w ࢼߦϦϑΝΫλϦϯά ϨΨγʔίʔυվળͷٕ๏ ৄ͘͠ σϞͰ
σϞطʹୀ৬ͨ͠ ઌഐ͕ॻ͍ͨ ṖͷίʔυΛҾ͖ܧ͙
IUUQTXXXqJDLSDPNQIPUPTUPNQBHFOFU ςετ࣭Λ্͛ͳ͍
w ࣭͕ʮΘ͔ΔʯΑ͏ʹͳΔ w Θ͔Δ͜ͱͦ͜େࣄ w ςετΛॻ͚ͩ͘Ͱɺྑ͘ͳΒͳ͍ w ମॏܭʹΔ͚ͩͰ૫ͤͳ͍ w ࣭Λ্͛Δͷઃܭͱϓϩάϥϛϯά
w ࠶ઃܭͱϦϑΝΫλϦϯάΛςετͰࢧ͑Δ ςετ࣭Λ্͛ͳ͍
lςετͰ্࣭͕Βͳ͍ Ͱ͢Αɻςετ͋͘·Ͱ ࣭Λ͋͛Δ͖͔͚ͬɻ࣭Λ͋ ͛ΔͷϓϩάϥϛϯάͰ͢ɻ ͜Εେੲ͔Βͦ͏ɻz
w ߹෦ͷݕ౼ͱۛຯ w ߜΓࠐΈͷൃݟͱґଘͷ w ࠶ݱੑ͋Δςετϋʔωεͷඋ w ूதฤू )ZQFSBXBSF&EJUJOH
w ίϯύΠϥ*%&·͔ͤ w ༷Խςετ w ࢼߦϦϑΝΫλϦϯά ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠