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
AI疲れに効く、フロントエンドのワークフロー整備
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
karukan029
August 22, 2025
Programming
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AI疲れに効く、フロントエンドのワークフロー整備
karukan029
August 22, 2025
More Decks by karukan029
See All by karukan029
Temporal - TypeScript 6.0で始める新しい日時API
karukan029
1
440
tsgoを触ってみて得た学び
karukan029
0
1.3k
Nxはいいぞ! monorepoプロジェクトにおける 差分検知を活用した型チェック最適化
karukan029
0
2.3k
Other Decks in Programming
See All in Programming
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
140
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
160
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
720
Building a Meta Ray-Ban display app
akkeylab
0
180
ソフトウェアラスタライザ
fadis
1
630
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
600
Oxlintはいいぞ(続)
yug1224
1
430
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
380
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
410
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
940
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
380
The Cost Of JavaScript in 2023
addyosmani
55
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
500
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
Into the Great Unknown - MozCon
thekraken
41
2.7k
Transcript
© Findy Inc. 2025.08.20 すごくすごい。フロントエンドミートアップ AI疲れに効く、 フロントエンドのワークフロー整備 1 甲斐 和基
ファインディ株式会社 フロントエンドエンジニア @karukan029
© Findy Inc. ファインディが展開するエンジニアプラットフォーム サービス紹介 ToC / ToB 正社員エンジニアの採⽤ 約12万⼈のエンジニアと880社以上のテッ
ク企業をマッチング。 マッチングサービス フリーランスエンジニアの採⽤ 5万⼈以上のフリーランスエンジニアの成 功報酬型の⼈材紹介サービス。 外国籍エンジニアの採⽤ インドを中⼼とした海外のハイスキルエン ジニアと⽇本企業をマッチング。 SaaS / ToB エンジニア組織の⾒える化 GitHubやJiraを解析し、エンジニア組織の ⾒える化と⽣産性向上をサポート。 組織分析SaaS ToC / ToB 開発ツールのレビューサイト 実際に利⽤している企業の声を元に、開発 ツールの導⼊や検討に必要な情報を集約。 企業の技術選定をサポート。 開発ツールメディア ※ 各種数値は、2024年6月時点のFindy転職、Findy Freelance、Findy Team+、Findy Globalの4サービスの累計での社数及び登録者数です。 なお、1社又は1名の方が複数のサービスに登録している場合は、そのサービスの数に応じて複数のカウントをしています。 β版 2
© Findy Inc. 3 AI疲れしていませんか?
© Findy Inc. 4 AI疲れしていませんか? • AIがコード書いてもいいけど散らかさないで ◦ コードを書くという楽しい部分をAIがやっている ◦
こちらが想定しているレベルのコードを出⼒してくれるまで四苦⼋苦 • AIが⽣成したものが正しいか最終的に評価するのは⼈ ◦ 読まないといけないものが汚いと⼈が⾟い • AIに好き勝⼿させないための仕組みの整備が重要 ◦ 機械的にチェックできるものは仕組みでカバーしたい ◦ 守りと⾼速化を両⽴したい
© Findy Inc. 5 AI疲れしていませんか? • 前提 ◦ ⽣成AIを活⽤するために新たに環境整備した話ではありません ◦
今まで実施していた環境整備の取り組みの内、⽣成AI活⽤するようになって特に役⽴っているも のを紹介しています
© Findy Inc. 6 守りと⾼速化を両⽴するための ワークフロー
© Findy Inc. 7 「守り」の仕組み
© Findy Inc. 「守り」の仕組み 8 • 静的解析 • ⾃動テスト •
フィーチャーフラグ
© Findy Inc. 静的解析 9 TypeScript • 型チェックによる静的解析 ESLint‧Stylelint •
コード解析によってルールに沿ったコードであることを静的解析 Prettier • コードをルールに沿ってフォーマット pre-commitのタイミングでチェック、コードを⾃動修正 • ルールに従ったコードのみコミット • 不要なCIの実⾏を防ぐ
© Findy Inc. 静的解析 10 モジュール境界の強制 • Findy Team+のフロントエンドは、Nxを使⽤したモノレポ構成になっている ◦
Nx:モノレポやアプリケーションのビルド、テストの実⾏、コード⽣成などの機能を備えた統合 的なツール ◦ 内部に100以上のモジュールを持つモノレポ構成であり、複雑性が⾼い ▪ 循環参照(循環依存)が発⽣しないよう注意する必要がある • Nxが提供している @nx/enforce-module-boundaries ルールで制御 ◦ プロジェクトの設定でタグを指定することができる ◦ プロジェクトに設定したタグに依存可能なタグを定義することで、依存の⽅向性を定義すること ができる
© Findy Inc. 静的解析 11 設定の例 libs/components (type:ui) → libs/utils
(type:util) の依存は許可され、逆⽅向の依存は許可されない
© Findy Inc. 12 ⾃動テスト • Unit、Integration テスト ◦ Vitest
◦ Testing Library • E2Eテスト ◦ Playwright • VRT(Visual Regression Testing) ◦ storycap+reg-suit ◦ UIコンポーネントの意図しない⾒た⽬の変化を⾃動検知
© Findy Inc. 13 ⾃動テスト • 期待する振る舞いをテストコードで保証する ◦ AIは仕様があっているか判断するためにもテストコードは重要 ▪
期待値を明確にできる ▪ テストが失敗する=仕様通りでないとAIが判断できる • 修正時の影響範囲を予測しやすくする ◦ 影響あればテストコードが落ちる ◦ テストがちゃんとしていればコードの質が⾼くなくてもマージしても問題ない
© Findy Inc. 14 フィーチャーフラグ • コードを書き換えることなく特定の機能を有効化‧無効化できる仕組み • ユーザーに影響がでないように本番環境にコードを反映することができる ◦
開発途中の状態のコードもデプロイできる ◦ コンフリクトが発⽣しづらくなる ◦ ⽣成AIの活⽤により、Pull Request数が増加するとマージする回数も増加するため、コンフリク トが発⽣しづらくなるメリットをより享受しやすくなる
© Findy Inc. 15 「守り」の⾼速化
© Findy Inc. 16 キャッシュ活⽤によるCIの⾼速化 Nxのキャッシュ活⽤によるCIの⾼速化 • 変更があったプロジェクトと依存関係のあるプロジェクトのみをCIの対象にする ◦ 依存関係がないプロジェクトはスキップする
◦ 依存関係が⼩さいPRほどCIが早く終わる ◦ PRを適切な粒度に保つことがCIの⾼速化にも結びつく構成 • 依存関係を適切に整理し、アーキテクチャをメンテナンスすることでキャッシュの恩恵を最⼤限受ける ことができる ◦ キャッシュをうまく活⽤できるようにプロジェクトの構成も継続的に改善している
© Findy Inc. 17 CI環境の最適化 負荷に合わせてスペックを最適化 • GitHub Actionsのrunnerのスペックを最適化する ◦
依存するプロジェクト数に応じて、Larger runnerを使⽤ ▪ 負荷が⾼い時だけスペックを上げる • 現在のGitHub Actionsには、変更の規模や負荷に応じて動的にランナーを切り替える機能がない ◦ Nxを使⽤して、影響を受けるプロジェクトの数を取得 ◦ プロジェクト数に応じてランナーを切り替える
© Findy Inc. 18 CI環境の最適化 負荷に合わせてスペックを最適化
© Findy Inc. 19 まとめ
© Findy Inc. 20 まとめ • これらの取り組みは元々、品質を保ちながらスピード感を持って開発するための取り組み ◦ 今までの積み重ねの結果が、AIと協業するための⼟台となっている •
⽣成AIを活⽤するために整備するというより、今までと変わらず品質の⾼いコードを安全に⾼速にリ リースし続けるための環境整備が重要 ◦ 品質を保ちながら⾼速にリリースできる環境整備は、⼈にとってもAIにとっても重要
© Findy Inc. 21 ご清聴ありがとうございました