SlideShare a Scribd company logo
It’s a Framework Thing

IOC, AOP, Testing without Magic
Ashic Mahtab
http://www.heartysoft.com
          @ashic
   ashic@heartysoft.com
Frameworks – we love ‘em
but…
But, but…but they do so much.


          Do they?
Alternative?
 Simple Object Orientation Practices

  [And Object Orientation need not
require an “object oriented” language]
Inversion of Control /Dependency
               Injection
It’s about the source code dependency pointing
 the opposite way of the runtime dependency –
         however way you achieve that
Command Pattern
Decorator Pattern
Partial Application
Message Based Testing

How to Test Something Without Touching it
When I Do This   Domain   These Things Happen
Example Doc
Given –
          1. An account registered with an account ID “x” and initial balance of
£200
          2. An overdraw attempt is made to debit £300 from account “x”
          3. An overdraw attempt is made to debit £300 from account “x”
When-
          An attempt to debit £300 from account “x”
Then –
          1. An overdraw attempt is made to debit £300 from account “x”
          2. Account “x” is locked
Questions?

More Related Content

Viewers also liked

Kitchen evolution
Kitchen evolutionKitchen evolution
Kitchen evolutionNatashaRDH
 
Merlin Pc1
Merlin Pc1Merlin Pc1
Merlin Pc1
Tom Durkee
 
ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©ribbitrocks
 
Swine Influenza
Swine InfluenzaSwine Influenza
Swine Influenza
chrissyXIII
 
Growth Strategies Across the Product Lifecycle
Growth Strategies Across the Product LifecycleGrowth Strategies Across the Product Lifecycle
Growth Strategies Across the Product Lifecycle
Paul Morgan
 
感受前门步行街2
感受前门步行街2感受前门步行街2
感受前门步行街2guestfd81e1
 
Stillwater N Sid Sen Dedication
Stillwater N Sid Sen DedicationStillwater N Sid Sen Dedication
Stillwater N Sid Sen DedicationJim CastroLang
 
Prezentacija Sistema
Prezentacija SistemaPrezentacija Sistema
Prezentacija Sistema
NekretnineSrbije.com
 
CT vizsgálati protokollok I-II.
CT vizsgálati protokollok I-II.CT vizsgálati protokollok I-II.
CT vizsgálati protokollok I-II.
Péter Bágyi M.D.
 
Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009
Gihan Lahoud
 
Performance management dr. george taylor iii
Performance management  dr. george taylor iiiPerformance management  dr. george taylor iii
Performance management dr. george taylor iii
Dr. George Taylor III, SPHR,SCP
 
Pictures And Music
Pictures And  MusicPictures And  Music
Pictures And MusicBless_India
 
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Péter Bágyi M.D.
 
Urogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollokUrogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollok
Péter Bágyi M.D.
 
Pares
ParesPares
Pares
katialucy
 
Upotreba informaciono-komunikacionih tehnologija u Republici Srbiji
Upotreba informaciono-komunikacionih tehnologija u Republici SrbijiUpotreba informaciono-komunikacionih tehnologija u Republici Srbiji
Upotreba informaciono-komunikacionih tehnologija u Republici Srbiji
NekretnineSrbije.com
 
Leletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReportLeletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReport
Péter Bágyi M.D.
 

Viewers also liked (19)

Kitchen evolution
Kitchen evolutionKitchen evolution
Kitchen evolution
 
Merlin Pc1
Merlin Pc1Merlin Pc1
Merlin Pc1
 
ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©
 
CV
CVCV
CV
 
Swine Influenza
Swine InfluenzaSwine Influenza
Swine Influenza
 
Growth Strategies Across the Product Lifecycle
Growth Strategies Across the Product LifecycleGrowth Strategies Across the Product Lifecycle
Growth Strategies Across the Product Lifecycle
 
感受前门步行街2
感受前门步行街2感受前门步行街2
感受前门步行街2
 
Stillwater N Sid Sen Dedication
Stillwater N Sid Sen DedicationStillwater N Sid Sen Dedication
Stillwater N Sid Sen Dedication
 
Prezentacija Sistema
Prezentacija SistemaPrezentacija Sistema
Prezentacija Sistema
 
CT vizsgálati protokollok I-II.
CT vizsgálati protokollok I-II.CT vizsgálati protokollok I-II.
CT vizsgálati protokollok I-II.
 
Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009
 
Performance management dr. george taylor iii
Performance management  dr. george taylor iiiPerformance management  dr. george taylor iii
Performance management dr. george taylor iii
 
Pictures And Music
Pictures And  MusicPictures And  Music
Pictures And Music
 
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
 
Urogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollokUrogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollok
 
Pares
ParesPares
Pares
 
Social networking
Social networkingSocial networking
Social networking
 
Upotreba informaciono-komunikacionih tehnologija u Republici Srbiji
Upotreba informaciono-komunikacionih tehnologija u Republici SrbijiUpotreba informaciono-komunikacionih tehnologija u Republici Srbiji
Upotreba informaciono-komunikacionih tehnologija u Republici Srbiji
 
Leletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReportLeletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReport
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
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
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
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.
 
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
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
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
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
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
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
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
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
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
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
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
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
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
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
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
 
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
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
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!
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
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
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
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
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
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
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
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 ...
 

Roughing It