SlideShare a Scribd company logo
Evergreen Valley College, Oct. 3rd, 2015
Clean Code II
Dependency Injection
Theo Jungeblut
• Director Customer Success at
AppDynamics in San Francisco
• Coder & software craftsman by night,
first time dad and house builder
• Architects decoupled solutions
& crafts maintainable code to last
• Worked in healthcare and factory
automation, building mission critical
applications, framework & platforms
• Degree in Software Engineering
and Network Communications
• Enjoys cycling, running and eating
theo@designitright.net
www.designitright.net
We are hiring!
http://www.appdynamics.com/ careers
Your feedback is important!
http://speakerrate.com/speakers/18667-theo-jungeblut
Where to get the Slides
http://www.slideshare.net/theojungeblut
Overview
• What is the issue?
• What is Dependency Injection?
• What are Dependencies?
• What is the IoC-Container doing for you?
• What, how, why?
• Q & A
UI
Layer
Service
Layer
Business
Layer
Data
Layer
Web UI
Service
ProcessorProcessor
Service
RepositoryRepository
Mobile UI
Processor
A cleanly layered Architecture
What is the problem?
Clean Code II - Dependency Injection
What is Clean Code?
Clean Code is maintainable
Source code must be:
• readable & well structured
• extensible
• testable
Code Maintainability *
Principles Patterns Containers
Why? How? What?
Extensibility Clean Code Tool reuse
* from: Mark Seemann’s “Dependency Injection in .NET” presentation Bay.NET 05/2011
What is
Dependency Injection?
Without Dependency Injection
public class ExampleClass
{
private Logger logger;
public ExampleClass()
{
this.logger = new Logger();
this.logger.Log(“Constructor call”);
}
}
public class ExampleClass
{
private Logger logger;
public ExampleClass()
{
this.logger = new Logger();
this.logger.Log(“Constructor call”);
}
}
Without Dependency Injection
Inversion of Control –
Constructor Injection
http://www.martinfowler.com/articles/injection.html
public class ExampleClass
{
private ILogger logger;
public ExampleClass(ILogger logger)
{
this.logger = logger;
if (logger == null)
{
throw new ArgumentNullException(“logger”);
}
this.logger.Log(“Constructor call”);
}
}
Why is
Dependency Injection
beneficial?
Benefits of Dependency Injection
Benefit Description
Late binding Services can be swapped with
other services.
Extensibility Code can be extended and reused
in ways not explicitly planned for.
Parallel
development
Code can be developed in parallel.
Maintainability Classes with clearly defined
responsibilities are easier to
maintain.
TESTABILITY Classes can be unit tested.
* from Mark Seemann’s “Dependency Injection in .NET”, page 16
What
are
Dependencies ?
Stable Dependency
“A DEPENDENCY that can be referenced without
any detrimental effects.
The opposite of a VOLATILE DEPENDENCY. “
* From Glossary: Mark Seemann’s “Dependency Injection in .NET”
Volatile Dependency
“A DEPENDENCY that involves side effects that may be
undesirable at times.
This may include modules that don’t yet exist, or that
have adverse requirements on its runtime
environment.
These are the DEPENDENCIES that are addressed by
DI.“
* From Glossary: Mark Seemann’s “Dependency Injection in .NET”
Lifetime
a Job
for the Container
public class ExampleClass
{
private Logger logger;
public ExampleClass()
{
this.logger = new Logger();
this.logger.Log(“Constructor call”);
}
}
Without Dependency Injection
“Register, Resolve, Release”
“Three Calls Pattern by Krzysztof Koźmic: http://kozmic.pl/
1. Register
2. Resolve
Build
up
Your code
Execut
e
Release
Clean
up
What the IoC-Container will do for you
1. Register
2. Resolve
Build
up
Release
Clean
up
Separation of Concern (SoC)
probably by Edsger W. Dijkstra in 1974
You codeExecute
• Focus on purpose of your code
• Know only the contracts of the
dependencies
• No need to know implementations
• No need to handle lifetime of the
dependencies
The 3 Dimensions of DI
1.Object Composition
2.Object Lifetime
3.Interception
Register - Composition Root
• XML based Configuration
• Code based Configuration
• Convention based (Discovery)
Resolve
Resolve a single object request for
example by Constructor Injection by
resolving the needed object graph for
this object.
Release
Release objects from Container
when not needed anymore.
Anti Patterns
Control Freak
http://www.freakingnews.com/The-Puppet-Master-will-play-Pics-102728.asp
// UNITY Example
internal static class Program
{
private static UnityContainer unityContainer;
private static SingleContactManagerForm singleContactManagerForm;
private static void InitializeMainForm()
{
singleContactManagerForm =
unityContainer.Resolve<SingleContactManagerForm>();
}
}
Inversion of Control –
Service Locator
http://www.martinfowler.com/articles/injection.html
// UNITY Example
internal static class Program
{
private static UnityContainer unityContainer;
private static SingleContactManagerForm singleContactManagerForm;
private static void InitializeMainForm()
{
singleContactManagerForm =
unityContainer.Resolve<SingleContactManagerForm>();
}
}
Inversion of Control –
Service Locator
http://www.martinfowler.com/articles/injection.html
Inversion of Control –
Setter (Property) Injection
// UNITY Example
public class ContactManager : IContactManager
{
[Dependency]
public IContactPersistence ContactPersistence
{
get { return this.contactPersistence; }
set { this.contactPersistence = value; }
}
}
http://www.martinfowler.com/articles/injection.html
Property Injection
+ Easy to understand
- Hard to implement robust
* Take if an good default exists
- Limited in application otherwise
Method Injection
public class ContactManager : IContactManager
{
….
public bool Save (IContactPersistencecontactDatabaseService,
IContact contact)
{
if (logger == null)
{
throw new ArgumentNullException(“logger”);
}
…. // Additional business logic executed before calling the save
return contactDatabaseService.Save(contact);
}
}
http://www.martinfowler.com/articles/injection.html
Method Injection
• Needed for handling changing dependencies
in method calls
Ambient Context
public class ContactManager : IContactManager
{
….
public bool Save (….)
{
….
IUser currentUser = ApplicationContext.CurrentUser;
….
}
}
* The Ambient Context object needs to have a default value if not assigned yet.
Ambient Context
• Avoids polluting an API with Cross Cutting
Concerns
• Only for Cross Cutting Concerns
• Limited in application otherwise
The Adapter Pattern
from Gang of Four, “Design Patterns”
Interception
Public class LoggingInterceptor : IContactManager
{
public bool Save(IContact contact)
{
bool success;
this. logger.Log(“Starting saving’);
success =
this.contactManager.Save(contact);
this. logger.Log(“Starting saving’);
return success;
}
}
Public class ContactManager :
IContactManager
{
public bool Save(IContact contact)
{
….
return Result
}
}
* Note: strong simplification of what logically happens through interception.
Dependency Injection Container & more
• Typically support all types of Inversion of Control mechanisms
• Constructor Injection
• Property (Setter) Injection
• Method (Interface) Injection
• Service Locator
•.NET based DI-Container
• Unity
• Castle Windsor
• StructureMap
• Spring.NET
• Autofac
• Puzzle.Nfactory
• Ninject
• PicoContainer.NET
• and more
Related Technology:
• Managed Extensibility Framework (MEF)
The “Must Read”-Book(s)
http://www.manning.com/seemann/
by Mark Seemann
Dependency Injection
is a set of software
design principles and
patterns that enable
us to develop loosely
coupled code.
Summary Clean Code - DI
Maintainability is achieved through:
• Simplification, Specialization Decoupling
(KISS, SoC, IoC, DI)
• Dependency Injection
Constructor Injection as default,
Property and Method Injection as needed,
Ambient Context for Dependencies with a default,
Service Locator never
• Registration
Configuration by Convention if possible, exception in Code as needed
Configuration by XML for explicit extensibility and post compile setup
• Quality through Testability (all of them!)
Graphic by Nathan Sawaya
courtesy of brickartist.com
Downloads,
Feedback & Comments:
Q & A
Graphic by Nathan Sawaya courtesy of brickartist.com
theo@designitright.net
www.designitright.net
http://speakerrate.com/ speakers
/18667-theo-jungeblut
Time to say Thank You!
The Organizers
Evergreen Valley College (team)
The volunteers (how about you?)
TheSponsors
Picturesfromhttp://blog.siliconvalley-codecamp.com
References…
http://www.manning.com/seemann/
http://en.wikipedia.org/wiki/Keep_it_simple_stupid
http://picocontainer.org/patterns.html
http://en.wikipedia.org/wiki/Dependency_inversion_principle
http://en.wikipedia.org/wiki/Don't_repeat_yourself
http://en.wikipedia.org/wiki/Component-oriented_programming
http://en.wikipedia.org/wiki/Service-oriented_architecture
http://www.martinfowler.com/articles/injection.html
http://www.codeproject.com/KB/aspnet/IOCDI.aspx
http://msdn.microsoft.com/en-us/magazine/cc163739.aspx
http://msdn.microsoft.com/en-us/library/ff650320.aspx
http://msdn.microsoft.com/en-us/library/aa973811.aspx
http://msdn.microsoft.com/en-us/library/ff647976.aspx
http://msdn.microsoft.com/en-us/library/cc707845.aspx
http://msdn.microsoft.com/en-us/library/bb833022.aspx
http://unity.codeplex.com/
https://code.google.com/p/autofac/
http://funq.codeplex.com
http://simpleinjector.codeplex.com
http://docs.castleproject.org/Windsor.MainPage.ashx
http://commonservicelocator.codeplex.com
http://philipm.at/2011/di_speed.html
http://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison
http://stackoverflow.com/questions/4581791/how-do-the-major-c-sharp-di-ioc-frameworks-compare
http://diframeworks.apphb.com
http://www.sturmnet.org/blog/2010/03/04/poll-results-ioc-containers-for-net
Lego(trademarkedincapitalsasLEGO)
Blog, Rating, Slides
http://www.DesignItRight.net
http://speakerrate.com/speake
rs/18667-theo-jungeblut
www.slideshare.net/theojungeblut
… thanks for you attention!
And visit and support the
www.siliconvalley-codecamp.com
Please fill out the
feedback, and…
www.speakerrate.com/theoj

