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
モジュラモノリス、その前に / Modular monolith, before that
Search
Shintani Teppei
October 03, 2024
Programming
8
1.1k
モジュラモノリス、その前に / Modular monolith, before that
【オフライン開催】Omotesando.rb #102 の発表スライドです。
https://omotesandorb.connpass.com/event/331315/
Shintani Teppei
October 03, 2024
Tweet
Share
More Decks by Shintani Teppei
See All by Shintani Teppei
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
170
ISUCONで型をつける
euglena1215
1
110
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
5.2k
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
220
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
800
Ruby の型に関する活動をやっている話 / Activities related to Ruby types
euglena1215
3
370
そろそろ理解する includes / Understanding includes
euglena1215
1
930
習うより慣れる Ruby AST / Ruby AST is better to get used to than to learn.
euglena1215
2
620
Railsでエンドポイントごとのテストカバレッジを測定する / Measuring Test Coverage per Endpoint in Rails
euglena1215
1
540
Other Decks in Programming
See All in Programming
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
110
Porting a visionOS App to Android XR
akkeylab
0
580
技術同人誌をMCP Serverにしてみた
74th
1
660
RailsGirls IZUMO スポンサーLT
16bitidol
0
190
ふつうの技術スタックでアート作品を作ってみる
akira888
1
890
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
5
1.1k
テスト駆動Kaggle
isax1015
1
410
効率的な開発手段として VRTを活用する
ishkawa
0
150
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
150
XP, Testing and ninja testing
m_seki
3
250
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
790
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
640
Featured
See All Featured
Done Done
chrislema
184
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
How STYLIGHT went responsive
nonsquared
100
5.6k
Optimizing for Happiness
mojombo
379
70k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
A designer walks into a library…
pauljervisheath
207
24k
GitHub's CSS Performance
jonrohan
1031
460k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Designing for humans not robots
tammielis
253
25k
Transcript
2024/10/03 omotesando.rb #102 株式会社タイミー 新谷哲平 モジュラモノリス、その前に スポンサーLT @euglena1215
自己紹介 Shintani Teppei(@euglena1215) • 株式会社タイミー • バックエンド テックリード • ISUCONに向けて過去問に
型をつけています
引用: エンジニア681名に聞いた「今、注目している企業」|2024年9月最新版 https://findy-code.io/blog/featured-companies-202409/ Findyの「直近1年で知って 興味を持った企業」に選出していた だきました🎉
【宣伝】Kaigi on Rails 終了後 Drinkup やるよ! https://youtrust.connpass.com/event/332094/
2024/10/03 omotesando.rb #102 株式会社タイミー 新谷哲平 モジュラモノリス、その前に スポンサーLT @euglena1215
どんなことを話すか タイミー、モジュラモノリスやっていきます! と宣言して早2年。 試行錯誤しながら進めてみて、今モジュラモノリスを どのように捉えているかを話してみたいと思います。
モジュラモノリスとは モジュラモノリスとは、各メンバーが全てのコード・変更を把握するのが 困難になり、詳しくないコードがある中でもなんとか開発をやっていくしかない 組織向けのアーキテクチャのプラクティス。
モジュラモノリスとは モジュラモノリスとは、各メンバーが全てのコード・変更を把握するのが 困難になり、詳しくないコードがある中でもなんとか開発をやっていくしかない 組織向けのアーキテクチャのプラクティス。 なぜそういった組織がモジュラモノリスアーキテクチャに辿り着くのかを モジュラモノリスの成り立ちを予想しながら話してみます。
モジュラモノリスの成り立ちを予想する チームごとに変更するコードの範囲が異なる状況で開発を行なっていると...
モジュラモノリスの成り立ちを予想する 着ぐるみに 詳しい 揚げ物に 詳しい トルコアイスに 詳しい ワインに 詳しい チームごとに知識の偏りが発生し、チーム間での知識格差が起きる
モジュラモノリスの成り立ちを予想する ちょ、溶けるって! 知識格差が生まれるからこそ、特定領域の知識を持つ人が知識を持たない人の 変更に対してチェックを行う必要が生まれる(コードの所有権) 揚げ物に トルコアイス追加するね
モジュラモノリスの成り立ちを予想する コードレビューはチーム内で完結した方が早いため、 なるべく他チームと独立した形で実装が行われるようになる コードレビューまだかな... うちのチームは今日は MTGデーなので レビューできないよ
モジュラモノリスの成り立ちを予想する 次第にコードは疎結合になっていく 結果として、よく紹介されるモジュラモノリスの形に近づく このアーキテクチャに 名前をつけよう
改めてモジュラモノリスとは モジュラモノリスとは、各メンバーが全てのコード・変更を把握するのが 困難になり、詳しくないコードがある中でもなんとか開発をやっていくしかない 組織向けのプラクティス。 少人数で開発していて全員がほぼ全てのコードに目を通しているような状況では 気にしなくていい(と個人的には思う) モジュラモノリスの波に 乗り遅れる!
改めてモジュラモノリスとは モノリス辛いからモジュラモノリス目指すぞ!となった際も packwerkなどのツール選定を行う前にすべきことがある。
モジュラモノリスその前に Q. チームごとに変更するコードの領域の重なりが十分に小さい? ✅ Good! ❌ チームの責務の整理が必要
モジュラモノリスその前に Q. コードを変更する際は、メンテする人が必ずチェックする体制になっている? 他チームがメンテしているコードは 他チームからのレビューが行われる ✅ Good! 他チームがメンテしているコードでも 誰でも好きに変更できる ❌
コードオーナー文化の醸成が必要
モジュラモノリスその前に 以下の質問に Yes と答えられますか? Q. チームごとに変更するコードの領域の重なりが十分に小さい? Q. コードを変更する際は、必ずメンテする人がチェックする体制になっている? もしかすると新たなツールの導入の前にやれることがあるかもしれない
今取り組もうとしていること ちなみに質問に我々が答えると... Q. チームごとに変更するコードの領域の重なりが十分に小さい? → A. Q. コードを変更する際は、必ずメンテする人がチェックする体制になっている? → A.
今取り組もうとしていること ちなみに質問に我々が答えると... Q. チームごとに変更するコードの領域の重なりが十分に小さい? → A. 微妙... Q. コードを変更する際は、必ずメンテする人がチェックする体制になっている? →
A.
今取り組もうとしていること ちなみに質問に我々が答えると... Q. チームごとに変更するコードの領域の重なりが十分に小さい? → A. 微妙... Q. コードを変更する際は、必ずメンテする人がチェックする体制になっている? →
A. いいえ
今取り組もうとしていること ちなみに質問に我々が答えると... Q. チームごとに変更するコードの領域の重なりが十分に小さい? → A. 微妙... Q. コードを変更する際は、必ずメンテする人がチェックする体制になっている? →
A. いいえ まずはここを Yes と言えるように改善を進行中🔥
2024/10/03 omotesando.rb #102 株式会社タイミー 新谷哲平 モジュラモノリス、その前に スポンサーLT @euglena1215
懇親会 or カジュアル面談で話しましょう! https://product-recruit.timee.co.jp/casual モジュラモノリスについてもっと議論したい方は 懇親会かカジュアル面談で対戦よろしくお願い します! 「タイミー カジュアル面談」で検索 🔍 備考欄に「新谷とモジュラモノリスの話をしたい」と書いたら
100%自分がアサインされます。