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
LY Corporation Tech
PRO
August 08, 2024
Technology
3
150
大規模なコードベースの改修のために自作TypeScriptツールを作るメリット
「TSKaigi Mashup #1 フロントエンド」の登壇資料です。
LY Corporation Tech
PRO
August 08, 2024
Tweet
Share
More Decks by LY Corporation Tech
See All by LY Corporation Tech
Kubernetesって何? -大規模なKubernetesを運用するKubernetes as a Serviceチームの話を添えて-
lycorptech_jp
PRO
5
1.3k
Universal Score-based Speech Enhancement with High Content Preservation
lycorptech_jp
PRO
0
53
Code Bug Fix Challenge ブース準備の裏側
lycorptech_jp
PRO
0
81
フロントエンド開発事例① LINEギフト
lycorptech_jp
PRO
0
100
フロントエンド開発事例② LINE公式アカウント
lycorptech_jp
PRO
0
83
フロントエンド開発事例③ Yahoo! JAPAN トップページ
lycorptech_jp
PRO
0
110
Android Autoアプリ開発の今 −ナビゲーションアプリ開発から学ぶケーススタディ− (DroidKaigi2024)
lycorptech_jp
PRO
1
54
Scaling Time-Series Data to Infinity: A Kubernetes-Powered Solution with Envoy
lycorptech_jp
PRO
1
100
LINEギフトにおけるアクセシビリティ向上の取り組み
lycorptech_jp
PRO
2
740
Other Decks in Technology
See All in Technology
フルカイテン株式会社 採用資料
fullkaiten
0
32k
たった1人からはじめる【Agile Community of Practice】~ソース原理とFearless Changeを添えて~
ktc_corporate_it
1
510
watsonx.ai Dojo 環境準備について
oniak3ibm
PRO
0
360
AIで変わるテスト自動化:最新ツールの多様なアプローチ/ 20240910 Takahiro Kaneyama
shift_evolve
0
250
エムスリーエビデンス創出プロダクトチーム紹介資料 / Introduction of M3 Create Evidence Team
m3_engineering
0
180
グイグイ系QAマネージャーの仕事
sadonosake
0
360
学術機関におけるID連携とOpenID Connect
fujie
0
320
サーバー管理しないサーバーサービスManaged DevOps Pool
kkamegawa
0
140
なにもしてないのにNew Relicのデータ転送量が増えていたときに確認したこと
tk3fftk
2
230
AI前提のサービス運用ってなんだろう?
ryuichi1208
3
1.1k
Cloud Run と GitHub Template Repository による軽量なアプリケーションプラットフォーム/ #nikkei_tech_talk
nikkei_engineer_recruiting
0
120
「認証認可」という体験をデザインする ~Nekko Cloud認証認可基盤計画
logica0419
2
460
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
8.9k
How to name files
jennybc
75
98k
Statistics for Hackers
jakevdp
794
220k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Producing Creativity
orderedlist
PRO
340
39k
A Modern Web Designer's Workflow
chriscoyier
692
190k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
48k
Being A Developer After 40
akosma
84
590k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
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