SlideShare ist ein Scribd-Unternehmen logo
1 von 31
K.NET講師 Clark
 Microsoft C# MVP
 部落格:昏睡領域
http://www.dotblogs.com.tw/clark/
 技術專長:
◦ 領域驅動開發流程
◦ 軟體架構分析設計
◦ 軟韌硬體整合開發
◦ 跨平台APP架構設計
 三層式架構定義
 三層式架構應用
 三層式架構分析
 三層式架構設計
 Q & A
 Tier:用來做系統架構的分層
 Layer:用來做軟體架構的分層
 三層式架構定義
 三層式架構應用
 三層式架構分析
 三層式架構設計
 Q & A
Presentation Layer
Access Layer
Domain Layer
Presentation Layer
Access Layer
Domain Layer
Domain-Driven Design
Presentation Layer
Access Layer
Domain Layer
Domain-Driven Design
Database Service
Presentation Layer
Access Layer
Domain Layer
Domain-Driven Design
Database Service
UI Service
Presentation Layer
Access Layer
Domain Layer
Domain-Driven Design
Unit Testing
Unit Testing
Presentation Layer
Access Layer
Domain Layer
Domain-Driven Design
Mock
UI Service
Presentation Layer
Access Layer
Service
Service Testing
Presentation Layer
Access Layer
Domain Layer
Domain-Driven Design
Adapter
UI Service
Domain Layer
Domain-Driven Design
Domain Layer
Domain-Driven Design
Domain
Presentation
Domain
Presentation
Access
Domain
Presentation
Access
Domain
Presentation
Access
Domain
Access
Domain Domain
 三層式架構定義
 三層式架構應用
 三層式架構分析
 三層式架構設計
 Q & A
Presentation Layer
View
Model
Controller
Access Layer
Domain Layer
use
Bind
Presentation Layer
View
Model
ViewModel
Access Layer
Domain Layer
bind
use
Presentation Layer
View
(HTML+CSS+Angular)
Service
(JavaScript)
Controller
(JavaScript+Angular)
Access Layer
Domain Layer
bind
use
Presentation Layer
Access Layer
Domain Layer
use
 三層式架構定義
 三層式架構應用
 三層式架構分析
 三層式架構設計
 Q & A
Access Layer
Domain Layer
Presentation Layer
Domain Layer
Employee
<<Interface>>
IEmployee
Repository
Context
<<Interface>>
IProduct
Repository
Product
Service
Domain Layer
Presentation Layer
Context
EmployeeManage
View
ShoppingCart
View
Access Layer
Domain Layer
<<Interface>>
IEmployee
Repository
<<Interface>>
IProduct
Repository
Sql
Employee
Repository
Sql
Product
Repository
Access Layer
Domain Layer
Presentation Layer
Employee
<<Interface>>
IEmployee
Repository
Context
<<Interface>>
IProduct
Repository
Product
Sql
Employee
Repository
Sql
Product
Repository
EmployeeManage
View
ShoppingCart
View
Service
 三層式架構定義
 三層式架構應用
 三層式架構分析
 三層式架構設計
 Q & A
三層架構設計

Weitere ähnliche Inhalte

Was ist angesagt?

ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)Gelis Wu
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)Mikiya Okuno
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはNozomi Ito
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
 
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかDDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかKoichiro Matsuoka
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構twMVC
 
serviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうserviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうよしだ あつし
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門増田 亨
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう増田 亨
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路Gelis Wu
 
DDD架構設計
DDD架構設計DDD架構設計
DDD架構設計國昭 張
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile増田 亨
 

Was ist angesagt? (20)

ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかDDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構
 
serviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうserviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おう
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路
 
DDD架構設計
DDD架構設計DDD架構設計
DDD架構設計
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile
 

Andere mochten auch

架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11twMVC
 
領域驅動設計
領域驅動設計領域驅動設計
領域驅動設計Clark
 
智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統Poy Chang
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)Gelis Wu
 
看似比較簡單Linux的推坑教學 何謂 Linux ?
看似比較簡單Linux的推坑教學 何謂 Linux ? 看似比較簡單Linux的推坑教學 何謂 Linux ?
看似比較簡單Linux的推坑教學 何謂 Linux ? 永立 連
 
