Submit Search
Upload
クリーンアーキテクチャを試してみた
•
0 likes
•
346 views
Takuya Matsunaga
Follow
とっとるびー第39回の発表資料です
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 16
Download now
Download to read offline
Recommended
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
Akira Inoue
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
Keiichiro Ono
リクルート式AIの活用法
リクルート式AIの活用法
Recruit Technologies
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術
Recruit Technologies
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure
Daiyu Hatakeyama
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
Shingo Sasaki
Contiv
Contiv
Shogo Katsurada
第ⅴ部:clean architecture アーキテクチャ Part2
第ⅴ部:clean architecture アーキテクチャ Part2
tak
Recommended
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
Akira Inoue
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
Keiichiro Ono
リクルート式AIの活用法
リクルート式AIの活用法
Recruit Technologies
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術
Recruit Technologies
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure
Daiyu Hatakeyama
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
Shingo Sasaki
Contiv
Contiv
Shogo Katsurada
第ⅴ部:clean architecture アーキテクチャ Part2
第ⅴ部:clean architecture アーキテクチャ Part2
tak
LightSwitch 結局何ができるの
LightSwitch 結局何ができるの
Yoshitaka Seo
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
インフラジスティックス・ジャパン株式会社
Microsoft AI and IoT Platform
Microsoft AI and IoT Platform
Daiyu Hatakeyama
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
Daiyu Hatakeyama
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
ToshiharuSakai
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
Toshihiko Yamakami
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
伸夫 森本
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
EMC Japan
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
It業界の優良企業の見つけ方 20140502 黒田
It業界の優良企業の見つけ方 20140502 黒田
Yusuke Kuroda
Klocworkのご紹介
Klocworkのご紹介
Masaru Horioka
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
Hirono Jumpei
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?
Takuya Kitamura
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
Akira Inoue
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
blockchainexe
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
Ryohei Kamiya
光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga
ソフトウェア組織マインド
ソフトウェア組織マインド
Takuya Matsunaga
More Related Content
Similar to クリーンアーキテクチャを試してみた
LightSwitch 結局何ができるの
LightSwitch 結局何ができるの
Yoshitaka Seo
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
インフラジスティックス・ジャパン株式会社
Microsoft AI and IoT Platform
Microsoft AI and IoT Platform
Daiyu Hatakeyama
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
Daiyu Hatakeyama
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
ToshiharuSakai
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
Toshihiko Yamakami
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
伸夫 森本
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
EMC Japan
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
It業界の優良企業の見つけ方 20140502 黒田
It業界の優良企業の見つけ方 20140502 黒田
Yusuke Kuroda
Klocworkのご紹介
Klocworkのご紹介
Masaru Horioka
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
Hirono Jumpei
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?
Takuya Kitamura
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
Akira Inoue
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
blockchainexe
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
Ryohei Kamiya
Similar to クリーンアーキテクチャを試してみた
(20)
LightSwitch 結局何ができるの
LightSwitch 結局何ができるの
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
Microsoft AI and IoT Platform
Microsoft AI and IoT Platform
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
デジタルトランスフォーメーション時代を生き抜くためのビジネス力 ~ AI、Advanced Analytics の使いどころ ~
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
It業界の優良企業の見つけ方 20140502 黒田
It業界の優良企業の見つけ方 20140502 黒田
Klocworkのご紹介
Klocworkのご紹介
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
More from Takuya Matsunaga
光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga
ソフトウェア組織マインド
ソフトウェア組織マインド
Takuya Matsunaga
ある製造業のチームトポロジー
ある製造業のチームトポロジー
Takuya Matsunaga
組込エンジニアのための深層学習
組込エンジニアのための深層学習
Takuya Matsunaga
Deep Leaningと超解像
Deep Leaningと超解像
Takuya Matsunaga
進化するArt
進化するArt
Takuya Matsunaga
ここが変だよDalvik仮想マシン
ここが変だよDalvik仮想マシン
Takuya Matsunaga
Design by contractとホーア論理
Design by contractとホーア論理
Takuya Matsunaga
詳解Dexファイルフォーマット
詳解Dexファイルフォーマット
Takuya Matsunaga
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
Takuya Matsunaga
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
More from Takuya Matsunaga
(11)
光コラボは契約してはいけない
光コラボは契約してはいけない
ソフトウェア組織マインド
ソフトウェア組織マインド
ある製造業のチームトポロジー
ある製造業のチームトポロジー
組込エンジニアのための深層学習
組込エンジニアのための深層学習
Deep Leaningと超解像
Deep Leaningと超解像
進化するArt
進化するArt
ここが変だよDalvik仮想マシン
ここが変だよDalvik仮想マシン
Design by contractとホーア論理
Design by contractとホーア論理
詳解Dexファイルフォーマット
詳解Dexファイルフォーマット
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
クリーンアーキテクチャを試してみた
1.
クリーンアーキテクチャを試してみた 発表者 kmt-t
2.
⾃⼰紹介 ハンドルネーム kmt-t お仕事 センサーメーカー勤務 組み込みエンジニア 最近の興味 モダンな開発へのあこがれ AIおよび信号処理関連 Windowsアプリケーション
3.
前振り
4.
今⽇の発表 話題のクリーンアーキテクチャ 実際のプロジェクトで適⽤してみた 個⼈的にはまったところ 使えるテクニック
5.
クリーンアーキテクチャ概要 ソフトウェアアーキテクチャ Qiitaに記事書きました 記事ベースで解説 https://qiita.com/kmt_t/items/e05f619 5410e9b91350b キーワード レイヤードアプローチ 外側から内側に依存 依存関係逆転の法則 依存関係を逆転させるテクニック
6.
適⽤したプロジェクトの概要 センサー製品の検査機 開発環境 Windowsデスクトップアプリ プログラミング⾔語︓C# フレームワーク︓Prism MVVMアーキテクチャ 開発規模 かなり⼩規模 2⼈⽉ 5000SLOC程度 テストケースにぴったり
7.
やってみて難しかったところ
8.
はまりどころ 1. 静的・動的設計 クリーンアーキテクチャでも設計が難しいのは変わらない ファンダメンタルの設計能⼒⼤事 DDDとかも勉強したほうがいいかも 2. 境界 クリーンアーキテクチャだと意識せざるを得ない というか重要なのは昔からなんだけど意識してなかった
9.
MVVMとの整合性 Prismを使うのでMVVMと整合せさせる クリーンアーキテクチャとMVVM アーキテクチャとしてのメタ度が違う ので相反しない 相反する気がするなら設計が悪いと⾃ 分は考える ⾃分の場合は図のようにした
10.
境界 システムに境界を引く 境界をひくことがクリーンアーキテクチャ の勘所 クリーンアーキテクチャの境界 レイヤー間 モジュール間 あらゆるところに境界はある 境界をまたぐ依存関係を整理する
11.
境界からコンポーネントへ 境界でコンポーネント化しよう コンポーネントに対する苦⼿意識 ⾃分はコンポーネント分割するような システムを開発したことがない コンポーネントのジレンマ テンション図 最初から分割することを考えない ⼤きくなったら分割しよう 「あえて」今回はモノリシックにした コンポーネント化は不要という判断
12.
C#で使える便利ツール
13.
Dependency Injection 依存関係逆転の法則を使う時にすげえ便利 C#/Prismではdynlocが使える 具象クラスのインスタンス⽣成は誰がする の問題 ファクトリー⽤意するのめんどい 内輪のクリーンアーキテクチャ読書会 で話題になった⾯倒な話
14.
dynamic型 C#のdynamic型はめちゃくちゃ便利 クリーンアーキテクチャでは内側のレイヤがDTOを定義する 毎回DTOを設計するのは⾯倒 DTOを決め打ちにすると内側のレイヤの再利⽤性が下がる DTOはdynamic型とし、フィールド名で整合性を取る DTOを辞書型とするより型的に堅牢 辞書型だとデータをobject型にして毎回キャスト dynamic型だとフィールド名で型が⼀意に決まる
15.
デリゲート C#のデリゲートはめちゃくちゃ便利 ユースケース層の状態が変わったことを外 側のレイヤーに伝播したい 図のようにインターフェイスを切って伝播 する⽅法はあるが、実装が冗⻑で⾯倒 (出典︓Android Clean Architecture
— A “Unicorn” Approach) ユースケース層にデリゲートを使ったイベ ントとして定義する
16.
ご清聴ありがとうございました︕
Download now