SlideShare a Scribd company logo
Enviar pesquisa
Carregar
Entrar
Cadastre-se
世界一わかりやすいClean Architecture alpha-1
Denunciar
Atsushi Nakamura
Seguir
System Architect at Ricoh Japan
10 de Sep de 2019
•
0 gostou
•
782 visualizações
1
de
33
世界一わかりやすいClean Architecture alpha-1
10 de Sep de 2019
•
0 gostou
•
782 visualizações
Baixar agora
Baixar para ler offline
Denunciar
Engenharia
https://github.com/nuitsjp/Easiest-Clean-Architecture
Atsushi Nakamura
Seguir
System Architect at Ricoh Japan
Recomendados
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
2.8K visualizações
•
75 slides
世界一わかりやすいClean Architecture
Atsushi Nakamura
46.4K visualizações
•
77 slides
世界一わかりやすいClean Architecture - DroidKaigiバージョン
Atsushi Nakamura
2.2K visualizações
•
161 slides
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
8K visualizações
•
75 slides
継続的にテスト可能な設計を考える
Atsushi Nakamura
5.5K visualizações
•
63 slides
C#メタプログラミング概略 in 2021
Atsushi Nakamura
1K visualizações
•
49 slides
Mais conteúdo relacionado
Mais procurados
デスクトップ向けUIコンポーネントの対応状況と今後の予定
インフラジスティックス・ジャパン株式会社
1.1K visualizações
•
23 slides
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Atsushi Nakamura
536 visualizações
•
21 slides
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
1.1K visualizações
•
26 slides
Unicodeで半角全角を扱うAmbiguous(曖昧さ)とUncertainty(不確実性)の恐怖
Atsushi Nakamura
1.4K visualizações
•
83 slides
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
Akira Inoue
1.5K visualizações
•
45 slides
DDD sample code explained in Java
増田 亨
21.6K visualizações
•
24 slides
Mais procurados
(20)
デスクトップ向けUIコンポーネントの対応状況と今後の予定
インフラジスティックス・ジャパン株式会社
•
1.1K visualizações
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Atsushi Nakamura
•
536 visualizações
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
•
1.1K visualizações
Unicodeで半角全角を扱うAmbiguous(曖昧さ)とUncertainty(不確実性)の恐怖
Atsushi Nakamura
•
1.4K visualizações
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
Akira Inoue
•
1.5K visualizações
DDD sample code explained in Java
増田 亨
•
21.6K visualizações
Azure IoT Edge for Linux on Windows (EFLOW)を学ぶ!
Jingun Jung
•
241 visualizações
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Jingun Jung
•
127 visualizações
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hitachi, Ltd. OSS Solution Center.
•
233 visualizações
ゲームアプリの数学@GREE GameDevelopers' Meetup
gree_tech
•
8K visualizações
WeDX Flow Hands-on
Jingun Jung
•
280 visualizações
SIerで幸せな技術キャリアを築くために
Takanari Konishi
•
459 visualizações
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Koichiro Matsuoka
•
588 visualizações
ドメイン駆動設計の正しい歩き方
増田 亨
•
25.2K visualizações
de:code報告
Kouji Matsui
•
2.8K visualizações
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
Yoshitaka Seo
•
2.1K visualizações
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
•
4.6K visualizações
Node-REDからメール送信
Hitachi, Ltd. OSS Solution Center.
•
605 visualizações
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
Hitachi, Ltd. OSS Solution Center.
•
1.6K visualizações
Decode報告(提供版)
Kazunori Hamamoto
•
2.2K visualizações
Similar a 世界一わかりやすいClean Architecture alpha-1
岐阜スーパーものづくり講座:第8回
Shigeru Kobayashi
1.1K visualizações
•
25 slides
イベント企画運営の経験と実際 / The history of organizing events by me
whywaita
246 visualizações
•
162 slides
高専カンファレンス@OSC2009SpringTokyo
Kuniaki Igarashi
1.8K visualizações
•
68 slides
【2022年7月】平成生まれのためのUNIX&IT歴史講座
法林浩之
69 visualizações
•
47 slides
嘉悦大学 「ICT×社会起業=イノベーション!」
Ayako Togaeri
782 visualizações
•
24 slides
The invitation to Infrastructure CI
irix_jp
708 visualizações
•
18 slides
Similar a 世界一わかりやすいClean Architecture alpha-1
(20)
岐阜スーパーものづくり講座:第8回
Shigeru Kobayashi
•
1.1K visualizações
イベント企画運営の経験と実際 / The history of organizing events by me
whywaita
•
246 visualizações
高専カンファレンス@OSC2009SpringTokyo
Kuniaki Igarashi
•
1.8K visualizações
【2022年7月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
69 visualizações
嘉悦大学 「ICT×社会起業=イノベーション!」
Ayako Togaeri
•
782 visualizações
The invitation to Infrastructure CI
irix_jp
•
708 visualizações
大手ユーザー企業に入ってマネジメントでやってみたこと
Takuya Kitamura
•
342 visualizações
Global Lab Sendai主催 Unity初心者講座2018
Jun Shimura
•
594 visualizações
New総合企画書
JK-Branding
•
286 visualizações
【CLS in 高知LT資料】ビジネスに役立つ!?日本酒コミュニティの作り方
Mayumi Matsuura
•
165 visualizações
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
株式会社MonotaRO Tech Team
•
4.3K visualizações
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
Hisao Soyama
•
16K visualizações
グラフィックレコードの研究 / Tokyo Graphic Recorder 清水 淳子 日本デザイン学会 第62回研究発表大会 2015/06/14
shimizu junko
•
17.1K visualizações
Techcrunch hackathon 2013
Nao Tokui
•
27.8K visualizações
「ウチビト×ソトビト」の融合で公共空間を楽しくハックしたい!
さぶみっと!ヨクスル
•
69 visualizações
未踏プロジェクト総括とありえたかも知れない未来を探す話
Takashi Yamamiya
•
1K visualizações
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ
Jun Nakahara
•
2.9K visualizações
シカケ~行動したくなるデザイン~仕掛学(Shikakelogy)の概要と事例
Akihiro Moriyama
•
10.1K visualizações
アーカイブズのこれからを展望する:電子記録、映像、記憶を中心に(古賀崇)
Takashi Koga
•
2.2K visualizações
勉強会アンチパターン at LLまつり
Hiro Yoshioka
•
2.1K visualizações
Mais de Atsushi Nakamura
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Atsushi Nakamura
26.5K visualizações
•
38 slides
継続的にテスト可能な設計を考える ベータ版
Atsushi Nakamura
393 visualizações
•
51 slides
App center analyticsを使い倒そう
Atsushi Nakamura
929 visualizações
•
38 slides
Old:App center analyticsを使い倒そう
Atsushi Nakamura
246 visualizações
•
23 slides
Xamarin.forms navigation overview
Atsushi Nakamura
3.4K visualizações
•
42 slides
App center analyticsを使い倒そう
Atsushi Nakamura
4.3K visualizações
•
29 slides
Mais de Atsushi Nakamura
(10)
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Atsushi Nakamura
•
26.5K visualizações
継続的にテスト可能な設計を考える ベータ版
Atsushi Nakamura
•
393 visualizações
App center analyticsを使い倒そう
Atsushi Nakamura
•
929 visualizações
Old:App center analyticsを使い倒そう
Atsushi Nakamura
•
246 visualizações
Xamarin.forms navigation overview
Atsushi Nakamura
•
3.4K visualizações
App center analyticsを使い倒そう
Atsushi Nakamura
•
4.3K visualizações
Blue monkey architecture overview
Atsushi Nakamura
•
1.6K visualizações
Xamarin Dev days 2 xamarin.forms ja
Atsushi Nakamura
•
1.1K visualizações
Why prism for xamarin.forms
Atsushi Nakamura
•
1.1K visualizações
Enterpriseから見たXamarinの可能性
Atsushi Nakamura
•
3.2K visualizações
世界一わかりやすいClean Architecture alpha-1
1.
世界一わかりやすいClean Architecture ~ 誤解されがちな二つのことと、おさえるべき二つのこと
~ Atsushi Nakamura
2.
About Me Copyright 2019
@nuits_jp Slide 2 中村 充志 / Atsushi Nakamura • リコージャパン株式会社 所属 • Enterprise(おもに金融)系SIerのITアーキテクト • 「持続可能なソフトウェア」の探求がライフワーク • 2019年の目標 • 「世界一わかりやすいClean Architecture」で登壇したい • 「xUnit & Moqハンズオン」開催 • Blog http://www.nuits.jp • Blog(英語) https://blog.nuits.jp • Twitter @nuits_jp
3.
ふたつ質問させてください Copyright 2018 @nuits_jp
Slide 3
4.
この図を見たことはありますか? Copyright 2018 @nuits_jp
Slide 4
5.
書籍読んでみましたか? Copyright 2018 @nuits_jp
Slide 5
6.
Easiest Clean Architecture Today’s
Goal
7.
Today’s Goal 全員が 「クリーンアーキテクチャチョットデキル」 ようになること
8.
Easiest Clean Architecture Overview
9.
Overview Slide 9Copyright 2018
@nuits_jp Clean Architectureの次の点についてお話させていただきます。 • 誤解されがちな二つのこと • おさえるべき二つのこと
10.
Easiest Clean Architecture 注意事項
11.
注意事項 Slide 11Copyright 2018
@nuits_jp 今日お話しすることは、あくまで私の解釈です • 極端に要約しているので、これがすべてではありません • 書籍の記載とやや矛盾する点もあります しかし、私は今日お話しする二つこそ、Clean Architectureの 本質だと思っています。
12.
異論・反論大歓迎 Slide 12Copyright 2018
@nuits_jp 異論・反論大歓迎です。※ オンライン・オフラインいずれでも、ぜひご意見を聞かせてください。 ぜひ議論しましょう! ※ 聞く耳持たないマサカリはご遠慮ください
13.
Easiest Clean Architecture 誤解されがちな二つのこと
14.
Clean Architectureといえば・・・ 出典:TheCleanArchitecture https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
15.
この図が良くできてい過ぎて誤解を招く Copyright 2018 @nuits_jp
Slide 15
16.
ひとつ目の誤解 Clean Architectureとは 「レイヤーをこれらに分割しろ」 という意味でもない 「関心をControllerやUseCase, Entityに分離しろ」 という意味ではないし
17.
ふたつ目の誤解 「PresentationをMVC的に分離しろ(MVVMなどの否定)」 という意味ではないし 「データや処理の流れを一方通行にしろ」 という意味でもない Copyright 2018 @nuits_jp
Slide 17 MVC Model(出展Wikipedia)
18.
では、どういう意味か? Copyright 2018 @nuits_jp
Slide 18
19.
図の解釈 「ソース コードの依存性は、内側(上位レベルの方針)だけに 向かっていなければいけない。」※ Slide 19 ※出典:Clean
Architecture 達人に学ぶソフトウェアの構造と設計
20.
図の解釈 こうすればよい ※ 内側の変化に応じて、外側を呼び出したい場合どうすればよいのか? Slide 20 ※
より厳密な意図は後述
21.
Easiest Clean Architecture おさえるべき二つのこと
22.
ひとつ目 「依存性は、より上位レベルの方針にのみ向けよ」 ふたつ目 「制御の流れと依存方向は分離し制御せよ」 おさえるべき二つのこと Copyright 2018 @nuits_jp
Slide 22
23.
Easiest Clean Architecture それあってますか?
24.
はい(当者比)
25.
-The architecture rules
are the same! - (邦訳:アーキテクチャ の ルール は どれ も 同じ で ある!) 著者は明言しています Copyright 2018 @nuits_jp Slide 25
26.
すべてが同一アーキテクチャに帰結するとすれば 以下は、あくまで一例であることは自明 • レイヤーが4つ※1 • UIがMVC的である •
Web限定 • Output PortはUse Caseとの間「だけ」に ある※2 • 中央がDomainじゃなくてEntities ※1 とは限らないと書籍にも明記されている ※2 eventみたいなPub/SubがUseCase限定じゃ困っちゃう
27.
あくまで例示であると取れる記載もある Clean Architecture説明の冒頭に、著名なアーキテクチャ(Hexagonal, Onion, etc...)には類似の共通点が見られるとある。 そして続けてこう記載されている。 The
diagram in Figure is an attempt at integrating all these architectures into a single actionable idea. (邦訳:図は、これらのすべてのアーキテクチャを単一の実行可能なアイデアに統合し たものである。) 該当の図は、アーキテクチャは全てClean Architectureで説明可能であることを 例示したモデルであり、Clean Architectureを採用したソフトウェアの具体例の 一つにすぎない Copyright 2018 @nuits_jp Slide 27
28.
どんなソフトウェアにも適用可能な 普遍的なアーキテクチャである だって↓だって言うし -The architecture rules
are the same! - (邦訳:アーキテクチャ の ルール は どれ も 同じ で ある!) Chean Architectureとは Copyright 2018 @nuits_jp Slide 28
29.
Easiest Clean Architecture さあ具体例を見てみよう!
30.
TBD...
31.
Easiest Clean Architecture まとめ
32.
まとめ Slide 32Copyright 2018
@nuits_jp • Clean Architectureとは、どんなソフトウェアにも適用可能な普遍的な アーキテクチャである • Clean Architectureは、次のふたつを誤解されがち • 参考図の通りに関心を分離するのがClean Architectureである • PresentationとModelの境界はInputとOutputを分離すべし • 次のふたつを理解せずClean Architectureは語れない • 依存性は、より上位レベルの方針にのみ向けよ • 制御の流れと依存方向は分離し制御せよ
33.
ThankYou! Any Questions?
Notas do Editor
みなさんこんにちは。 ご紹介いただきました。ニュイこと中村です。 今日は 継続的にテスト可能な設計を考える というTitleでお話しさせていただこうと思います。 よろしくお願いいたします。
中村充志と申します。 リコージャパンのソリューション開発部ってところで、主に金融機関向けの 受託開発でアーキテクトをやってます。 最近は結構ユーザーコミュニティでも登壇させてもらう機会が多くて このコンテンツ自体も去年のMicrosoftの.NET Conf Japanというイベントでお話しさせていただいたものになります。 .NET系の情報発信していることが多い関係で、ちょうど一昨日あたり発表があったのですが ここ3年ほどはMicrosoft MVPをいただいています。 もっともどっちかというと実装スキルよりは、アーキテクチャ的な方面が好きで 最近は持続可能なソフトウェアのアーキテクチャをうだうだ考えるのが趣味になっています。 今年は「世界一簡単なクリーンアーキテクチャ」ってタイトルでどこかで登壇したいなと思ってます。 あと最近界隈で人気のハンディプリンタを触ったり遊べるイベント企画してみたいと思ってますが、 忙しくてなんもできてません。だれか一緒にやりませんか? 興味ある方はぜひTwitterをフォローください。 悲しみばかりが流れてくるかもしれませんが。 というわけで、本題に入る前に、二つほど質問させてください。
というわけで、本セッションの概要ですが
というわけで、本セッションの概要ですが
というわけで、本セッションの概要ですが
では早速、本題に入りたいと思います。
まずはコードを見てください。
まずはコードを見てください。
では早速、本題に入りたいと思います。
では早速、本題に入りたいと思います。
では早速、本題に入りたいと思います。
とうわけで、最後のテスト戦略に関してはふわっとした物になってしまって申しえ訳ありませんが、私からお伝えしたいことは以上です。 最後に改めてまとめたいと思います。
という訳で、本日の内容は以上になります。 ご清聴ありがとうございました。