$30 off During Our Annual Pro Sale. View Details »
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.7k
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
10
5.5k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
33
15k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
4k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.8k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
710
(再アップロード)Microservices & APIs
pospome
0
120
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
140
マイクロサービス環境におけるToilを削減するTerraformの活用 in DMMプラットフォーム
pospome
3
1.5k
Other Decks in Programming
See All in Programming
CSC509 Lecture 14
javiergs
PRO
0
110
tidymodelsによるtidyな生存時間解析 / Japan.R2024
dropout009
1
590
社内活動の取り組み紹介 ~ スリーシェイクでこんな取り組みしてます ~
bells17
0
390
14 Years of iOS: Lessons and Key Points
seyfoyun
1
690
Jakarta EE meets AI
ivargrimstad
0
930
CSC305 Lecture 25
javiergs
PRO
0
120
イマのCSSでできる インタラクション最前線 + CSS最新情報
clockmaker
5
3.8k
5分ぐらいで分かる、トリミング機能の作り方
tsutsuitakumi
0
210
たのしいparse.y
ydah
3
110
Arm移行タイムアタック
qnighy
0
410
Leverage LLMs in Java with LangChain4j and Quarkus
hollycummins
0
180
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
7
3.7k
Featured
See All Featured
KATA
mclloyd
29
14k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Into the Great Unknown - MozCon
thekraken
33
1.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Optimising Largest Contentful Paint
csswizardry
33
3k
GitHub's CSS Performance
jonrohan
1030
460k
Faster Mobile Websites
deanohume
305
30k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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に危機感を持ってもらう。 ◦ 各チームに介入する妥当性を保証できる。
まとめ • 大きな組織になるほどコード品質に向き合うのは難しくなる。 • 組織的に戦略を立てて取り組む必要がある。 ◦ 組織としてコード品質に投資する意思決定が必要になる。
おわり