SlideShare a Scribd company logo
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
三層架構設計

More Related Content

What's hot

リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
 
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum NovemberDDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
増田 亨
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
teddysoft
 
從無到有建立一個敏捷開發團隊的經驗甘苦談
從無到有建立一個敏捷開發團隊的經驗甘苦談從無到有建立一個敏捷開發團隊的經驗甘苦談
從無到有建立一個敏捷開發團隊的經驗甘苦談
TIM WANG
 
課題達成型 task oriented QC story
課題達成型 task oriented QC story課題達成型 task oriented QC story
課題達成型 task oriented QC story
Fast SiC Semiconductor Inc.
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
 
reduxのstate設計の話
reduxのstate設計の話reduxのstate設計の話
reduxのstate設計の話
ayatas0623
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
Andrew Wu
 
那些 Functional Programming 教我的事
那些 Functional Programming 教我的事那些 Functional Programming 教我的事
那些 Functional Programming 教我的事
Wen-Tien Chang
 
超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方Cake YOSHIDA
 
CH02 API Governance
CH02 API Governance CH02 API Governance
CH02 API Governance
Rick Hwang
 
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!
Yukei Wachi
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
Takahiro YAMADA
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
増田 亨
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
 

What's hot (20)

リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
軟體架構模式
軟體架構模式軟體架構模式
軟體架構模式
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum NovemberDDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
 
從無到有建立一個敏捷開發團隊的經驗甘苦談
從無到有建立一個敏捷開發團隊的經驗甘苦談從無到有建立一個敏捷開發團隊的經驗甘苦談
從無到有建立一個敏捷開發團隊的經驗甘苦談
 
課題達成型 task oriented QC story
課題達成型 task oriented QC story課題達成型 task oriented QC story
課題達成型 task oriented QC story
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
reduxのstate設計の話
reduxのstate設計の話reduxのstate設計の話
reduxのstate設計の話
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
那些 Functional Programming 教我的事
那些 Functional Programming 教我的事那些 Functional Programming 教我的事
那些 Functional Programming 教我的事
 
超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方
 
CH02 API Governance
CH02 API Governance CH02 API Governance
CH02 API Governance
 
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
 

Viewers also liked

架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11
twMVC
 
領域驅動設計
領域驅動設計領域驅動設計
領域驅動設計
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
 
雲端運算簡介
雲端運算簡介雲端運算簡介
雲端運算簡介
吳錫修 (ShyiShiou Wu)
 
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 automation
Ivan Wei
 
RESTful API Design
RESTful API DesignRESTful API Design
RESTful API Design
Amigo 陳兆祥
 
管理資訊系統之資訊架構
管理資訊系統之資訊架構管理資訊系統之資訊架構
管理資訊系統之資訊架構5045033
 
3 Tier Architecture
3 Tier Architecture3 Tier Architecture
3 Tier Architecture
guestd0cc01
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServ
Ben Lue
 

Viewers also liked (16)

架構設計入門 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
 

Similar to 三層式架構設計

VSTS Architecture Edition Overview
VSTS Architecture Edition OverviewVSTS Architecture Edition Overview
VSTS Architecture Edition Overview
Steve 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 .net
Callon 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 nuvem
Microsoft
 
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 patterns
Asher Sterkin
 
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
Shimon Tolts
 
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 Developer
Mike Wilcox
 
Architecting RIAs
Architecting RIAsArchitecting RIAs
Architecting RIAs
Mark Nankman
 
Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300
Amazon Web Services
 
Yemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityYemo_Capstone_MS_Fairfield University
Yemo_Capstone_MS_Fairfield UniversityGuillermo Julca
 
Vsts intro
Vsts introVsts intro
Vsts intro
Sevajothi Crafts
 

Similar to 三層式架構設計 (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
 

Recently uploaded

BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 

Recently uploaded (20)

BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 

三層式架構設計

Editor's Notes

  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,但是太過細碎的物件,會增加使用的困難,所以套個表面模式來整合。