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
大規模なコードベースの改修のために自作TypeScriptツールを作るメリット
Search
LINEヤフーTech (LY Corporation Tech)
PRO
August 08, 2024
Technology
3
210
大規模なコードベースの改修のために自作TypeScriptツールを作るメリット
「TSKaigi Mashup #1 フロントエンド」の登壇資料です。
LINEヤフーTech (LY Corporation Tech)
PRO
August 08, 2024
Tweet
Share
More Decks by LINEヤフーTech (LY Corporation Tech)
See All by LINEヤフーTech (LY Corporation Tech)
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
12
1.8k
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
1
880
Yahoo! ズバトクにおけるフロントエンド開発
lycorptech_jp
PRO
0
300
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
400
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
2
440
連合学習を用いたスタンプの推薦
lycorptech_jp
PRO
2
66
Will Positron accelerate us?
lycorptech_jp
PRO
2
170
Try using dbtplyr
lycorptech_jp
PRO
0
24
EthernetベースのGPUクラスタ導入による学びと展望
lycorptech_jp
PRO
2
990
Other Decks in Technology
See All in Technology
商品レコメンドでのexplicit negative feedbackの活用
alpicola
1
350
I could be Wrong!! - Learning from Agile Experts
kawaguti
PRO
8
3.4k
駆け出しリーダーとしての第一歩〜開発チームとの新しい関わり方〜 / Beginning Journey as Team Leader
kaonavi
0
120
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!事例のご紹介+座学②
siyuanzh09
0
110
アジャイルチームが変化し続けるための組織文化とマネジメント・アプローチ / Agile management that enables ever-changing teams
kakehashi
3
3.4k
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
190
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
160
AWSマルチアカウント統制環境のすゝめ / 20250115 Mitsutoshi Matsuo
shift_evolve
0
110
.NET 最新アップデート ~ AI とクラウド時代のアプリモダナイゼーション
chack411
0
200
GeometryReaderやスクロールを用いた表現と紐解き方
fumiyasac0921
0
100
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
330
Featured
See All Featured
Facilitating Awesome Meetings
lara
51
6.2k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Unsuck your backbone
ammeep
669
57k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Making Projects Easy
brettharned
116
6k
A Philosophy of Restraint
colly
203
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Visualization
eitanlees
146
15k
Transcript
ߵ࢘,B[VTIJ,POPTV େنͳίʔυϕʔεͷվमͷͨΊʹ ࣗ࡞5ZQF4DSJQUπʔϧΛ࡞ΔϝϦοτ 54,BJHJαϒΠϕϯτϑϩϯτΤϯυ
ࣗݾհ ߵ࢘,B[VTIJ,POPTV 9!LB[VTIJLPOPTV -*/&ϠϑʔגࣜձࣾιϑτΣΞΤϯδχΞ ʮ-*/&εΩϚχʯϑϩϯτΤϯυνʔϜͷ ΤϯδχΞϦϯάϚωʔδϟʔɾςοΫϦʔυ
ʮϑϩϯτΤϯυͷେنͳίʔυϕʔεͷվमʯʹ͍ͭͯ͠·͢ 💭ϥΠϒϥϦͷΞοϓάϨʔυɾஔ͖͑ 💭ϓϩμΫτͷϦχϡʔΞϧ
େنͳίʔυϕʔεͷվमͰى͖Δ ࣮ऀ ϨϏϡϫʔ ࠩͷྔ ˠ୯ௐͰࣅͨฤू͕ଓ͖ෛ୲ ظؒʹΘͨΔ࡞ۀ ˠ௨ৗͷ։ൃͱͷཱ྆ͷ͠͞ ࠩͷྔ ˠ࣮࿙Εͷݟམͱ͠ ɹϨϏϡϫʔͷෛ୲
͜ͷͷղܾ͢ΔͨΊɺʮࣗ࡞5ZQF4DSJQUπʔϧʯΛ࡞Γ·ͨ͠
ʮࣗ࡞5ZQF4DSJQUπʔϧʯͱͳʹ͔ʁ let message = 'hello world'; const message = 'hello
world'; ͋ΔҰఆͷϧʔϧͰ5ZQF4DSJQUϑΝΠϧΛฤू্͠ॻ͖͢Δͷ 🛠
ʮࣗ࡞5ZQF4DSJQUπʔϧʯͰͬͨ͜ͱ ର 5ZQF4DSJQU3FBDUͷίʔυϕʔε ίϯϙʔωϯτϥΠϒϥϦͷϦϓϨΠε ࣮ݱͨ͜͠ͱ ϓϩδΣΫτͰࢀর͕ͳ͘ͳͬͨίϯϙʔωϯτΛআ
ʮࣗ࡞5ZQF4DSJQUπʔϧʯʹΑͬͯͨΒ͞ΕͨϝϦοτ ࣮ऀ ϨϏϡϫʔ ୯ௐͳมߋ͕ଓ͘͜ͱʹΑΔ ϛεɾ࿙Εͷݮগ มߋͷΞϓϩʔνΛ ͍Ζ͍Ζͱࢼ͢ίετͷԼ ϨϏϡʔର͕ʮࠩʯ͔Β ʮࠩΛੜ͢ΔࠩʯʹมԽ ˠෛ୲͕ݮ
ίʔυΛૢ࡞͢Δ΄͔ͷํ๏ͱͷൺֱ regex ̋खܰ͞ ʷෳࡶͳૢ࡞ͷ࣮ ̋ίʔυͷߏʹ جͮ͘มߋ ˚ϑΝΠϧ͝ͱͷใ ͔͠ར༻Ͱ͖ͳ͍ ̋υΩϡϝϯτɾࢀߟ ʹͳΔࢿྉ
̋ϓϩδΣΫτͷߏ ʢࢀরؔͳͲʣʹج ͮ͘มߋ ̋ܕใͷར༻ ˚υΩϡϝϯτɾࢀߟ ʹͳΔࢿྉ
πʔϧΛ࡞Δ্ͰͷϙΠϯτ పఈతͳݸผ࠷దԽ ˠ൚༻తͳπʔϧΛ࡞ΒͣɺϓϩδΣΫτͷίʔυͷύλʔϯ͚ͩཏ͢Δ ͷࣗಈԽ ˠΓͷ%SBGU13Λݟͳ͕ΒखಈͰରԠ
5ZQF4DSJQUΛͬͯίʔυΛૢ࡞ͯ͠ΈΑ͏ʂ TypeScript API ts-morph ʷυΩϡϝϯτͷෆ ˚USBOTGPNFSΛ͏ͱϑΥʔϚο τ͕ଛͳΘΕΔ ̋ෳࡶͳૢ࡞ 5ZQF4DSJQU"1*ͷ ϥούʔϥΠϒϥϦ
̋൚༻తͳૢ࡞Λཏ ̋υΩϡϝϯτ͕ॆ࣮ ̋ϑΥʔϚοτ͕ҡ࣋͞ΕΔ ˚ෳࡶͳૢ࡞ import ts from 'typescript';
͍͞͝ʹ w ʮࠩ࡞Γʯ͔ΒʮࠩΛੜ͢Δࠩ࡞Γʯͷస w 044Խ w HJUIVCDPNMJOFUTSFNPWFVOVTFE
ʮࣗ࡞5ZQF4DSJQUπʔϧʯΛ࡞ͬͯେنͳվमΛΒͤ·͠ΐ͏ʂ
5IBOLZPV