SlideShare a Scribd company logo
Layered Architecture & Repository
You get what you want, You use what you need
Overview
Layered Architecture
Repository origin
DDD Repository
How to implement a Repository
Persistence Detail
Layered Architecture
How to tackle the complexity of chagnes
View: what you want to present to your client
Controller: accept requests from views and
delegate to model
Model: data-related logic and persistence
issues
MVC architecture
View
Controller
Model
Where should we put the business logic?
Controller?
An ad-hoc services?
Model?
We need to consider the persistence first
before we want to change business rules
What if we have more use cases than simple
CRUD?
MVC architecture -
When business get complex
View
Controller
Model
Primary key? Foreign key?
Normalized?
Change ORM Framework?
Save unnecessary data
Complex relationship?
Separation of concern, one focuses on
business changes, one focuses on
Domain model: Rich-domain Model with
business logic, consists of data and behavior
Data Model: Simple Object - like a data
structure
Separate Domain Model and Data Model
View
Controller
Domain Model Data Model
Mapper
Business Logic
Data + Behavior
Persistence Logic
Data Only
Pop quiz:
Domain model or data model?
More refined layers
UI
Application/Controllers
Domain Model Persistence
Mapper
Business Logic
Data + Behavior
Persistence Logic
Data Only
User Interface: Views rendered in a browser,
CLI
Presentation: Views, input controller
Application: application controllers, application
services, use cases, event listeners
Domain model: Entities, Value Objects,
Aggregates, domain services, domain events,
POJO
Persistence: Query objects, ORM, DAO
Presentation
Keep your domain as pure as possible
UI
Application/Controllers
Domain Model Persistence
Mapper
Presentation
Interface
Interface
Domain Model
Application/Controllers
Design Layers outside in
UI
Persistence
Mapper
Keep technical/implementation detail outside
and depend inward to the business logic
Presentation
Interface
Interface
Tell me the common part
Code Sample
API Application Service Domain Model
Repository Interface
Code Sample
API Application Service Domain Model
Repository Interface
Repository Impl
Code Sample
API Application Service Domain Model
Repository Interface
Repository Impl
Origin of Repository
Where does it come from and what’s the difference between it
and DAO
Debut: PoEAA by Martin Fowler
Definition from Martin Fowler, PoEAA:
Mediates between the domain and data mapping layers using a collection-like
interface for accessing domain objects.
解決問題:將 Domain model 與 Technical persistence framework 分開,讓你
的 Domain model 可以在演變時,不被底層的技術細節影響。
When we should use repository
Do we need Domain models?
Object with complicated behaviors and network
We don’t want persistence issues affect our business
You got lots of domain object types to deal with
You got lots of queries want to be encapsulated
Clients need never think in SQL and can write code purely in terms of objects.
Multiple data sources
Change DB or version up
We can leverage in-memory strategy to make tests faster
Repository give you domain models
Domain Model
Data Model
Repository
1
2
3
Repository should be easy to use
Repository should be unaware of tech
detail (different strategies)
RDB Strategy
InMemory Strategy
DDD Repository
More restriction and design decision
Have you ever struggled?
When you finish your use cases happily, but…
How to read them from Database?
How many data should we write into
database?
The data read from database it more than
we need, which causes distraction in use
cases
How to deal with the complex network of
objects
Difference Between Repository and DAO
Pattern
Car
DAO
Wheel
DAO
Engine
DAO
Seat
DAO
Car Repository
Difference: From What You View
Car
DAO
Wheel
DAO
Engine
DAO
Seat
DAO
Car Repository
engine =
EngineDAO.findByCarId(id);
wheels =
WheelDAO.findByCarId(id);
engine.activate();
wheels.roate();
car = CarRepository.get(id);
car.run
Customized for biz CRUD-Based
But They can Cooperate Together
Car
DAO
Wheel
DAO
Engine
DAO
Seat
DAO
Car Repository
To Get a Fully-functional Car
(ie. Domain Model)!!!
Car
DAO
Wheel
DAO
Engine
DAO
Seat
DAO
Car Repository
ORM helps a lot
Car
DAO
Wheel
DAO
Engine
DAO
Seat
DAO
Car Repository
ORM/
Frame
work
Save()
FindById()
DDD Repository
Use Aggregate Roots to organize your domain models
DDD Repository exists for aggregates, and treat aggregate as a unit of CRUD
Read
Create/Update
DDD Repository - Other Usage
Get Count
Generate Entity ID
Collection Summaries (e.g. count on specific types of customers)
How to Design your Repository?
First, target an aggregate
Second, think from the use cases’ point of view
Third, only exposes (public) methods you need
How to implement a
Repository
Step by step with coding
Key ideas
A repository should be bonded to an aggregate
The domain layer should be unaware of the technical details
When you want to change the data source, it should be done with no sweat
Simple Repository
domain/model/ICustomerRepository
infrastructure/persistence/CustomerRepository
Simple Repository
domain/model/ICustomerRepository
infrastructure/persistence/CustomerRepository
How to reuse the code in
infrastructure?
Generic Repository
domain/model/
ICustomerRepository
infrastructure/persistence/
CustomerRepository
Domain/model/IRepository
Composition
domain/model/
ICustomerRepository
infrastructure/persistence/
CustomerRepository
Domain/model/IRepository
Framework helps
domain/model/
ICustomerRepository
infrastructure/persistence/
CustomerRepository
Domain/model/IRepository
Persistence Detail
Most challenging part…
How to persist an aggregate?
ORM
RDBMS
NoSQL
Raw SQL
How to persistence a value object
References
PoEAA by Martin Fowler
https://martinfowler.com/eaaCatalog/dataMapper.html
https://martinfowler.com/eaaCatalog/repository.html
https://martinfowler.com/eaaCatalog/domainModel.html
Pictures from https://www.pexels.com
https://www.wiley.com/en-us/
Patterns%2C+Principles%2C+and+Practices+of+Domain+Driven+Design-p-9781118714706
ch25

