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
210
ISUCONで型をつける
euglena1215
1
120
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
5.3k
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
230
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
830
Ruby の型に関する活動をやっている話 / Activities related to Ruby types
euglena1215
3
390
そろそろ理解する includes / Understanding includes
euglena1215
1
940
習うより慣れる Ruby AST / Ruby AST is better to get used to than to learn.
euglena1215
2
650
Railsでエンドポイントごとのテストカバレッジを測定する / Measuring Test Coverage per Endpoint in Rails
euglena1215
1
560
Other Decks in Programming
See All in Programming
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
1
720
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
210
フロントエンドのmonorepo化と責務分離のリアーキテクト
kajitack
2
140
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
140
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
770
tool ディレクティブを導入してみた感想
sgash708
1
150
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
180
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
190
AHC051解法紹介
eijirou
0
620
CEDEC2025 長期運営ゲームをあと10年続けるための0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~
akatsukigames_tech
0
150
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
2.3k
コーディングエージェント時代のNeovim
key60228
1
100
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Agile that works and the tools we love
rasmusluckow
329
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Visualization
eitanlees
147
16k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Thoughts on Productivity
jonyablonski
69
4.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Designing for humans not robots
tammielis
253
25k
What's in a price? How to price your products and services
michaelherold
246
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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%自分がアサインされます。