Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yoshitaka Kawashima
PDF, PPTX
3,058 views
Grokking Simplicity探訪
2024/6/5のアーキ部で話したスライドです。Stratified Designの目的を中心に、そのメリットを考えてみます。
Software
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 50
2
/ 50
3
/ 50
4
/ 50
5
/ 50
6
/ 50
7
/ 50
8
/ 50
9
/ 50
10
/ 50
11
/ 50
12
/ 50
13
/ 50
14
/ 50
15
/ 50
16
/ 50
17
/ 50
18
/ 50
19
/ 50
20
/ 50
21
/ 50
22
/ 50
Most read
23
/ 50
24
/ 50
25
/ 50
26
/ 50
27
/ 50
28
/ 50
29
/ 50
30
/ 50
31
/ 50
32
/ 50
33
/ 50
34
/ 50
35
/ 50
36
/ 50
37
/ 50
38
/ 50
39
/ 50
40
/ 50
41
/ 50
42
/ 50
43
/ 50
44
/ 50
45
/ 50
46
/ 50
47
/ 50
48
/ 50
49
/ 50
Most read
50
/ 50
Most read
Recommended
PDF
Tackling Complexity
by
Yoshitaka Kawashima
PDF
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
PDF
例外設計における大罪
by
Takuto Wada
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PPTX
冬のLock free祭り safe
by
Kumazaki Hiroki
PDF
こわくない Git
by
Kota Saito
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PPTX
イベント・ソーシングを知る
by
Shuhei Fujita
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PPTX
やってはいけない空振りDelete
by
Yu Yamada
PDF
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PDF
文字コードに起因する脆弱性とその対策(増補版)
by
Hiroshi Tokumaru
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
by
Yoshitaka Kawashima
PDF
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
ブルックスのいう銀の弾丸とは何か?
by
Yoshitaka Kawashima
PDF
Are Design Patterns Dead?
by
Yoshitaka Kawashima
More Related Content
PDF
Tackling Complexity
by
Yoshitaka Kawashima
PDF
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
PDF
例外設計における大罪
by
Takuto Wada
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
Tackling Complexity
by
Yoshitaka Kawashima
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
例外設計における大罪
by
Takuto Wada
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
マイクロサービス 4つの分割アプローチ
by
増田 亨
PostgreSQLアンチパターン
by
Soudai Sone
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
What's hot
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PPTX
冬のLock free祭り safe
by
Kumazaki Hiroki
PDF
こわくない Git
by
Kota Saito
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PPTX
イベント・ソーシングを知る
by
Shuhei Fujita
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PPTX
やってはいけない空振りDelete
by
Yu Yamada
PDF
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PDF
文字コードに起因する脆弱性とその対策(増補版)
by
Hiroshi Tokumaru
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
by
Yoshitaka Kawashima
PDF
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
冬のLock free祭り safe
by
Kumazaki Hiroki
こわくない Git
by
Kota Saito
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
イベント・ソーシングを知る
by
Shuhei Fujita
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
やってはいけない空振りDelete
by
Yu Yamada
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
文字コードに起因する脆弱性とその対策(増補版)
by
Hiroshi Tokumaru
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
by
Yoshitaka Kawashima
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
Linux女子部 systemd徹底入門
by
Etsuji Nakai
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
マイクロにしすぎた結果がこれだよ!
by
mosa siru
More from Yoshitaka Kawashima
PDF
ブルックスのいう銀の弾丸とは何か?
by
Yoshitaka Kawashima
PDF
Are Design Patterns Dead?
by
Yoshitaka Kawashima
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
ソフトウェア設計における 意思決定とそのレビューの秘訣
by
Yoshitaka Kawashima
PDF
なぜデータモデリングが重要なのか?
by
Yoshitaka Kawashima
PDF
アンチフラジャイルの世界
by
Yoshitaka Kawashima
PDF
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
by
Yoshitaka Kawashima
PDF
システムダウンのひみつ
by
Yoshitaka Kawashima
PDF
ウォーターフォールとアジャイルのフェアな比較
by
Yoshitaka Kawashima
PDF
Mavenの真実とウソ
by
Yoshitaka Kawashima
PDF
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
PDF
Atomic Architecture
by
Yoshitaka Kawashima
PDF
たとえ日本人同士でも必要な異文化理解力
by
Yoshitaka Kawashima
PDF
Boilerplate vs Magic
by
Yoshitaka Kawashima
PDF
Antifragile Java - Java Day Tokyo 2017 D1-E1
by
Yoshitaka Kawashima
PDF
Antifragile Clojure
by
Yoshitaka Kawashima
PDF
本番障害に至る病
by
Yoshitaka Kawashima
PDF
既婚プログラマの時間捻出術
by
Yoshitaka Kawashima
PDF
SIerにとっての越境 @ DevLOVE 199
by
Yoshitaka Kawashima
PDF
How to find tech books
by
Yoshitaka Kawashima
ブルックスのいう銀の弾丸とは何か?
by
Yoshitaka Kawashima
Are Design Patterns Dead?
by
Yoshitaka Kawashima
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
ソフトウェア設計における 意思決定とそのレビューの秘訣
by
Yoshitaka Kawashima
なぜデータモデリングが重要なのか?
by
Yoshitaka Kawashima
アンチフラジャイルの世界
by
Yoshitaka Kawashima
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
by
Yoshitaka Kawashima
システムダウンのひみつ
by
Yoshitaka Kawashima
ウォーターフォールとアジャイルのフェアな比較
by
Yoshitaka Kawashima
Mavenの真実とウソ
by
Yoshitaka Kawashima
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
Atomic Architecture
by
Yoshitaka Kawashima
たとえ日本人同士でも必要な異文化理解力
by
Yoshitaka Kawashima
Boilerplate vs Magic
by
Yoshitaka Kawashima
Antifragile Java - Java Day Tokyo 2017 D1-E1
by
Yoshitaka Kawashima
Antifragile Clojure
by
Yoshitaka Kawashima
本番障害に至る病
by
Yoshitaka Kawashima
既婚プログラマの時間捻出術
by
Yoshitaka Kawashima
SIerにとっての越境 @ DevLOVE 199
by
Yoshitaka Kawashima
How to find tech books
by
Yoshitaka Kawashima
Grokking Simplicity探訪
1.
GrokkingSimplicity探訪kawasimaアーキ部
2.
Grokking Simplicity2021年5月 発売日本語未訳他Grokkingシリーズは「なっとく!」シリーズとして続々翻訳されているが…
3.
Data, Action, Calculation計算アクションデータ実行結果が、何回実行するか、いつ実行するかに依存する入力から出力を計算するイベントに関する事実例)
メールを送る、データベースから読み込む例) 最大値を探す、メールアドレスの妥当性を検証する例) 最大値を探す、メールアドレスの妥当性を検証するプログラムを以下の3つに分類してみよう
4.
Calcuration『Grokking Simplicity』の定義入力から出力を計算する関数● 外の世界に影響を与えず、外の世界の影響も受けない●
例○ +, *, -, /○ Math.abs()○ 文字列結合○ Eメールアドレスのバリデーション
5.
Action『Grokking Simplicity』の定義外の世界に影響を与える、または外の世界の影響を受ける関数したがって純関数でないもの、または副作用のあるもの● 例:○
Eメールを送信する○ データベースから読み込む○ ファイルに書き込む● Actionは本番環境で安全に実行するのが難しい● Actionはデバッグするのが難しい
6.
Calculation 割合を増やしたいCalculations CalculationsActions
Actionsこっちの方が安全でデバッグしやすい
7.
https://speakerdeck.com/masuda220/big-ball-of-mudこのあたりの話は、増田さんのスライドでも書かれているので、ぜひご覧になってください。
8.
Action 波及ルールEric Normand『Stratified
design and functional architecture』より←これがActionだと…
9.
Action 波及ルールEric Normand『Stratified
design and functional architecture』より←呼んでいる関数全体がActionになり…
10.
Action 波及ルールEric Normand『Stratified
design and functional architecture』より←結果全てのコードがActionになる
11.
Action 波及ルールへ 抵抗できる限りコールツリーのリーフにCalculationを持ってくる必要がある←Actionを呼んでいるのでこれもActionになってしまう!
12.
Layered Architectureで どうか?Web層Application層Domain層Data
Access層リーフがData AccessかDomainかになるData AccessはActionなので、CalculationなDomainを作らない限り、全てがActionになってしまう。Traditional Layered Architecture
13.
そこまでして純粋性にこだわる必要 ある か?https://www.slideshare.net/slideshow/ss-255489610/255489610ないかもしれない。何を取りに行きたいのか?
要はバラ(略
14.
終と、これだけだとよくある話なのですが、Calculation抽出を追う過程でより深い示唆がえられるというのが今日の話です。
15.
Grokking SimplicityDeep Dive
16.
Calculationを増すのを追い求めるのは、関数の呼び出し階層を作る行為でもある
17.
階層?Web層Application層Domain層Data Access層すでにレイヤ分けはしているのだが…?何のためにレイヤを分けているのか?
18.
そもそもレイヤードアーキテクチャと ?● ソースコードの変更がシステム全体に波及しないようにする。変更は一つのコンポーネントに閉じ込め、他の部分に影響を与えないようにする。●
インターフェースは安定しているべきである。● システムの一部は交換可能であるべきである。コンポーネントは、システムの他の部分に影響を与えることなく、代替実装に置き換えられるべきである。● 似た責務を持つ要素をグループ化して理解しやすさと保守性を高めるべきである。各コンポーネントは一貫性を持つべきであり、一つのコンポーネントが異なる問題を実装すると、その整合性が失われる可能性がある。グループ化と一貫性は時に対立する。『Pattern-Oriented Software Architecture』
19.
POSA Layered ArchitectureLayer
NLayer N-1Layer N-1抽象度が高い抽象度が低い『Pattern-Oriented Software Architecture』同じ抽象度のコンポーネントをグルーピングする各レイヤのコンポーネントは、自分と同じか1つ下のレイヤの機能のみに依存する。個々のレイヤー内ではすべてのコンポーネントが同じ抽象レベルで動作することが不可欠。
20.
Traditional Layered Architecture
レイヤ分割基準 ?抽象度によって分かれている?そもそも抽象とは何か?Web層Application層Domain層Data Access層
21.
A, B, Cの共通項A
B C全体部分 部分 部分これも含まれることがある目的手段 手段 手段振る舞いにフォーカスすると…抽象抽象抽象
22.
目的-手段 関係 フラクタル目的A手段
手段 手段手段目的Aの手段かつ目的B目的Bの手段 目的Bの手段 手段手段目的Bの手段
23.
Action, Calculation コールツリーも目的-手段
フラクタルで構成されれ …目的手段 目的手段 目的手段抽象のレイヤーができる
24.
Stratified Designhttps://medium.com/clean-code-development/stratified-design-over-layered-design-125727c7e15さらに、コールツリーを詳細の実装を持つのはリーフのみにする。ブランチノードは、下位層をコールするのみ。詳細の実装は他のものに依存しないので、テストがしやすい(テストダブルの必要がない)。他のものに依存しないので、だいたいCalculationになる。これは別に新しい考え方というわけでもなく…
25.
Composed Methodメソッドを他のメソッドの呼び出しから構成し、それぞれがほぼ同じ抽象度のレベルにあるようにする。※ ただしあまり具体的なことは『実装パターン』には書いてはいないケントベックならそうする
26.
Stratified DesignによってもたらされるもLayered Architectureの本来の目的の1つ●
似た責務を持つ要素をグループ化して理解しやすさと保守性を高めるべき
27.
例題ナントカPayを作ります。● ウォレットにコインをチャージして、利用したり送金したりできます。● 銀行口座を登録しておくと、そこからウォレットにチャージできます。これは必須ではありません。●
銀行口座を登録する場合は、本人確認が必要です。本人確認は免許証またはマイナンバーで行います(外部API利用)● 口座番号が実在するか確認する必要があります。(外部API利用)● メールアドレスがブラックリストに載っていれば登録できません。(ブラックリストはテキストファイルに1行ずつNGメールアドレスが記載されている)● メールアドレスは全ユーザで一意でなくてはなりません。● これまで一度も登録したことのないユーザであれば、ウォレットに500コインを付与します。https://bitbucket.org/kawasima/design-kata/src/main/src/example/06_pay/
28.
StratifiedでないDesginユーザを登録する運転免許証を使った本人確認銀行口座 実在確認マイナンバーを使った本人確認csvから1行読み出すEメールが他ユーザと一致していないかユーザをDBに保存する初回登録かどうかを判定するウォレットをDBに保存するどれがドメインロジック ?https://bitbucket.org/kawasima/design-kata/src/main/src/example/06_pay/register.ts
29.
StratifiedなDesignユーザを登録する運転免許証を使った本人確認銀行口座 実在確認マイナンバーを使った本人確認csvから1行読み出すユーザをDBに保存する初回登録リワード本人確認する銀行口座 妥当性を確認するメールアドレス
妥当性チェックEメールが他ユーザと一致していないかEメールによるユーザ検索ブラックリストにメアドが載っていない初回登録か判定初回登録検索初回登録コイン付与←大まかな業務ルール↓詳細の業務ルールhttps://bitbucket.org/kawasima/design-kata/src/main/src/example/06_pay/register.ts
30.
保守性↑ユーザを登録する運転免許証を使った本人確認マイナンバーを使った本人確認本人確認するユーザを登録する運転免許証を使った本人確認マイナンバーを使った本人確認本人確認する年金手帳を使った本人確認← 変更なし本人確認の手段が増えても、ユーザを登録する部分は変更しなくても良い↑追加
31.
理解しやすさ↑StratifiedNon-Stratified
32.
汎化抽象化することを汎化(Generalization)するということもあるようだが…抽象化すると汎用的になる、コードの再利用性を高めるってこと?
33.
「汎用」 2つ 意味がある広範に使われる広範を扱える異なる概念なので前ページのGPT-4oの回答には異を唱えたい
34.
「広範を扱える」上位は下位の目的になっており、下位は上位の手段になっている。目的手段抽象具象汎化特化柔軟性や理解容易性に関わってくるいわゆる抽象化の概念
35.
「広範に使われる」ある手段が複数の目的で使われる。再利用性に関わってくる
36.
「汎用的なものを作ろう!」と言った場合、どちらを指しているかを認識することが重要
37.
「広範を扱え」で「広範に使われる」構造「広範を扱える」と「広範に使われる」が両立するセミラティス構造それらは両立可能で、両立するとこのような構造になるはず。←リーフがCalculationになっているとモアベター←同じ抽象レベルのコンポーネント
38.
Bad Scenario1. レイヤごとにコンポーネントを分割し、その責務を考える。2.
柔軟性を持たせるために汎化できるものを考える (部分的抽象化)3. 汎化した処理は、よりバリエーションの多いデータを受け付ける。そのため処理に重複するところが出てくる。4. 重複するところを共通関数(下請けメソッド)として切り出す。(部分的再利用性)レイヤごとに責務を割り当てる設計からスタートする術しか持っていない場合…よく見かけるヤツ!
39.
Stratified Design 階層
特徴目的手段抽象具象特定用途汎用
40.
Clean Architecture“ソースコードの依存関係は常に内側を指す。内側に進むにつれて、抽象度と方針のレベルが高まる。最も外側の円は低レベルの具体的な詳細で構成されている。内側に進むにつれて、ソフトウェアはより抽象的になり、高レベルの方針を包含する。最も内側の円が最も一般的で高いレベルである。”
41.
円 中心ほど抽象度が高い?円 中心ほど抽象度が高いと言っているが、これが決定的な誤り。ユースケースが目的で、ビジネスルール
そ 手段な で、ユースケース 方がハイレベル、抽象度が高い、と考える が普通で ?
42.
ControllerRepositoryUseCasePresenterBusinessRulesRepositoryBusinessRulesRepositoryImplPresenterImplもしかしたらDIPによる依存 逆転がある で、最下層が一番抽象的と言っている
かもしれない ……が、Business Rules UseCase 手段であり、ここに関して POSA レイヤリング 定義にピタッと当て まる で、UseCase 方が抽象度が高いだろう…
43.
そもそも実装分離 ため インタフェース
抽象と言える だろうか?RepositoryRepositoryImpl
44.
抽象化と …?“抽象化とは物事を曖昧にすることではなく、 むしろ人が絶対的な正確さを発揮できる新しい意味の段階をつくりだすこと”Edsger
W. Dijkstra
45.
実装を切り離す目的 インタフェースを抽象化と呼 ない方が良いかもRepositoryRepositoryImpl目的と手段の関係にはなっていないし、新しい意味の段階を作ってはいないClient使う側はどちらにインタフェースと実装とどちらにアクセスしても、その意味は変わらない。
46.
クリーンアーキテクチャ DIP 新しい意味
段階を生み出しているわけで ない で取り除いてみると…ControllerRepositoryUseCasePresenterBusinessRules伝統的なレイヤードアーキテクチャとなんら変わらない。RepositoryBusinessRules← 大事なのはこのレイヤのStratified Design
47.
業務ルール 抽象化同じ振る舞いをグルーピングするだけでなく、大まかに言えば同じ振る舞いと見なせる新しい意味の段階を意図的に作るユーザを登録する運転免許証を使った本人確認銀行口座 実在確認マイナンバーを使った本人確認csvから1行読み出すユーザをDBに保存する初回登録リワード本人確認する銀行口座
妥当性を確認するメールアドレス 妥当性チェックEメールが他ユーザと一致していないかEメールによるユーザ検索ブラックリストにメアドが載っていない初回登録か判定初回登録検索初回登録コイン付与←大まかな業務ルール↓詳細の業務ルール
48.
業務ルール 抽象化● 業務ルールを抽象化しておくと、ルールの追加・変更が下位層に閉じ柔軟性が増す。一度に脳にロードしておくべきコンポーネントが減る、認知負荷が減るので、理解容易性が増す。→
「広範を扱える」ようにするメリット● 業務ルールを抽象化しておくと、下位層のルールの再利用性が増す。→ 「広範に使える」ようにするメリット○ ルール自体をコピペするのではなく、詳細ルールを合成して、新しいルールを作ることもできる。
49.
で Stratified Design当たり前
こと ような に、なぜメジャーじゃない か…?https://ja.wikipedia.org/wiki/凝集度抽象概念 設計が難しく、ミスると凝集度を下げてしまうため
50.
誤って凝集度を下げることなく、StratifiedなDesignをするやり方については、7/13 の大吉祥寺.pmでお話する予定です!お楽しみに!
Download
[8]
ページ先頭
©2009-2025
Movatter.jp