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
970
モジュラモノリス、その前に / 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
ISUCONで型をつける
euglena1215
1
77
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
4.7k
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
180
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
600
Ruby の型に関する活動をやっている話 / Activities related to Ruby types
euglena1215
3
310
そろそろ理解する includes / Understanding includes
euglena1215
1
880
習うより慣れる Ruby AST / Ruby AST is better to get used to than to learn.
euglena1215
2
500
Railsでエンドポイントごとのテストカバレッジを測定する / Measuring Test Coverage per Endpoint in Rails
euglena1215
1
480
初めてrails/railsにバグレポートを出してみた
euglena1215
0
230
Other Decks in Programming
See All in Programming
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
180
楽しく向き合う例外対応
okutsu
0
580
複数のAWSアカウントから横断で 利用する Lambda Authorizer の作り方
tc3jp
0
110
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.6k
Ça bouge du côté des animations CSS !
goetter
2
140
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
750
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
コードを読んで理解するko build
bells17
1
110
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
Unity Android XR入門
sakutama_11
0
180
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
360
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
150
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
For a Future-Friendly Web
brad_frost
176
9.6k
Code Review Best Practice
trishagee
67
18k
Navigating Team Friction
lara
183
15k
Embracing the Ebb and Flow
colly
84
4.6k
A Philosophy of Restraint
colly
203
16k
Designing for humans not robots
tammielis
250
25k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
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%自分がアサインされます。