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.6k
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の導入から運用まで
pospome
8
3.9k
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
10
5.7k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
42
17k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
4.1k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.9k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
740
(再アップロード)Microservices & APIs
pospome
0
150
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
160
マイクロサービス環境におけるToilを削減するTerraformの活用 in DMMプラットフォーム
pospome
3
1.6k
Other Decks in Programming
See All in Programming
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
730
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
730
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
1
180
iOSエンジニアから始める visionOS アプリ開発
nao_randd
3
130
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
310
最近のVS Codeで気になるニュース 2025/01
74th
1
260
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
1
140
昭和の職場からアジャイルの世界へ
kumagoro95
1
360
Rails アプリ地図考 Flush Cut
makicamel
1
110
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
300
Featured
See All Featured
Building an army of robots
kneath
302
45k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Done Done
chrislema
182
16k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
29
2.2k
The Invisible Side of Design
smashingmag
299
50k
Automating Front-end Workflow
addyosmani
1367
200k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Designing for humans not robots
tammielis
250
25k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
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に危機感を持ってもらう。 ◦ 各チームに介入する妥当性を保証できる。
まとめ • 大きな組織になるほどコード品質に向き合うのは難しくなる。 • 組織的に戦略を立てて取り組む必要がある。 ◦ 組織としてコード品質に投資する意思決定が必要になる。
おわり