Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIとともに踏み出す技術的負債返済への一歩 / Tech-Debt-Meetup-link-a...

AIとともに踏み出す技術的負債返済への一歩 / Tech-Debt-Meetup-link-and-motivation

Tech-Debt Meetup ~技術的負債と向き合うLT Night~(主催:レバテック株式会社)

リンクアンドモチベーション登壇資料(2024/09/12)

『AIとともに踏み出す技術的負債返済への一歩』

#リンモチ
=============================================
【イベント情報】
■イベントページ
https://levtechcareer.connpass.com/event/329030/

【株式会社リンクアンドモチベーション】
■お問い合わせ
 [email protected]
■テックブログ
 https://link-and-motivation.hatenablog.com/
=============================================

More Decks by リンクアンドモチベーション

Transcript

  1. 4 © Link and Motivation Group 中上 裕基(なかがみ ゆうき) @nakagam3

    自己紹介 1 2015年〜 印刷会社でエンジニアとしてキャリアをスタート 2 2019年〜 大手通信会社でフロントエンドエンジニア/スクラムマスター としてオンラインストアの立ち上げに携わる 3 2022年〜現在 株式会社リンクアンドモチベーションでチームの生産性・開 発者体験の向上というミッションのために奮闘中
  2. 7 © Link and Motivation Group 質問です 古い ライブラリ リアーキ

    テクチャ 「修正自体は軽い」けど 「すっごい大量にある」やつってありません? コードの 共通化
  3. 11 © Link and Motivation Group 置かれてる状況 FEのライブラリをアップデートしたい 新しいAPIを 使いたい

    非推奨になった APIの修正 依存する ライブラリの刷新 挙動の変化 型定義の変更 廃止された構文の 書き換え
  4. 12 © Link and Motivation Group 置かれてる状況 FEのライブラリをアップデートしたい 新しいAPIを 使いたい

    非推奨になった APIの修正 依存する ライブラリの刷新 挙動の変化 型定義の変更 廃止された構文の 書き換え
  5. 20 © Link and Motivation Group 1. aiderと修正してみる Vue 2.6.0以降で非推奨になった

    slot およ び slot-scope 属性をv-slotを使った書き 方に修正してください。 → <ToolTipDecorator :message="userName"> <span slot-scope="{ toggle }" @mouseenter="toggle(isError)" @mouseleave="toggle(isError)" >{{ shortenedUserName }} </span> </ToolTipDecorator> ↓ <ToolTipDecorator :message="userName"> <template v-slot="{ toggle }" @mouseenter="toggle(isError)" @mouseleave="toggle(isError)" >{{ shortenedUserName }} </template> </ToolTipDecorator>
  6. 21 © Link and Motivation Group 1. aiderと修正してみる Vue 2.6.0以降で非推奨になった

    slot およ び slot-scope 属性をv-slotを使った書き 方に修正してください。 制約として、v-slot は <template> だけ に追加できます。それ以外の要素に付いてる 場合はその要素を残しつつtemplateで囲う ようにしてください。 # 例 <div slot="header">Title</div> ↓ <template v-slot:header> <div>Title</div> </template> → <ToolTipDecorator :message="userName"> <span slot-scope="{ toggle }" @mouseenter="toggle(isError)" @mouseleave="toggle(isError)" >{{ shortenedUserName }} </span> </ToolTipDecorator> ↓ <ToolTipDecorator :message="userName"> <template v-slot="{ toggle }"> <span @mouseenter="toggle(isError)" @mouseleave="toggle(isError)" >{{ shortenedUserName }} </span> </template> </ToolTipDecorator>
  7. 22 © Link and Motivation Group 2. aiderに自分を自動化してもらう aiderコマンドの–message-fileオプションを 使ってファイルの修正をしてPRを自動で作る

    shellスクリプトを作ってください。 - ファイルは引数から受け取ること - PRにはaiderラベルをつけること - PRのタイトルは「[Vue3化] aiderによる v-slot対応の自動修正」 ※ 残ってなかったので記憶のやつです → #!/usr/bin # branchを切る suffix=$(date "+%Y%m%d%H%M%S") git checkout -b aider/slot-syntax-$suffix master # aiderを実行 file_path="$1" aider --4o --no-stream --yes ¥ --message-file aider_prompt.md $file_path # pushする git push --set-upstream origin aider/slot-syntax-$suffix # PRを作成 sed "s|{{FILE_PATH}}|$file_path|g" pr_template.md > tmp.md cat aider_prompt.md >> tmp.md gh pr create ¥ --title "[Vue3化] aiderによるv-slot対応の自動修正 @$suffix" ¥ --body-file tmp.md ¥ --base master ¥ --label "aider"
  8. 25 © Link and Motivation Group 精度 103 修正完遂 Aiderで修正できた

    ファイル数 148 全ファイル数 修正した全ファイル数 70% 精度 自動修正できた割合 / ≒
  9. 27 © Link and Motivation Group 効果 工数削減 少しは減ったが結局レビューや手直しは残る PR作成の自動化

    これが一番楽でした! 気持ちの負担軽減 「やってみよう!」と思えたのは良かった!
  10. 32 © Link and Motivation Group • エンジニアリングマネージャー • プロダクトマネージャー

    • テックリード • サーバーサイドエンジニア • フロントエンドエンジニア • SRE • データエンジニア • CRM • UXデザイナー 週1でテックブログ更新しています! まずはカジュアルにお話しましょう! ご連絡お待ちしております! 全職種、積極採用中です! お知らせ