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
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
Search
pospome
November 21, 2023
Programming
3
2.2k
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
"コード品質向上のいろは - 先達に学ぶ実践例 Lunch LT" の資料です。
https://findy.connpass.com/event/300912/
pospome
November 21, 2023
Tweet
Share
More Decks by pospome
See All by pospome
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.3k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
29
11k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
3.4k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.5k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
430
(再アップロード)Microservices & APIs
pospome
0
73
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
70
マイクロサービス環境におけるToilを削減するTerraformの活用 in DMMプラットフォーム
pospome
3
1.3k
組織のコード品質を向上させる “レビューシステム”の取り組み
pospome
14
7.6k
Other Decks in Programming
See All in Programming
Domain-Driven Transformation
hschwentner
2
1.5k
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.6k
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
460
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
130
Tailwind CSSを本気でカスタマイズする方法
fsubal
15
5.5k
Hanami and htmx
bkuhlmann
0
230
Deep Dive into React Stream/Serialize
mugi_uno
3
740
敵対的ポイフル
futabato
0
150
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
240
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
190
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
260
Elm Form Validation
bkuhlmann
0
520
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
36
2.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Why Our Code Smells
bkeepers
PRO
331
56k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
14
8.4k
The Mythical Team-Month
searls
217
42k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Embracing the Ebb and Flow
colly
80
4.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Gamification - CAS2011
davidbonilla
77
4.6k
Transcript
DMMプラットフォームにおける コード品質を改善する取り組み 理想と現実 @pospome
登壇者 名前:pospome(ぽすぽめ) 所属:DMMプラットフォーム Twitter:@pospome
今回の発表内容について DMMプラットフォーム x コード品質向上 x 理想と現実
DMMプラットフォームについて 扱う領域:DMM会員、決済、DMMポイント、不正対策など エンジニア数:120名以上 開発チーム数:16チーム マイクロサービス数:約40サービス ピーク時のリクエスト:19,000RPS
レガシーシステムのリプレイスプロジェクト • DMMプラットフォーム内のレガシーシステムをリプレイスする。 • コード品質を高く保つ体制が必要になる。
pospomeの持論 コード品質を高く保つには以下の要素が必要である。 1. 定期的なリファクタリング 2. 静的解析 3. 設計スキルの高いエンジニア←これが重要
レビューシステムの導入 • 各チームのコードを設計スキルの高いエンジニアがレビューする。 擬似的に「強いエンジニアがいる環境」を作った。 • 自チームの数人が業務時間を割いて取り組んだ。 • 正直な話、結構成功させる自信があった。
レビューシステムの導入
そんなことはなかった・・・ チームによって様々な課題を抱えていた。 • リファクタリング時間の確保が難しい。 • コードの良し悪しを精度高く判断できる人がいない。 • テストコードを書いていない & カバレッジ可視化してない。
• マネージャーやテックリードがコード品質に対するリテラシーを持っていな い。
Developer Productivity Teamの設立 • 専門のチームを設立 コード品質に対して組織的に取り組んでいく
Developer Productivity Teamの取り組み • レビューシステムによるコードレビューは継続 ◦ 問題のあるコードを記録 ◦ 解消率によってリファクタリング時間の確保を可視化 •
Sonar Cloudの導入 ◦ テストカバレッジの可視化 ◦ 問題のあるコードの可視化(静的解析) • モノレポの導入 ◦ コードを一元管理
Developer Productivity Teamの取り組み • 各チームのコード品質を可視化し、比較できるようにする。 ◦ 各チームのマネージャーやTLに危機感を持ってもらう。 ◦ 各チームに介入する妥当性を保証できる。
まとめ • 大きな組織になるほどコード品質に向き合うのは難しくなる。 • 組織的に戦略を立てて取り組む必要がある。 ◦ 組織としてコード品質に投資する意思決定が必要になる。
おわり