More Related Content

What's hot (20)

PPTX
Angularjs PPT
Amit Baghel
 
PPTX
Angular modules in depth
Christoffer Noring
 
PDF
TypeScript - An Introduction
NexThoughts Technologies
 
PPTX
Angular 2.0 Dependency injection
Eyal Vardi
 
ODP
OOP java
xball977
 
PPTX
Introduction to Node js
Akshay Mathur
 
PDF
A Basic Django Introduction
Ganga Ram
 
PDF
Hibernate Presentation
guest11106b
 
PPT
Generics in java
suraj pandey
 
PPTX
The Clean Architecture
Dmytro Turskyi
 
PPTX
Typescript ppt
akhilsreyas
 
PPTX
React hooks
Ramy ElBasyouni
 
PDF
Angular Routing Guard
Knoldus Inc.
 
PPT
Oops in Java
malathip12
 
ODP
Object Oriented Javascript
NexThoughts Technologies
 
PDF
Angular Advanced Routing
Laurent Duveau
 
PPTX
Angular Basics.pptx
AshokKumar616995
 
PPT
Introduction to Javascript
Amit Tyagi
 
PDF
React js t2 - jsx
Jainul Musani
 
PPTX
Spring boot
Gyanendra Yadav
 
Angularjs PPT
Amit Baghel
 
