SlideShare a Scribd company logo
Crafted Design 
Duration: 2 days 
www.codurance.com 
hello@codurance.com
About 
• Hands-on course to help experienced 
developers learn to: 
– design well crafted solutions 
– produce software that is responsive to 
changing requirements and new functionality 
– avoid the pitfalls that lead to legacy code
Why attend? 
• Learn design techniques applied in successful 
projects 
• Use TDD as a design tool, applying Outside-In TDD 
• Drive out a flexible design 
• Build software that is not bound to a specific 
technology or framework by keeping them at the 
boundaries of your system 
• Express your business domain in every facet of your 
entire application, not just methods and classes 
• Keep your design clean as your application grows and 
requirements change 
• Let your architecture emerge, rather than designing 
a rigid and unchangeable structure up-front
Content 
• Four elements of simple design 
• Use TDD as a design tool with Outside-In TDD 
• Business application of SOLID principles 
• Testing and refactoring legacy code to 
express business domain 
• Interaction Driven Design (IDD) 
– Map and visualise business concepts in code 
– Express design and architecture in code, but 
keeping your domain clean 
– Learn an evolution of a subset of DDD
Audience 
• Software developers that: 
– have experience in developing software 
commercially 
– are familiar with at least one Object 
Oriented Language (such as Java and C#) 
– are able to understand Java (the codebase 
and exercises are in Java) 
– are comfortable using TDD to build software 
– understand mock objects and know how to 
use a mocking library
Prerequisites 
• Developers must: 
– bring their own laptops 
– have a development environment consisting of: 
• Java 8 
• favourite IDE 
• maven 3.x 
• a unit testing framework 
• Git (desirable) 
– be able to create projects, build source code 
and run test cases in their development 
environment

More Related Content

Viewers also liked

Office furniture Office Design
Office furniture Office DesignOffice furniture Office Design
Office furniture Office Design
wallaceperkins
 
Corporate Tax in Singapore
Corporate Tax in SingaporeCorporate Tax in Singapore
Corporate Tax in Singapore
Paul Hype Page & Co
 
Introduccion contaminacion emilis
Introduccion  contaminacion emilisIntroduccion  contaminacion emilis
Introduccion contaminacion emilis
zoraidapadilla
 
Material didáctico
Material didácticoMaterial didáctico
Material didáctico
Alejandra Lozano
 
Risultati mondiali ironman 70.3 Lake Las Vegas 2012
Risultati mondiali ironman 70.3 Lake Las Vegas 2012Risultati mondiali ironman 70.3 Lake Las Vegas 2012
Risultati mondiali ironman 70.3 Lake Las Vegas 2012
irontriathlon
 
Introduction to REX
Introduction to REXIntroduction to REX
Introduction to REX
aost1833
 

Viewers also liked (6)

Office furniture Office Design
Office furniture Office DesignOffice furniture Office Design
Office furniture Office Design
 
Corporate Tax in Singapore
Corporate Tax in SingaporeCorporate Tax in Singapore
Corporate Tax in Singapore
 
Introduccion contaminacion emilis
Introduccion  contaminacion emilisIntroduccion  contaminacion emilis
Introduccion contaminacion emilis
 
Material didáctico
Material didácticoMaterial didáctico
Material didáctico
 
Risultati mondiali ironman 70.3 Lake Las Vegas 2012
Risultati mondiali ironman 70.3 Lake Las Vegas 2012Risultati mondiali ironman 70.3 Lake Las Vegas 2012
Risultati mondiali ironman 70.3 Lake Las Vegas 2012
 
Introduction to REX
Introduction to REXIntroduction to REX
Introduction to REX
 

Similar to Codurance Courses: Crafted Design

The role of the architect in agile
The role of the architect in agileThe role of the architect in agile
The role of the architect in agile
Dror Helper
 
What Skills You Need to Be a Software Developer
What Skills You Need to Be a Software DeveloperWhat Skills You Need to Be a Software Developer
What Skills You Need to Be a Software Developer
Interview Kickstart
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
IT Arena
 
Autoframework design
Autoframework designAutoframework design
Autoframework design
Forge Events
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
fntnhd
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
arpitlamba32599
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
Damian T. Gordon
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
tubashaikh26
 
Ibm db2update2019 ibm db2 dev ops experience
Ibm db2update2019   ibm db2 dev ops experienceIbm db2update2019   ibm db2 dev ops experience
Ibm db2update2019 ibm db2 dev ops experience
Gustav Lundström
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
Christian Ramirez
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
Johan den Haan
 
Profile_YogeshFegade
Profile_YogeshFegadeProfile_YogeshFegade
Profile_YogeshFegade
Yogesh Fegade
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
Sandeep Adwankar
 
Delivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeDelivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-Code
Cyber-Duck
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
PG Scholar
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
BSGAfrica
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Up2 Technology
 
Yogesh_Fegade_Profile
Yogesh_Fegade_ProfileYogesh_Fegade_Profile
Yogesh_Fegade_Profile
Yogesh Fegade
 
Bdd with m spec
Bdd with m specBdd with m spec
Bdd with m spec
Pavneet Singh Saund
 
Wintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class LibraryWintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class Library
Jeremy Likness
 

Similar to Codurance Courses: Crafted Design (20)

The role of the architect in agile
The role of the architect in agileThe role of the architect in agile
The role of the architect in agile
 
What Skills You Need to Be a Software Developer
What Skills You Need to Be a Software DeveloperWhat Skills You Need to Be a Software Developer
What Skills You Need to Be a Software Developer
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Autoframework design
Autoframework designAutoframework design
Autoframework design
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Ibm db2update2019 ibm db2 dev ops experience
Ibm db2update2019   ibm db2 dev ops experienceIbm db2update2019   ibm db2 dev ops experience
Ibm db2update2019 ibm db2 dev ops experience
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Profile_YogeshFegade
Profile_YogeshFegadeProfile_YogeshFegade
Profile_YogeshFegade
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
 
Delivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeDelivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-Code
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Yogesh_Fegade_Profile
Yogesh_Fegade_ProfileYogesh_Fegade_Profile
Yogesh_Fegade_Profile
 
Bdd with m spec
Bdd with m specBdd with m spec
Bdd with m spec
 
Wintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class LibraryWintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class Library
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 

Codurance Courses: Crafted Design

  • 1. Crafted Design Duration: 2 days www.codurance.com hello@codurance.com
  • 2. About • Hands-on course to help experienced developers learn to: – design well crafted solutions – produce software that is responsive to changing requirements and new functionality – avoid the pitfalls that lead to legacy code
  • 3. Why attend? • Learn design techniques applied in successful projects • Use TDD as a design tool, applying Outside-In TDD • Drive out a flexible design • Build software that is not bound to a specific technology or framework by keeping them at the boundaries of your system • Express your business domain in every facet of your entire application, not just methods and classes • Keep your design clean as your application grows and requirements change • Let your architecture emerge, rather than designing a rigid and unchangeable structure up-front
  • 4. Content • Four elements of simple design • Use TDD as a design tool with Outside-In TDD • Business application of SOLID principles • Testing and refactoring legacy code to express business domain • Interaction Driven Design (IDD) – Map and visualise business concepts in code – Express design and architecture in code, but keeping your domain clean – Learn an evolution of a subset of DDD
  • 5. Audience • Software developers that: – have experience in developing software commercially – are familiar with at least one Object Oriented Language (such as Java and C#) – are able to understand Java (the codebase and exercises are in Java) – are comfortable using TDD to build software – understand mock objects and know how to use a mocking library
  • 6. Prerequisites • Developers must: – bring their own laptops – have a development environment consisting of: • Java 8 • favourite IDE • maven 3.x • a unit testing framework • Git (desirable) – be able to create projects, build source code and run test cases in their development environment