Submit Search
第ⅴ部:clean architecture アーキテクチャ Part4
2 likes
67 views
T
tak
勉強まとめ
Engineering
Read more
1 of 16
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
More Related Content
PDF
第ⅴ部:clean architecture アーキテクチャ Part7
tak
PDF
第ⅴ部:clean architecture アーキテクチャ Part8
tak
PDF
第ⅴ部:clean architecture アーキテクチャ Part6
tak
PDF
第ⅴ部:clean architecture アーキテクチャ Part3
tak
PDF
第ⅴ部:clean architecture アーキテクチャ Part2
tak
PDF
第ⅰ部:Clean Architecture イントロダクション
tak
PDF
第ⅴ部:clean architecture アーキテクチャ Part1
tak
PDF
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
株式会社MonotaRO Tech Team
第ⅴ部:clean architecture アーキテクチャ Part7
tak
第ⅴ部:clean architecture アーキテクチャ Part8
tak
第ⅴ部:clean architecture アーキテクチャ Part6
tak
第ⅴ部:clean architecture アーキテクチャ Part3
tak
第ⅴ部:clean architecture アーキテクチャ Part2
tak
第ⅰ部:Clean Architecture イントロダクション
tak
第ⅴ部:clean architecture アーキテクチャ Part1
tak
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
株式会社MonotaRO Tech Team
Similar to 第ⅴ部:clean architecture アーキテクチャ Part4
(20)
PPTX
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
PPTX
世界一わかりやすいClean Architecture - DroidKaigiバージョン
Atsushi Nakamura
PPTX
Clean architecture 紹介
Shunichiro Watanabe
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
PDF
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
Tomoharu ASAMI
PDF
第ⅱ部:Clean architecture 構成要素から始めよ
tak
PDF
クリーンアーキテクチャを試してみた
Takuya Matsunaga
PDF
クリーンアーキテクチャ学んでみた
Isao Ebisujima
PDF
アプリケーションアーキテクチャの現在、過去、未来
bpstudy
PDF
『アプリケーション アーキテクチャ ガイド2.0』のガイド
Kentaro Inomata
PDF
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
Tomoharu ASAMI
PDF
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
Keizo Tatsumi
PDF
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
Hironori Washizaki
PDF
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
Tomoharu ASAMI
PDF
jjug_night_20161121
Naoya Kojima
PDF
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
kan-notice
PDF
【18-C-3】システムアーキテクチャ構築の実践手法
Developers Summit
PDF
Modeling in the Agile Age and casual astah models
Kenji Hiranabe
PDF
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
Tomoharu ASAMI
PPT
"The Coming-of-Age of Software Architecture Research" 紹介
Tadayoshi Sato
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
世界一わかりやすいClean Architecture - DroidKaigiバージョン
Atsushi Nakamura
Clean architecture 紹介
Shunichiro Watanabe
世界一わかりやすいClean Architecture
Atsushi Nakamura
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
Tomoharu ASAMI
第ⅱ部:Clean architecture 構成要素から始めよ
tak
クリーンアーキテクチャを試してみた
Takuya Matsunaga
クリーンアーキテクチャ学んでみた
Isao Ebisujima
アプリケーションアーキテクチャの現在、過去、未来
bpstudy
『アプリケーション アーキテクチャ ガイド2.0』のガイド
Kentaro Inomata
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
Tomoharu ASAMI
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
Keizo Tatsumi
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
Hironori Washizaki
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
Tomoharu ASAMI
jjug_night_20161121
Naoya Kojima
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
kan-notice
【18-C-3】システムアーキテクチャ構築の実践手法
Developers Summit
Modeling in the Agile Age and casual astah models
Kenji Hiranabe
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
Tomoharu ASAMI
"The Coming-of-Age of Software Architecture Research" 紹介
Tadayoshi Sato
Ad
More from tak
(11)
PPTX
可読性について リーダブルコード Part5(優れたテストコード2)
tak
PPTX
可読性について リーダブルコード Part4(優れたテストコード1)
tak
PPTX
可読性について リーダブルコード Part3(コードの再構築)
tak
PPTX
可読性について リーダブルコード Part2(ループとロジックの単純化)
tak
PPTX
可読性について リーダブルコード part1(表面上の改善)
tak
PPTX
DiI/DIコンテナを一から学んでみた
tak
PPTX
TypeScriptのdecoratorについて
tak
PPTX
Rust + web assemblyやってみた
tak
PDF
第ⅴ部:clean architecture アーキテクチャ Part5
tak
PDF
第ⅳ部:Clean architecture コンポーネントの原則
tak
PDF
第ⅲ部:Clean architecture 設計の原則
tak
可読性について リーダブルコード Part5(優れたテストコード2)
tak
可読性について リーダブルコード Part4(優れたテストコード1)
tak
可読性について リーダブルコード Part3(コードの再構築)
tak
可読性について リーダブルコード Part2(ループとロジックの単純化)
tak
可読性について リーダブルコード part1(表面上の改善)
tak
DiI/DIコンテナを一から学んでみた
tak
TypeScriptのdecoratorについて
tak
Rust + web assemblyやってみた
tak
第ⅴ部:clean architecture アーキテクチャ Part5
tak
第ⅳ部:Clean architecture コンポーネントの原則
tak
第ⅲ部:Clean architecture 設計の原則
tak
Ad
第ⅴ部:clean architecture アーキテクチャ Part4
1.
Clean Architecture 第Ⅴ部 アーキテクチャ Part4
2.
前回まとめ - 方針とレベル - ソフトウェアシステムは方針を示したものである -
方針は更に小さな方針に分割される - どのような場合でも、下位レベルから上位レベルへ依存するように設計する - ビジネスルール - ビジネスルールとは、手動でもビジネスマネーを生み出したり節約したりするルールや手続きのこと - 最重要ビジネスルール /最重要ビジネスデータ = エンティティ - ユースケース = アプリケーション固有のビジネスルール - 叫ぶアーキテクチャ - 優れたアーキテクチャはドメイン、ユースケースを中心にしている - FWは強力で便利だがアーキテクチャを乗っ取られてはいけない - テストはフレームワークを使うことなく全てのユースケースのユニットテストを実行できる
3.
- クリーンアーキテクチャ - プレゼンターとHumble
Object 第Ⅴ部:アーキテクチャ Part4
4.
第1章:クリーンアーキテクチャ - アーキテクチャのアイデア - ヘクサゴナルアーキテクチャ -
DCIアーキテクチャ - BCEアーキテクチャ - レイヤードアーキテクチャ (勝手に記入) - いづれも関心事の分離 - それぞれ、少なくともビジネスルールのレイヤーと、ユーザーやシステムとのインターフェイスと なるレイヤーを持っている
5.
- フレームワーク非依存 - アーキテクチャは
FWの制約で縛るのではなく、 FWをツールとして利用する - テスト可能 - ビジネスルールは、 UI/DBなど外部要素がなくてもテストできる - UI非依存 - UIはシステムの他の部分を変更することなく、簡単に変更できる - データベース非依存 - ビジネスルールは DBに束縛されないので、 MySQL/PostgreSQL 等いずれにも置き換えれる - 外部エージェント非依存 - ビジネスルールは外界のインターフェイスについては何も知らない 第1章:クリーンアーキテクチャ
7.
第1章:クリーンアーキテクチャ - 依存性のルール - 最も重要なルールは「依存性のルール」 -
内側の上位レベルだけに向かっていなければいけない - エンティティ - 最重要ビジネスルールをカプセル化したもの - メソッドを持ったオブジェクトでも、データ構造と関数でも OK - 企業にある様々なアプリケーションから使用できるなら、 エンティティは何でも構わない - ユースケース - アプリケーション固有のビジネスルールが含まれる - エンティティに入出力するデータの流れを調節する - ユースケースの目標を達成できるように、 エンティティに最重要ビジネスルールを 使用するように指示を出す - インターフェイスアダプター - 外部とのデータを相互変換するアダプター - DBについては何も知らない - DBがSQLであればこのレイヤーに限定する - フレームワークとドライバ - FWやツールで構成されている - 通常このレイヤーにはコードをあまり書かない - 書くとしても次のレイヤーとやりとりするグルーコード
8.
第1章:境界線を越える - 簡単にいうとDIPでレイヤーを保護 する
9.
第1章:境界線を越えるデータ - 境界線を越えるデータは、単純な構造で構成される - 好みに応じて、オブジェクトやハッシュマップ /単なる関数呼び出しにすることができる -
EntityやDBをそのまま渡すことはしない - 依存性のルールに違反してもいけない - DBデータをそのまま境界を超えて渡すと、円内側が円外側を知ってしまうことになる
10.
第1章:典型的なシナリオ
11.
- Humble Objectとはデザインパターンの1つである -
PresenterもHumble Objectパターンの一種 - テストしにくい振る舞いと、テストしやすい振る舞いを分離する - 内容は非常にシンプル - 一つのモジュールは「 Humble(控えめ)」 - もう一つは残りのテストしやすい振る舞い - 通常UIのテストは難しい - しかし、Humble ObjectパターンでPresenterとViewに分けてシンプルに 第二章:プレゼンターとHumble Object
12.
第二章:プレゼンターとビュー - ViewはHumble Object(控えめ) -
イベントと渡ってきたデータの表示のみ - つまりデータの処理はない - Presenterはテスト可能なオブジェクト - appからデータを受け取り、 Presenter用で適切にフォーマットして ViewModelに配置 - PresenterにDataオブジェクトを渡して、画面に日付を表示させる - PresenterにCurrencyオブジェクトを渡して、適切な桁数と通過記号をつけてフォーマットする - ボタンをグレーアウトする必要があれば、 PresenterがViewModelに適切なフラグを設定する - 画面に表示するもの、 appが制御するものは全て、 ViewModelに含まれる文字列・真偽地・列挙型と して表現する
13.
第二章:テストとアーキテクチャ - テスト容易性が優れたアーキテクチャの特性 - Humble
Objectはその好例 - 振る舞いをテストしやすい部分と、そうでない部分を分割することが、アーキテクチャの境界の 定義につながり、PresenterとViewもそうした境界の1つ - だが、他にも境界は存在する
14.
第二章:データベースゲートウェイ - ユースケースインタラクターとデータベースの間にある - appがDBに対して実行するCRUDのメソッドを含んだポリモーフィックインターフェイス -
appがある日付のログインユーザーの名前を知りたいと思えば、 UserGatewayインターフェイスに、 getNamesOfUsersWhoLoggedというメソッドを用意して、引数に Dateを受け取り、名前のリストを戻 す - ユースケースのレイヤーで SQLは使用しない - その代わり、ゲートウェイにメソッドを用意して使う - ゲートウェイはDBのレイヤーにあるクラスで実装する - この実装もSQLを使うのでHumble Objectである - インタラクターはビジネスルールをカプセル化しているので、テスト可能
15.
第二章:データマッパー - ORM(Object Relational
Mapping) - 書籍ではORMは存在しないと書かれている - ORMはどのレイヤーかというと、 DBである - このように、境界の近くには Humble Objectパターンが存在する
16.
第Ⅴ部:Part4 まとめ - クリーンアーキテクチャ -
今まで様々なアーキテクチャが存在した - 依存性は、より上位レベルの方針にのみ向けよ (一方方向) - 制御の流れと依存方向は分離し制御せよ - プレゼンターとHumble Object - Humble Objectとはデザインパターンの 1つである - テストしにくい振る舞いと、テストしやすい振る舞いを分離する - 境界の近くに存在する
Download