Angular modules in depth
Christoffer Noring
 
TypeScript - An Introduction
NexThoughts Technologies
 
Angular 2.0 Dependency injection
Eyal Vardi
 
OOP java
xball977
 
Introduction to Node js
Akshay Mathur
 
A Basic Django Introduction
Ganga Ram
 
Hibernate Presentation
guest11106b
 
Generics in java
suraj pandey
 
The Clean Architecture
Dmytro Turskyi
 
Typescript ppt
akhilsreyas
 
React hooks
Ramy ElBasyouni
 
Angular Routing Guard
Knoldus Inc.
 
Oops in Java
malathip12
 
Object Oriented Javascript
NexThoughts Technologies
 
Angular Advanced Routing
Laurent Duveau
 
Angular Basics.pptx
AshokKumar616995
 
Introduction to Javascript
Amit Tyagi
 
React js t2 - jsx
Jainul Musani
 
Spring boot
Gyanendra Yadav
 

Viewers also liked (20)

PDF
Dependency Injection in PHP
Kacper Gunia
 
PPTX
Accidentally Manager – A Survival Guide for First-Time Engineering Managers
Theo Jungeblut
 
PPTX
Clean Code III - Software Craftsmanship
Theo Jungeblut
 
PDF
Dependency injection in PHP 5.3/5.4
Fabien Potencier
 