More Related Content

What's hot

Using obi apps to consolidate data for taleo, salesforce and net suite apps_ppt
Using obi apps to consolidate data for taleo, salesforce and net suite apps_pptUsing obi apps to consolidate data for taleo, salesforce and net suite apps_ppt
Using obi apps to consolidate data for taleo, salesforce and net suite apps_ppt
Shiv Bharti
 
Accessing sap and_mainframe_data_and_applications_via_share_point
Accessing sap and_mainframe_data_and_applications_via_share_pointAccessing sap and_mainframe_data_and_applications_via_share_point
Accessing sap and_mainframe_data_and_applications_via_share_point
Yuval Birenboum
 
Microsoft Data Access Technologies
Microsoft Data Access TechnologiesMicrosoft Data Access Technologies
Microsoft Data Access Technologies
David Chou
 
Spotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creationSpotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creation
Ambareesh Kulkarni
 
Workflow and document management system
Workflow and document management systemWorkflow and document management system
Workflow and document management system
MohitBhatt43
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Tammy Bednar
 
Power bi overview
Power bi overview Power bi overview
Power bi overview
Kiki Noviandi
 
User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11
Idealist Consulting
 
Oracle Commerce Performance and ROI Maximization (Caching)
Oracle Commerce Performance and ROI Maximization (Caching)Oracle Commerce Performance and ROI Maximization (Caching)
Oracle Commerce Performance and ROI Maximization (Caching)
Spark::red
 
SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...
SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...
SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...
Scott Hoag
 
Common Data Service – A Business Database!
Common Data Service – A Business Database!Common Data Service – A Business Database!
Common Data Service – A Business Database!
Pedro Azevedo
 
Data Modeling in the API Economy
Data Modeling in the API EconomyData Modeling in the API Economy
Data Modeling in the API Economy
Ted Epstein
 
bi tutorial - Right bi tool for the business
bi tutorial - Right bi tool for the business bi tutorial - Right bi tool for the business
bi tutorial - Right bi tool for the business
Mondy Holten
 
Power bi
Power biPower bi
Power bi
Tarun Bamba
 
SQL Server Data Services
SQL Server Data ServicesSQL Server Data Services
SQL Server Data Services
Eduardo Castro
 
MS Cloud Day - Introduction to Windows Azure platform and real world case study
MS Cloud Day - Introduction to Windows Azure platform and real world case studyMS Cloud Day - Introduction to Windows Azure platform and real world case study
MS Cloud Day - Introduction to Windows Azure platform and real world case study
Spiffy
 
JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365
JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365
JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365
Scott Hoag
 
Planning and deploying_share_point_farm_in_azure_gabsg_2016
Planning and deploying_share_point_farm_in_azure_gabsg_2016Planning and deploying_share_point_farm_in_azure_gabsg_2016
Planning and deploying_share_point_farm_in_azure_gabsg_2016
Thuan Ng
 
Azure for ug
Azure for ugAzure for ug
Azure for ug
dotNETUserGroupDnipro
 
Office 365 – Power BI and the Data Management Gateway
Office 365 – Power BI and the Data Management GatewayOffice 365 – Power BI and the Data Management Gateway
Office 365 – Power BI and the Data Management Gateway
Arild Aarnes
 

