Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TypeScript ASTとJSDocで実現するコードの自動削除 / Auto remove...
Search
スタンバイ
May 21, 2025
470
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TypeScript ASTとJSDocで実現するコードの自動削除 / Auto remove code with TypeScript AST and JSDoc
スタンバイ
May 21, 2025
More Decks by スタンバイ
See All by スタンバイ
データ基盤を Athena _ Glue から Databricks へ移行しました - 第4回 Youは何しにDatabricksへ!?
stanby_inc
0
270
自立を加速させる神器 - EMOasis #11
stanby_inc
0
370
スタンバイ会社紹介資料
stanby_inc
0
11k
プロダクト部門のマネージャー全員でマネジメントポリシーを宣言した記録_-_EMConf_JP_2025.2.27.pdf
stanby_inc
1
5.3k
スタンバイ会社紹介資料
stanby_inc
0
95k
Amazon Aurora のインフラコストを55%削減した話
stanby_inc
0
5.1k
スタンバイQAのテスト自動化導入
stanby_inc
0
1.4k
検索エンジンをVespaへ移行しています
stanby_inc
0
1.4k
どうするLeSS - スクラムフェス三河2023.9.16
stanby_inc
1
2.3k
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
450
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Designing for Timeless Needs
cassininazir
1
560
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
510
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
GitHub's CSS Performance
jonrohan
1033
470k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
A designer walks into a library…
pauljervisheath
211
25k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Transcript
© Stanby, Inc. TypeScript ASTとJSDocで実現する コードの自動削除 株式会社スタンバイ 川野 賢一 1
2025.05.24 TSKaigi 2025
© Stanby, Inc. 自己紹介 2024年1月に株式会社スタンバイに中途入社 仕事 • 求人検索エンジン「スタンバイ」のWebフロントエンド開発 • オウンドメディア「スタンバイplus」の開発
+α • 日々の業務を楽に楽しくするためTypeScript製社内ツールの開発 ◦ Chrome拡張機能、Slack App、GASなど TSKaigi 2024でASTの話を聞いたことをきっかけに、ASTを活用したCLI ツールも作りました!(本日のテーマです!) 2 川野 賢一
© Stanby, Inc. 不要になったA/Bテストのコード どうやって消してますか? 3
© Stanby, Inc. 我々のチームではこれまで コメントアウトを使って範囲を示し 目視で手動で消してました 4
© Stanby, Inc. コメントアウトを使った範囲指定のやり方 5
© Stanby, Inc. コメントアウトを使った範囲指定のやり方 ❌ 範囲指定を間違えてしまう ❌ 書きたい順序でかけない ❌ 開始/終了コメントを書き忘れる
6 困ったこと
© Stanby, Inc. コメントアウトを使う背景 7 多くの開発が並行して行われている
© Stanby, Inc. さらなる困ったこと 8
© Stanby, Inc. さらなる困ったこと 9
© Stanby, Inc. さらなる困ったこと 10
© Stanby, Inc. さらなる困ったこと 11
© Stanby, Inc. さらなる困ったこと 12
© Stanby, Inc. さらなる困ったこと 13
© Stanby, Inc. さらなる困ったこと 14
© Stanby, Inc. さらなる困ったこと 15 1つずつ確認して 削除するのがツラい!!
© Stanby, Inc. 問題は2つ • 目印の残し方(範囲指定)がイケてない • 1つずつ確認して削除するのが大変 16
© Stanby, Inc. ① JSDocで範囲の問題を解決する! 17
© Stanby, Inc. コメントアウトの代わりにJSDocを使う 18
© Stanby, Inc. コメントアウトの代わりにJSDocを使う 範囲の概念がなくなり、これらの問題は解決!! ✅ 範囲指定を間違えてしまう ✅ 書きたい順序でかけない ✅
開始/終了コメントを書き忘れる 19 JSDocを使って対象を指定する
© Stanby, Inc. 問題は2つ • 目印の残し方(範囲指定)がイケてない • 1つずつ確認して削除するのが大変 20
© Stanby, Inc. ② ASTを活用して自動化する! 21
© Stanby, Inc. コメントアウトとJSDocの違い 22 JSDocはノードに紐づく
© Stanby, Inc. 構文解析して対象のノードを削除する 23
© Stanby, Inc. 構文解析して対象のノードを削除する 24 JSDocのタグを取得し 対象であればノードを削除する 1つずつノードを見ていく中で
© Stanby, Inc. これまでは コメントアウトを使って範囲を示し 目視で手動で消してましたが 😢 25
© Stanby, Inc. これからは JSDocを使って対象を指定し CLIで自動で消せるようになりました 🎉 26
© Stanby, Inc. 今後の展望 条件分岐を含むような複雑なケースに対応できていない…😢 コマンドを実行するだけで 不要なコードをすべて削除できるようにしたい!💪 27
None