PPTX
Dependency injection - the right way
Thibaud Desodt
 
PPTX
Clean Code Part I - Design Patterns at SoCal Code Camp
Theo Jungeblut
 
PDF
Clean architecture and flux
Philwoo Kim
 
ODP
Clean code
Fredrik Wendt
 
PDF
Clean Code 2
Fredrik Wendt
 
PDF
Introduction to Spring's Dependency Injection
Richard Paul
 
ODP
Dependency Injection Andrey Stadnik(enemis)
Андрей Стадник
 
PPTX
CodeFest 2014. Шкредов С. — Управление зависимостями в архитектуре. Переход о...
CodeFest
 
PPTX
Dependency injection
GetDev.NET
 
PDF
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
Theo Jungeblut
 
PPTX
Dependency Injection And Ioc Containers
Tim Murphy
 
PPTX
Clean Code I - Design Patterns and Best Practices at SoCal Code Camp San Dieg...
Theo Jungeblut
 
PPTX
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Arjun Thakur
 
PDF
7 rules of simple and maintainable code
Geshan Manandhar
 
PDF
Javascript & Ajax Basics
Richard Paul
 
PPTX
Trafiklab Meetup 141030
Elias Arnestrand
 
Dependency Injection in PHP
Kacper Gunia
 
Accidentally Manager – A Survival Guide for First-Time Engineering Managers
Theo Jungeblut
 
Clean Code III - Software Craftsmanship
Theo Jungeblut
 
Dependency injection in PHP 5.3/5.4
Fabien Potencier
 
Dependency injection - the right way
Thibaud Desodt
 
Clean Code Part I - Design Patterns at SoCal Code Camp
Theo Jungeblut
 
Clean architecture and flux
Philwoo Kim
 
Clean code
Fredrik Wendt
 
Clean Code 2
Fredrik Wendt
 
Introduction to Spring's Dependency Injection
Richard Paul
 
Dependency Injection Andrey Stadnik(enemis)
Андрей Стадник
 
CodeFest 2014. Шкредов С. — Управление зависимостями в архитектуре. Переход о...
CodeFest
 
Dependency injection
GetDev.NET
 
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
Theo Jungeblut
 
Dependency Injection And Ioc Containers
Tim Murphy
 
Clean Code I - Design Patterns and Best Practices at SoCal Code Camp San Dieg...
Theo Jungeblut
 
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Arjun Thakur
 
7 rules of simple and maintainable code
Geshan Manandhar
 
Javascript & Ajax Basics
Richard Paul
 
Trafiklab Meetup 141030
Elias Arnestrand
 
Ad

Similar to Clean Code II - Dependency Injection (20)

PPTX
Clean Code II - Dependency Injection at SoCal Code Camp San Diego (07/27/2013)
Theo Jungeblut
 
PPTX
Cut your Dependencies with - Dependency Injection for South Bay.NET User Grou...
Theo Jungeblut
 
PPTX
Cut your Dependencies with Dependency Injection for East Bay.NET User Group
Theo Jungeblut
 
PPTX
Cut your Dependencies - Dependency Injection at Silicon Valley Code Camp
Theo Jungeblut
 
PPTX
Cut your Dependencies with Dependency Injection - .NET User Group Osnabrueck
Theo Jungeblut
 