[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生MIS2000 Lab.
 
看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde
看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde 看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde
看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde 永立 連
 
系統重構實例分享
系統重構實例分享系統重構實例分享
系統重構實例分享YC Liang
 
Arduino Yún使用Http restful api控制io
Arduino Yún使用Http restful api控制ioArduino Yún使用Http restful api控制io
Arduino Yún使用Http restful api控制io吳錫修 (ShyiShiou Wu)
 
RESTful API的设计与开发
RESTful API的设计与开发RESTful API的设计与开发
RESTful API的设计与开发Ace Lee
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automationIvan Wei
 
管理資訊系統之資訊架構
管理資訊系統之資訊架構管理資訊系統之資訊架構
管理資訊系統之資訊架構5045033
 
3 Tier Architecture
3 Tier Architecture3 Tier Architecture
3 Tier Architectureguestd0cc01
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServBen Lue
 

Andere mochten auch (17)

架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11
 
領域驅動設計
領域驅動設計領域驅動設計
領域驅動設計
 
軟體架構模式
軟體架構模式軟體架構模式
軟體架構模式
 
智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
 
看似比較簡單Linux的推坑教學 何謂 Linux ?
看似比較簡單Linux的推坑教學 何謂 Linux ? 看似比較簡單Linux的推坑教學 何謂 Linux ?
看似比較簡單Linux的推坑教學 何謂 Linux ?
 
[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生[資管系 業界講師]演講題目:我的It人生
[資管系 業界講師]演講題目:我的It人生
 
看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde
看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde 看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde
看似比較簡單的推坑教學 Linux安裝篇 manjaro linux 201606 kde
 
系統重構實例分享
系統重構實例分享系統重構實例分享
系統重構實例分享
 
雲端運算簡介
雲端運算簡介雲端運算簡介
雲端運算簡介
 
Arduino Yún使用Http restful api控制io
Arduino Yún使用Http restful api控制ioArduino Yún使用Http restful api控制io
Arduino Yún使用Http restful api控制io
 
RESTful API的设计与开发
RESTful API的设计与开发RESTful API的设计与开发
RESTful API的设计与开发
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automation
 
RESTful API Design
RESTful API DesignRESTful API Design
RESTful API Design
 
管理資訊系統之資訊架構
管理資訊系統之資訊架構管理資訊系統之資訊架構
管理資訊系統之資訊架構
 
3 Tier Architecture
3 Tier Architecture3 Tier Architecture
3 Tier Architecture
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServ
 

Ähnlich wie 三層式架構設計

VSTS Architecture Edition Overview
VSTS Architecture Edition OverviewVSTS Architecture Edition Overview
VSTS Architecture Edition OverviewSteve Lange
 
Developing scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .netDeveloping scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .netCallon Campbell
 
A tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvemA tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvemMicrosoft
 
A tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvemA tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvemRicardo Serradas
 
Asp.net Programming Training (Web design, Web development)
Asp.net Programming Training (Web design, Web  development)Asp.net Programming Training (Web design, Web  development)
Asp.net Programming Training (Web design, Web development)Moutasm Tamimi
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShimon Tolts
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsAsher Sterkin
 
Perfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsys Tems
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End DeveloperMike Wilcox
 
Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Amazon Web Services
 
Yemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityYemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityGuillermo Julca
 

Ähnlich wie 三層式架構設計 (20)

VSTS Architecture Edition Overview
VSTS Architecture Edition OverviewVSTS Architecture Edition Overview
VSTS Architecture Edition Overview
 
Developing scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .netDeveloping scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .net
 
A tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvemA tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvem
 
A tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvemA tendência do desenvolvimento de software gerenciado e operado na nuvem
A tendência do desenvolvimento de software gerenciado e operado na nuvem
 
Profile_Ahmad2
Profile_Ahmad2Profile_Ahmad2
Profile_Ahmad2
 
Prashant_Resume_DotNET
Prashant_Resume_DotNETPrashant_Resume_DotNET
Prashant_Resume_DotNET
 
Skanthan thiru
Skanthan thiruSkanthan thiru
Skanthan thiru
 
Asp.net Programming Training (Web design, Web development)
Asp.net Programming Training (Web design, Web  development)Asp.net Programming Training (Web design, Web  development)
Asp.net Programming Training (Web design, Web development)
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
Perfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsystems- Consulting Services
Perfsystems- Consulting Services
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End Developer
 
Architecting RIAs
Architecting RIAsArchitecting RIAs
Architecting RIAs
 
Sureeya2
Sureeya2Sureeya2
Sureeya2
 
Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300
 
Yemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityYemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield University
 
Lalith Thota
Lalith ThotaLalith Thota
Lalith Thota
 
Prakash_Ganapathy
Prakash_GanapathyPrakash_Ganapathy
Prakash_Ganapathy
 
Vsts intro
Vsts introVsts intro
Vsts intro
 
Shanoj_Resume
Shanoj_ResumeShanoj_Resume
Shanoj_Resume
 

Kürzlich hochgeladen

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Kürzlich hochgeladen (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

三層式架構設計

Hinweis der Redaktion

  1. 分門別類整理程式碼,提高重用性,也降低開發的複雜度。 以BMI為例
  2. 三層式架構的「層」這個字有陷阱。
  3. 一個系統可以用三層式架構下去拆Tier跟Layer,讓開發人員有個藍圖,避免見樹不見林的窘境。 而當將一個系統拆解開Tier與Layer之後,我們也不難發現,上一層的Accesses會串接到下一層的Presentation。 這邊就帶出了一些概念 1. Presentation有兩種概念,一種是給人看的、一種是給電腦看的。 2. Accesses也有兩種概念,一種是遠端的資料庫或服務,一種是本地的資料庫或服務。 以SQL Server為例,說明就算不是自己開發的,也可以用同樣的角度去剖析。
  4. 軟體是用來處理特定領域的問題。 每個軟體裡,都透過程式碼將問題的解決方案,封裝成為Library或是一組物件,這也就是所謂的領域邏輯。 以導航系統為例、以POS系統結帳功能為例。 DDD是一種開發方法,協助開發人員將領域知識封裝成為物件導向的程式碼。 這邊只要簡單理解,我們是將邏輯封裝成為一組Library就可以。
  5. 設計的時候,以物件導向的介面,來切割Domain層跟Access層之間的相依性,就可以提供動態抽換資料來源的功能。 以取得一個User為例,只要開出來一個介面,剩下的就是看要建立Database實作,或是Server的實作。 這樣的動作,有個專有名詞叫做IoC,有興趣的開發人員可以上網查一查相關細節。 特別要注意的是,這邊開出來的介面,是給系統內部用的,不要使用外部傳進來的物件做為物件,才能真正做到隔離。(例如日期拆成三個欄位年月日)
  6. 既然Domain已經被封裝成為一組Library了,那就是依照系統的需求,建立UI或是Service來使用這組Library。 以一些應用場景來說,假設原本是寫一隻APP讓使用者輸入聯絡人資訊,現在要加入搖一搖功能來加入聯絡人資訊,這時就不需要動到Domain層,只需要增加一個Presentation
  7. 單元測試的目標是要測試領域邏輯,輸入、輸出,都可以用程式碼去控制的話,就可以進行單元測試。 不會特別要求寫測試,只是依照原本的開發習慣來引導寫測試。 慢慢地補充,最終就會有一組合用的測試案例。
  8. - 串接別人系統,還要等別人寫好,無形中拖慢了開發進度。
  9. 系統壞了,客戶不會說是後端壞了,只會說前端壞了。
  10. 以Log4net為例 以會員管理系統為例
  11. 講到現在好像都在講Layer,其實可以從Layer的角度來延伸出Tier的設計。 模組切割組合=>微服務架構 Sopa=>服務導向架構 Dubbo=>分散式架構 無狀態=>橫向擴展 套用三層式架構,可以提高性統的延展性。
  12. 增加對於未來科技的延伸性 以導航系統來說,不管UI怎麼更換,計算邏輯是不變的。
  13. 系統裡的物件都是一個Entity Entity需要進出資料庫,就是建立對應的Repository 系統頁面上的欄位,就是Entity的屬性 系統頁面上的CRUD操作,就是Repository的方法 理論上系統的操作都要散落在Entity、Repository上。但是複合式的功能,例如轉帳功能要橫跨多個Entity、Repository,這樣的功能就可以獨立建一個Service來處理。 照上面的做法,會生成一堆的Entity、Repository,但是太過細碎的物件,會增加使用的困難,所以套個表面模式來整合。