What's hot (20)

Using obi apps to consolidate data for taleo, salesforce and net suite apps_ppt
Using obi apps to consolidate data for taleo, salesforce and net suite apps_pptUsing obi apps to consolidate data for taleo, salesforce and net suite apps_ppt
Using obi apps to consolidate data for taleo, salesforce and net suite apps_ppt
 
Accessing sap and_mainframe_data_and_applications_via_share_point
Accessing sap and_mainframe_data_and_applications_via_share_pointAccessing sap and_mainframe_data_and_applications_via_share_point
Accessing sap and_mainframe_data_and_applications_via_share_point
 
Microsoft Data Access Technologies
Microsoft Data Access TechnologiesMicrosoft Data Access Technologies
Microsoft Data Access Technologies
 
Spotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creationSpotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creation
 
Workflow and document management system
Workflow and document management systemWorkflow and document management system
Workflow and document management system
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
 
Power bi overview
Power bi overview Power bi overview
Power bi overview
 
User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11
 
Oracle Commerce Performance and ROI Maximization (Caching)
Oracle Commerce Performance and ROI Maximization (Caching)Oracle Commerce Performance and ROI Maximization (Caching)
Oracle Commerce Performance and ROI Maximization (Caching)
 
SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...
SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...
SPIntersection 2016 - TO THE CLOUD! USING IAAS AS A HOSTING PROVIDER FOR SHAR...
 
Common Data Service – A Business Database!
Common Data Service – A Business Database!Common Data Service – A Business Database!
Common Data Service – A Business Database!
 
Data Modeling in the API Economy
Data Modeling in the API EconomyData Modeling in the API Economy
Data Modeling in the API Economy
 
bi tutorial - Right bi tool for the business
bi tutorial - Right bi tool for the business bi tutorial - Right bi tool for the business
bi tutorial - Right bi tool for the business
 
Power bi
Power biPower bi
Power bi
 
SQL Server Data Services
SQL Server Data ServicesSQL Server Data Services
SQL Server Data Services
 
MS Cloud Day - Introduction to Windows Azure platform and real world case study
MS Cloud Day - Introduction to Windows Azure platform and real world case studyMS Cloud Day - Introduction to Windows Azure platform and real world case study
MS Cloud Day - Introduction to Windows Azure platform and real world case study
 
JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365
JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365
JAXSPUG January 2016 - Microsoft Cloud Identities in Azure and Office 365
 
Planning and deploying_share_point_farm_in_azure_gabsg_2016
Planning and deploying_share_point_farm_in_azure_gabsg_2016Planning and deploying_share_point_farm_in_azure_gabsg_2016
Planning and deploying_share_point_farm_in_azure_gabsg_2016
 
Azure for ug
Azure for ugAzure for ug
Azure for ug
 
Office 365 – Power BI and the Data Management Gateway
Office 365 – Power BI and the Data Management GatewayOffice 365 – Power BI and the Data Management Gateway
Office 365 – Power BI and the Data Management Gateway
 

Similar to 黑豹 ch4 ddd pattern practice (2)

La creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDBLa creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDB
MongoDB
 
Data Access Tech Ed India
Data Access   Tech Ed IndiaData Access   Tech Ed India
Data Access Tech Ed India
rsnarayanan
 
How to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeHow to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First Time
David Linthicum
 
Software as Service
Software as ServiceSoftware as Service
Software as Service
abhigad
 
Ssh 1
Ssh 1Ssh 1
Ssh 1
Suresh G
 
S S H 1
S S H 1S S H 1
S S H 1
Suresh G
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
 
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo LiteDenodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
Ólafur Andri Ragnarsson
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
ctindale
 
Glue con2011 future_of_net_systems
Glue con2011 future_of_net_systemsGlue con2011 future_of_net_systems
Glue con2011 future_of_net_systems
James Urquhart
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
Liran Zelkha
 
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA SuiteOOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
Rajesh Raheja
 
Utilized Code Gen To Save Our Efforts In Sap Integration
Utilized Code Gen To Save Our Efforts In Sap IntegrationUtilized Code Gen To Save Our Efforts In Sap Integration
Utilized Code Gen To Save Our Efforts In Sap Integration
Guo Albert
 
Informix warehouse and accelerator overview
Informix warehouse and accelerator overviewInformix warehouse and accelerator overview
Informix warehouse and accelerator overview
Keshav Murthy
 
Elevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBCElevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBC
MongoDB
 