PPTX
Clean Code Part II - Dependency Injection at SoCal Code Camp
Theo Jungeblut
 
PPTX
Reactive Micro Services with Java seminar
Gal Marder
 
PDF
springtraning-7024840-phpapp01.pdf
BruceLee275640
 
PDF
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JSFestUA
 
PPTX
SOLID & IoC Principles
Pavlo Hodysh
 
PDF
Dependency Injection
Giovanni Scerra ☃
 
PPTX
Improving the Quality of Existing Software
Steven Smith
 
PDF
Node.js Service - Best practices in 2019
Olivier Loverde
 
PPTX
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Theo Jungeblut
 
PDF
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
DicodingEvent
 
PPTX
Leveraging Dependency Injection(DI) in Universal Applications - Tamir Dresher
Tamir Dresher
 
PPTX
Improving the Quality of Existing Software - DevIntersection April 2016
Steven Smith
 
PDF
tut0000021-hevery
tutorialsruby
 
PDF
tut0000021-hevery
tutorialsruby
 
PPT
Inversion of control
Moslem Rashidi
 
Clean Code II - Dependency Injection at SoCal Code Camp San Diego (07/27/2013)
Theo Jungeblut
 
Cut your Dependencies with - Dependency Injection for South Bay.NET User Grou...
Theo Jungeblut
 
Cut your Dependencies with Dependency Injection for East Bay.NET User Group
Theo Jungeblut
 
Cut your Dependencies - Dependency Injection at Silicon Valley Code Camp
Theo Jungeblut
 
Cut your Dependencies with Dependency Injection - .NET User Group Osnabrueck
Theo Jungeblut
 
Clean Code Part II - Dependency Injection at SoCal Code Camp
Theo Jungeblut
 
Reactive Micro Services with Java seminar
Gal Marder
 
springtraning-7024840-phpapp01.pdf
BruceLee275640
 
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JSFestUA
 
SOLID & IoC Principles
Pavlo Hodysh
 
Dependency Injection
Giovanni Scerra ☃
 
Improving the Quality of Existing Software
Steven Smith
 
Node.js Service - Best practices in 2019
Olivier Loverde
 
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Theo Jungeblut
 
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
DicodingEvent
 
Leveraging Dependency Injection(DI) in Universal Applications - Tamir Dresher
Tamir Dresher
 
Improving the Quality of Existing Software - DevIntersection April 2016
Steven Smith
 
tut0000021-hevery
tutorialsruby
 
tut0000021-hevery
tutorialsruby
 
Inversion of control
Moslem Rashidi
 
Ad

More from Theo Jungeblut (10)

PPTX
Clean Code Part i - Design Patterns and Best Practices -
Theo Jungeblut
 
PPTX
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Theo Jungeblut
 
PPTX
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Theo Jungeblut
 
PPTX
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Theo Jungeblut
 
PPTX
Clean Code - Design Patterns and Best Practices for Bay.NET SF User Group (01...
Theo Jungeblut
 
PPTX
Clean Code Part III - Craftsmanship at SoCal Code Camp
Theo Jungeblut
 
PPTX
Clean Code for East Bay .NET User Group
Theo Jungeblut
 
PDF
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
Theo Jungeblut
 
PDF
Lego For Engineers - Dependency Injection for LIDNUG (2011-06-03)
Theo Jungeblut
 
PDF
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Theo Jungeblut
 
Clean Code Part i - Design Patterns and Best Practices -
Theo Jungeblut
 
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Theo Jungeblut
 
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Theo Jungeblut
 
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Theo Jungeblut
 
Clean Code - Design Patterns and Best Practices for Bay.NET SF User Group (01...
Theo Jungeblut
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Theo Jungeblut
 
Clean Code for East Bay .NET User Group
Theo Jungeblut
 
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
Theo Jungeblut
 
Lego For Engineers - Dependency Injection for LIDNUG (2011-06-03)
Theo Jungeblut
 
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Theo Jungeblut
 

Recently uploaded (20)

PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 

Clean Code II - Dependency Injection