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
Findyの開発生産性を上げるためにやったこと
Search
puku0x
October 06, 2023
Technology
650
1
Share
Findyの開発生産性を上げるためにやったこと
開発生産性LT Night in 福岡
puku0x
October 06, 2023
More Decks by puku0x
See All by puku0x
Agent Skills 入門
puku0x
0
1.6k
ファインディにおけるフロントエンド技術選定の歴史
puku0x
2
1.9k
生成AIではじめるテスト駆動開発
puku0x
0
1.1k
実践!カスタムインストラクション&スラッシュコマンド
puku0x
2
3k
Nx × AI によるモノレポ活用 〜コードジェネレーター編〜
puku0x
0
1.5k
ファインディにおけるフロントエンド技術選定の歴史
puku0x
2
290
ファインディでのGitHub Actions活用事例
puku0x
9
3.8k
Findyの開発生産性向上への取り組み ~Findyフロントエンドの場合~
puku0x
0
470
Angularコーディングスタイルガイドはいいぞ
puku0x
1
430
Other Decks in Technology
See All in Technology
最大のアウトプット術は問題を作ること
ryoaccount
0
260
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
680
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
330
Databricks Lakehouse Federationで 運用負荷ゼロのデータ連携
nek0128
0
100
ThetaOS - A Mythical Machine comes Alive
aslander
0
230
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
1
220
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
890
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
170
Move Fast and Break Things: 10 in 20
ramimac
0
110
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
410
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
First, design no harm
axbom
PRO
2
1.2k
New Earth Scene 8
popppiees
2
2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
160
Automating Front-end Workflow
addyosmani
1370
200k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
350
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
95
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
30 Presentation Tips
portentint
PRO
1
270
Transcript
Findyの開発生産性を 上げるためにやったこと 開発生産性LT Night in 福岡 @puku0x Noriyuki Shinpuku
@puku0x 2
@puku0x バッジ機能リニューアル! 3 https://findy-code.io/badges
@puku0x 4
@puku0x 5 Findyの開発生産性は?
@puku0x 6 直近1年間の転職サービス「 Findy」フロントエンドのリードタイムおよびプルリクエスト数
@puku0x 7 PRはだいたい10件/日 PRオープン後、即レビュー その日の内に改修完了 直近1年間の転職サービス「 Findy」フロントエンドのリードタイムおよびプルリクエスト数
@puku0x 8 最初から上手くいっている わけではなかった
@puku0x 以前の環境(〜2021) 9 • Ruby on Rails + Next.js/React 16
※当時はモノリス解体→Next.js化プロジェクトの後期 • バージョンの古いツール・ライブラリ多数 • 型(Flow)はある、テストは無い • 見通しの悪い設計 やばい
@puku0x やったこと: 技術的負債の返済 10
@puku0x 開発基盤の刷新 11 • 依存ライブラリのバージョンアップ ◦ Dependabot導入 • モダンな環境に移行 ◦
TypeScript、React v16.8+ ◦ Nx、Jest、ESLint、Prettier
@puku0x • 依存の方向を揃える(大事!) • Container/Presentational Componentベースの三層構造 設計刷新 12 Page Component
Container Component Presentational Component URLパラメータの解釈 APIとの通信 描画・フォーム制御 Custom Hook Custom Hook Custom Hook
@puku0x • 書けそうなところから着手 ◦ ロジックのユニットテスト ◦ コンポーネントのスナップショットテスト など • テストを書く→テストを書きやすい設計
の好循環 ◦ Wallaby.jsなどの可視化ツールも有用 テストの拡充 13
@puku0x やったか...!? 14
@puku0x 新たな課題 15 • CIが遅い ◦ コード量が増えればCI時間も増える • CIが遅いとどうなる? ◦
レビューが放置される ▪ ブランチ生存期間が延びる • コンフリクト多発 20分後でいいや
@puku0x やったこと: CIの高速化 16
@puku0x CIの高速化 17 • 変更検知+キャッシュ活用 毎月300時間以上を削減 平均5分でCI完了 https://nx.app/ はいいぞ その他:
ジョブ並列化、仮想マシンのアップグレード等
@puku0x 18 2022年 2021年 2023年 一人あたりの開発生産性が約3倍に ※2021年〜2023年までの転職サービス「Findy」フロントエンドの4月のデータ
@puku0x まとめ 19 • 開発生産性を上げるためにやったこと ◦ 技術的負債の返済 ◦ CIの高速化 Findy
Team+も よろしくお願いします
@puku0x ご清聴ありがとうございました @puku0x Noriyuki Shinpuku