Azure BI Cloud Architectural Guidelines.pdf
Azure BI Cloud Architectural Guidelines.pdfAzure BI Cloud Architectural Guidelines.pdf
Azure BI Cloud Architectural Guidelines.pdf
pbonillo1
 
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
James Anderson
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
webscale
 
Ipedo Company Overview
Ipedo Company OverviewIpedo Company Overview
Ipedo Company Overview
Tim_Matthews
 

Similar to 黑豹 ch4 ddd pattern practice (2) (20)

La creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDBLa creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDB
 
Data Access Tech Ed India
Data Access   Tech Ed IndiaData Access   Tech Ed India
Data Access Tech Ed India
 
How to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeHow to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First Time
 
Software as Service
Software as ServiceSoftware as Service
Software as Service
 
Ssh 1
Ssh 1Ssh 1
Ssh 1
 
S S H 1
S S H 1S S H 1
S S H 1
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo LiteDenodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
 
Glue con2011 future_of_net_systems
Glue con2011 future_of_net_systemsGlue con2011 future_of_net_systems
Glue con2011 future_of_net_systems
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA SuiteOOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
 
Utilized Code Gen To Save Our Efforts In Sap Integration
Utilized Code Gen To Save Our Efforts In Sap IntegrationUtilized Code Gen To Save Our Efforts In Sap Integration
Utilized Code Gen To Save Our Efforts In Sap Integration
 
Informix warehouse and accelerator overview
Informix warehouse and accelerator overviewInformix warehouse and accelerator overview
Informix warehouse and accelerator overview
 
Elevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBCElevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBC
 
Azure BI Cloud Architectural Guidelines.pdf
Azure BI Cloud Architectural Guidelines.pdfAzure BI Cloud Architectural Guidelines.pdf
Azure BI Cloud Architectural Guidelines.pdf
 
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Ipedo Company Overview
Ipedo Company OverviewIpedo Company Overview
Ipedo Company Overview
 

More from Fong Liou

拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
Fong Liou
 
黑豹 ch4 ddd pattern pracrice
黑豹 ch4 ddd pattern pracrice黑豹 ch4 ddd pattern pracrice
黑豹 ch4 ddd pattern pracrice
Fong Liou
 
2021 DDDTW Study Group 第一場 練習題
2021 DDDTW Study Group 第一場 練習題2021 DDDTW Study Group 第一場 練習題
2021 DDDTW Study Group 第一場 練習題
Fong Liou
 
Lerna 的套件管理術 - 2020 JSDC Taiwan
Lerna 的套件管理術 - 2020 JSDC TaiwanLerna 的套件管理術 - 2020 JSDC Taiwan
Lerna 的套件管理術 - 2020 JSDC Taiwan
Fong Liou
 
Example mapping
Example mappingExample mapping
Example mapping
Fong Liou
 
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
Fong Liou
 
Error Handling In JS
Error Handling In JSError Handling In JS
Error Handling In JS
Fong Liou
 
2019-03-13-ddd taiwan-community-iddd-studygroup-2nd
2019-03-13-ddd taiwan-community-iddd-studygroup-2nd2019-03-13-ddd taiwan-community-iddd-studygroup-2nd
2019-03-13-ddd taiwan-community-iddd-studygroup-2nd
Fong Liou
 

More from Fong Liou (8)

拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
 
黑豹 ch4 ddd pattern pracrice
黑豹 ch4 ddd pattern pracrice黑豹 ch4 ddd pattern pracrice
黑豹 ch4 ddd pattern pracrice
 
2021 DDDTW Study Group 第一場 練習題
2021 DDDTW Study Group 第一場 練習題2021 DDDTW Study Group 第一場 練習題
2021 DDDTW Study Group 第一場 練習題
 
Lerna 的套件管理術 - 2020 JSDC Taiwan
Lerna 的套件管理術 - 2020 JSDC TaiwanLerna 的套件管理術 - 2020 JSDC Taiwan
Lerna 的套件管理術 - 2020 JSDC Taiwan
 
Example mapping
Example mappingExample mapping
Example mapping
 
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
 
Error Handling In JS
Error Handling In JSError Handling In JS
Error Handling In JS
 
2019-03-13-ddd taiwan-community-iddd-studygroup-2nd
2019-03-13-ddd taiwan-community-iddd-studygroup-2nd2019-03-13-ddd taiwan-community-iddd-studygroup-2nd
2019-03-13-ddd taiwan-community-iddd-studygroup-2nd
 

Recently uploaded

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
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
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
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 

Recently uploaded (20)

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
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
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
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 

黑豹 ch4 ddd pattern practice (2)