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 ASTとJSDocで実現するコードの自動削除 / Auto remove...
Search
スタンバイ
May 21, 2025
2
290
TypeScript ASTとJSDocで実現するコードの自動削除 / Auto remove code with TypeScript AST and JSDoc
スタンバイ
May 21, 2025
Tweet
Share
More Decks by スタンバイ
See All by スタンバイ
スタンバイ会社紹介資料
stanby_inc
0
900
プロダクト部門のマネージャー全員でマネジメントポリシーを宣言した記録_-_EMConf_JP_2025.2.27.pdf
stanby_inc
1
3.2k
スタンバイ会社紹介資料
stanby_inc
0
53k
Amazon Aurora のインフラコストを55%削減した話
stanby_inc
0
4.8k
スタンバイQAのテスト自動化導入
stanby_inc
0
1k
検索エンジンをVespaへ移行しています
stanby_inc
0
1.2k
どうするLeSS - スクラムフェス三河2023.9.16
stanby_inc
1
1.7k
スタンバイにおけるSLOの、これまでとこれから
stanby_inc
0
980
スタンバイにおける自然言語処理の利用
stanby_inc
0
1.7k
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
7
640
Building Adaptive Systems
keathley
44
2.8k
Site-Speed That Sticks
csswizardry
13
930
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
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