SlideShare a Scribd company logo
1 of 30
@kfirondev
Refactoring Design Patterns the
Functional Way (in Scala)
@kfirondev
Kfir Bloch
Backend engineering manager
@kfirondev
What the hell is
functional programming?
@kfirondev
โ€ข Treats computation as the evaluation of
mathematical functions
โ€ข Avoid changing state and mutable data
โ€ข Declarative
โ€ข Pure functions with no side effects
http://www.clker.com/
@kfirondev
case class Salad(name: String,
veggy: Boolean,
chopped: Boolean)
Immutability via
Scala case class
@kfirondev
sealed trait Salad
case class Lentils() extends Salad
case class Hummus() extends Salad
case class Tahini() extends Salad
case class SaladInfo(salad: Salad, spices: Seq[String])
def makeSaladInfo(salad: Salad,
f: Salad => Seq[String]): SaladInfo =
SaladInfo(salad, f(salad))
// usage
makeSaladInfo(Hummus(), spicer)
def spicer(salad: AnyRef): Seq[String] =
salad match {
case l: Lentils => Seq("Salt", "Olive Oil", "Red paper")
case h: Hummus => Seq("Salt", "Garlic", "Onion")
case t: Tahini => Seq("Salt", "Garlic", "Lemon")
}
Higher order
function
@kfirondev
def doSomething(msg: String): Unit= {
val formatted = msg.toUpperCase
logger.log(Level.WARNING, formatted)
}
Function with side
effects
@kfirondev
def doSomething(msg: String): String = {
val formatted = msg.toUpperCase
formatted
}
Pure function
@kfirondev
It leads
naturally to
Hexagonal
Architecture
(ports & adapters)
http://blog.mattwynne.net/2012/05/31/hexagonal-rails-objects-values-and-hexagons/comment-
page-1/
@kfirondev
Hexagonal Architecture with FP
gives result which is:
Deterministic Separation of concerns Fast testing lifecycle Concurrent agnostic
domain model
@kfirondev
People told you that ->
@kfirondev
People told you that ->
Abstract factory
Builder
Factory Method
Builder
Prototype
Adapter
Bridge
Composite
Decorator
Proxy
Chain of
responsibility
Command
Iterator
Mediator
Observer
Object Oriented
http://www.clker.com/
@kfirondev
People told you that ->
Abstract factory
Builder
Factory Method
Builder
Prototype
Adapter
Bridge
Composite
Decorator
Proxy
Chain of
responsibility
Command
Iterator
Mediator
Observer
Object Oriented
Functional
Programming
http://www.clker.com/
@kfirondev
People told you that ->
Abstract factory
Builder
Factory Method
Builder
Prototype
Adapter
Bridge
Composite
Decorator
Proxy
Chain of
responsibility
Command
Iterator
Mediator
Observer
Object Oriented
Functional
Programming
http://www.clker.com/
@kfirondev
Builder pattern builds a complex object using
simple objects and using a step by step
approach. This type of design pattern comes
under creational pattern as this pattern
provides one of the best ways to create an
object.
Builder
@kfirondev
Builder pattern builds a complex object using
simple objects and using a step by step
approach. This type of design pattern comes
under creational pattern as this pattern
provides one of the best ways to create an
object.
Builder
LETโ€™S
CODE
@kfirondev
Behavior pattern that helps create objects
which represent various strategies and a
context object whose behavior varies as per
its strategy object. The strategy object
changes the executing algorithm of the context
object
Strategy
@kfirondev
LETโ€™S
CODE
Behavior pattern that helps create objects
which represent various strategies and a
context object whose behavior varies as per
its strategy object. The strategy object
changes the executing algorithm of the context
object
Strategy
@kfirondev
The chain-of-responsibility pattern is a design pattern
consisting of a source of command objects and a series
of processing objects.
Each processing object contains logic that defines the
types of command objects that it can handle.
Only qualifying predicate for the request will process it,
otherwise it will pass to the next handler in chain
Chain of
Responsibility
@kfirondev
LETโ€™S
CODE
The chain-of-responsibility pattern is a design pattern
consisting of a source of command objects and a series
of processing objects.
Each processing object contains logic that defines the
types of command objects that it can handle.
Only qualifying predicate for the request will process it,
otherwise it will pass to the next handler in chain
Chain of
Responsibility
@kfirondev
In software engineering, dependency injection is a
software design pattern that implements inversion of
control for resolving dependencies. A dependency is an
object that can be used (a service)
Dependency
Injection
@kfirondev
In software engineering, dependency injection is a
software design pattern that implements inversion of
control for resolving dependencies. A dependency is an
object that can be used (a service)
Dependency
Injection
Dependency Injection framework
!=
Dependency Injection
@kfirondev
Dependency injection
SpringEJB Guice
Dependency Injection Frameworks
@kfirondev
Dependency injection
SpringEJB Guice
Dependency Injection Frameworks
Constructor
Injection
Vanilla
@kfirondev
Dependency injection
SpringEJB Guice
Dependency Injection Frameworks
Cake
Pattern
Constructor
Injection
Vanilla
@kfirondev
Dependency injection
SpringEJB Guice
Dependency Injection Frameworks
Cake
Pattern
Constructor
Injection
Vanilla
LETโ€™S
CODE
@kfirondev
โ€ข https://github.com/kfiron/design-pattern-
fp-talk
My code is available for you
@kfirondev
โ€ข Went over functional programming definition
โ€ข Understood that FP as โ€œside effectโ€ help you go
towards hexagonal architecture
โ€ข Refactor various patterns from Java to Scala
Idioms
โ€ข Dependency injection using Scala with cake
pattern
Summary of what we did
@kfirondev@kfirondev
@kfirondev
linkedin/in/blochkfir github.com/kfiron@kfirondevkfirb@wix.com
Kfir Bloch
Head of Backend Engineering
Q&A
@kfirondev
Thank YouWix Engineering Blog
http://engineering.wix.com/
We are hiring
http://jobs.wix.com
email
jobs@wix.com
@kfirondev
Kfir Bloch

More Related Content

What's hot

Tech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagyTech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagy
Skills Matter
ย 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
Sejong Park
ย 

What's hot (20)

Codemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps DisasterCodemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps Disaster
ย 
Continuous integration testing 2019 08
Continuous integration testing 2019 08Continuous integration testing 2019 08
Continuous integration testing 2019 08
ย 
Continuous Integration Testing: Fully test your microservices application, ea...
Continuous Integration Testing: Fully test your microservices application, ea...Continuous Integration Testing: Fully test your microservices application, ea...
Continuous Integration Testing: Fully test your microservices application, ea...
ย 
Angular 2 observables
Angular 2 observablesAngular 2 observables
Angular 2 observables
ย 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
ย 
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flightMesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
ย 
Continuous Delivery with Jenkins: the Good, the Bad and the Ugly - JAX DevOps...
Continuous Delivery with Jenkins: the Good, the Bad and the Ugly - JAX DevOps...Continuous Delivery with Jenkins: the Good, the Bad and the Ugly - JAX DevOps...
Continuous Delivery with Jenkins: the Good, the Bad and the Ugly - JAX DevOps...
ย 
Software Supply Chains for DevOps @ InfoQ Live 2021
Software Supply Chains for DevOps @ InfoQ Live 2021Software Supply Chains for DevOps @ InfoQ Live 2021
Software Supply Chains for DevOps @ InfoQ Live 2021
ย 
ATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD Approach
ย 
Know the flow to master agility
Know the flow to master agilityKnow the flow to master agility
Know the flow to master agility
ย 
Angular vs React - Devoxx BE 2017
Angular vs React - Devoxx BE 2017Angular vs React - Devoxx BE 2017
Angular vs React - Devoxx BE 2017
ย 
GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
ย 
Tech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagyTech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagy
ย 
Automated Integration Testing in Java using Arquillian
Automated Integration Testing in Java using ArquillianAutomated Integration Testing in Java using Arquillian
Automated Integration Testing in Java using Arquillian
ย 
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsMeteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
ย 
Improving Automated Tests with Fluent Assertions
Improving Automated Tests with Fluent Assertions Improving Automated Tests with Fluent Assertions
Improving Automated Tests with Fluent Assertions
ย 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
ย 
Enterprise build tool gradle
Enterprise build tool gradleEnterprise build tool gradle
Enterprise build tool gradle
ย 
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open WebKafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
Kafka and GraphQL: Misconceptions and Connections | Gerard Klijs, Open Web
ย 
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a ProSkip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
ย 

Viewers also liked

Viewers also liked (20)

Tate Modern quiz.ppt by vicky papageorgiou
Tate Modern quiz.ppt by vicky papageorgiouTate Modern quiz.ppt by vicky papageorgiou
Tate Modern quiz.ppt by vicky papageorgiou
ย 
Lista de exercรญcios bio 2ยบ ano - 1ยบ bim 2017 - prof.james martins com gabarito
Lista de exercรญcios bio 2ยบ ano  - 1ยบ bim 2017 - prof.james martins com gabaritoLista de exercรญcios bio 2ยบ ano  - 1ยบ bim 2017 - prof.james martins com gabarito
Lista de exercรญcios bio 2ยบ ano - 1ยบ bim 2017 - prof.james martins com gabarito
ย 
็ฌฌ51ๅ›žNDS PostgreSQLใฎใƒ†ใ‚™ใƒผใ‚ฟๅž‹ #nds51
็ฌฌ51ๅ›žNDS PostgreSQLใฎใƒ†ใ‚™ใƒผใ‚ฟๅž‹ #nds51็ฌฌ51ๅ›žNDS PostgreSQLใฎใƒ†ใ‚™ใƒผใ‚ฟๅž‹ #nds51
็ฌฌ51ๅ›žNDS PostgreSQLใฎใƒ†ใ‚™ใƒผใ‚ฟๅž‹ #nds51
ย 
Drupal Developer Days Keynote
Drupal Developer Days KeynoteDrupal Developer Days Keynote
Drupal Developer Days Keynote
ย 
ๆกไปถๅผ่ฉ•ไพกๅ™จใฎๅฎŸ่ฃ…ใซใ‚ˆใ‚‹็ฎก็†ใƒ„ใƒผใƒซใฎๆŠฝ่ฑกๅŒ–
ๆกไปถๅผ่ฉ•ไพกๅ™จใฎๅฎŸ่ฃ…ใซใ‚ˆใ‚‹็ฎก็†ใƒ„ใƒผใƒซใฎๆŠฝ่ฑกๅŒ–ๆกไปถๅผ่ฉ•ไพกๅ™จใฎๅฎŸ่ฃ…ใซใ‚ˆใ‚‹็ฎก็†ใƒ„ใƒผใƒซใฎๆŠฝ่ฑกๅŒ–
ๆกไปถๅผ่ฉ•ไพกๅ™จใฎๅฎŸ่ฃ…ใซใ‚ˆใ‚‹็ฎก็†ใƒ„ใƒผใƒซใฎๆŠฝ่ฑกๅŒ–
ย 
Apostila -curso_de_hp-12_c
Apostila  -curso_de_hp-12_cApostila  -curso_de_hp-12_c
Apostila -curso_de_hp-12_c
ย 
The Fall of Trump
The Fall of TrumpThe Fall of Trump
The Fall of Trump
ย 
A guide to using twitter - for researchers
A guide to using twitter - for researchersA guide to using twitter - for researchers
A guide to using twitter - for researchers
ย 
HAPPYWEEK 212 - 2017.03.27.
HAPPYWEEK 212 - 2017.03.27.HAPPYWEEK 212 - 2017.03.27.
HAPPYWEEK 212 - 2017.03.27.
ย 
Devel for Drupal 8
Devel for Drupal 8Devel for Drupal 8
Devel for Drupal 8
ย 
Cours Prestashop 1.6 / Webbax - Ecole club Migros
Cours Prestashop 1.6 / Webbax - Ecole club MigrosCours Prestashop 1.6 / Webbax - Ecole club Migros
Cours Prestashop 1.6 / Webbax - Ecole club Migros
ย 
Revolution Banking 2016- 1ยช ediciรณn
Revolution Banking 2016- 1ยช ediciรณnRevolution Banking 2016- 1ยช ediciรณn
Revolution Banking 2016- 1ยช ediciรณn
ย 
HoloLens x Graphics ๅ…ฅ้–€
HoloLens x Graphics ๅ…ฅ้–€HoloLens x Graphics ๅ…ฅ้–€
HoloLens x Graphics ๅ…ฅ้–€
ย 
ใƒ•ใ‚ฉใƒณใƒˆใฎ้ธใณๆ–นใƒปไฝฟใ„ๆ–น
ใƒ•ใ‚ฉใƒณใƒˆใฎ้ธใณๆ–นใƒปไฝฟใ„ๆ–นใƒ•ใ‚ฉใƒณใƒˆใฎ้ธใณๆ–นใƒปไฝฟใ„ๆ–น
ใƒ•ใ‚ฉใƒณใƒˆใฎ้ธใณๆ–นใƒปไฝฟใ„ๆ–น
ย 
Shehata (cv)
Shehata (cv) Shehata (cv)
Shehata (cv)
ย 
Abeer elshahat
Abeer elshahatAbeer elshahat
Abeer elshahat
ย 
The Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer InterviewsThe Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer Interviews
ย 
The Be-All, End-All List of Small Business Tax Deductions
The Be-All, End-All List of Small Business Tax DeductionsThe Be-All, End-All List of Small Business Tax Deductions
The Be-All, End-All List of Small Business Tax Deductions
ย 
10 Things You Didnโ€™t Know About Mobile Email from Litmus & HubSpot
 10 Things You Didnโ€™t Know About Mobile Email from Litmus & HubSpot 10 Things You Didnโ€™t Know About Mobile Email from Litmus & HubSpot
10 Things You Didnโ€™t Know About Mobile Email from Litmus & HubSpot
ย 
How to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's BuyerHow to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's Buyer
ย 

Similar to Design pattern-refactor-functional

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
ย 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
guest4faf46
ย 

Similar to Design pattern-refactor-functional (20)

You Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer NowYou Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer Now
ย 
LarKC Tutorial at ISWC 2009 - Architecture
LarKC Tutorial at ISWC 2009 - ArchitectureLarKC Tutorial at ISWC 2009 - Architecture
LarKC Tutorial at ISWC 2009 - Architecture
ย 
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache CalciteA Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
ย 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
ย 
Alberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsAlberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.js
ย 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJS
ย 
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupMl ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science Meetup
ย 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
ย 
RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014
ย 
6ยฐ Sessione - Ambiti applicativi nella ricerca di tecnologie statistiche avan...
6ยฐ Sessione - Ambiti applicativi nella ricerca di tecnologie statistiche avan...6ยฐ Sessione - Ambiti applicativi nella ricerca di tecnologie statistiche avan...
6ยฐ Sessione - Ambiti applicativi nella ricerca di tecnologie statistiche avan...
ย 
2011-02-03 LA RubyConf Rails3 TDD Workshop
2011-02-03 LA RubyConf Rails3 TDD Workshop2011-02-03 LA RubyConf Rails3 TDD Workshop
2011-02-03 LA RubyConf Rails3 TDD Workshop
ย 
Spark sql meetup
Spark sql meetupSpark sql meetup
Spark sql meetup
ย 
A smarter Pig: Building a SQL interface to Apache Pig using Apache Calcite
A smarter Pig: Building a SQL interface to Apache Pig using Apache CalciteA smarter Pig: Building a SQL interface to Apache Pig using Apache Calcite
A smarter Pig: Building a SQL interface to Apache Pig using Apache Calcite
ย 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
ย 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
ย 
Functional Java 8 - Introduction
Functional Java 8 - IntroductionFunctional Java 8 - Introduction
Functional Java 8 - Introduction
ย 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
ย 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
ย 
Backend Development - Django
Backend Development - DjangoBackend Development - Django
Backend Development - Django
ย 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto UniversityAngular.js Primer in Aalto University
Angular.js Primer in Aalto University
ย 

More from Kfir Bloch

More from Kfir Bloch (7)

Increasing velocity via serless semantics
Increasing velocity via serless semanticsIncreasing velocity via serless semantics
Increasing velocity via serless semantics
ย 
The secrets of building a team that can do everything
The secrets of building a team that can do everythingThe secrets of building a team that can do everything
The secrets of building a team that can do everything
ย 
A sweet taste of clean code and software design
A sweet taste of clean code and software designA sweet taste of clean code and software design
A sweet taste of clean code and software design
ย 
Rest is bad
Rest is badRest is bad
Rest is bad
ย 
Refactoring Design Patterns the Functional Way (in Scala)
Refactoring Design Patterns the Functional Way (in Scala)Refactoring Design Patterns the Functional Way (in Scala)
Refactoring Design Patterns the Functional Way (in Scala)
ย 
Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016
ย 
The art of decomposing monoliths
The art of decomposing monolithsThe art of decomposing monoliths
The art of decomposing monoliths
ย 

Recently uploaded

Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar โ‰ผ๐Ÿ” Delhi door step de...
Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar  โ‰ผ๐Ÿ” Delhi door step de...Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar  โ‰ผ๐Ÿ” Delhi door step de...
Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar โ‰ผ๐Ÿ” Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
ย 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
sivaprakash250
ย 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
ย 
Call Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort ServiceCall Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 

Recently uploaded (20)

Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar โ‰ผ๐Ÿ” Delhi door step de...
Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar  โ‰ผ๐Ÿ” Delhi door step de...Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar  โ‰ผ๐Ÿ” Delhi door step de...
Call Now โ‰ฝ 9953056974 โ‰ผ๐Ÿ” Call Girls In New Ashok Nagar โ‰ผ๐Ÿ” Delhi door step de...
ย 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
ย 
Top Rated Pune Call Girls Budhwar Peth โŸŸ 6297143586 โŸŸ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth โŸŸ 6297143586 โŸŸ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth โŸŸ 6297143586 โŸŸ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth โŸŸ 6297143586 โŸŸ Call Me For Genuine Se...
ย 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
ย 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
ย 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
ย 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
ย 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
ย 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
ย 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
ย 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
ย 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
ย 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
ย 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
ย 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
ย 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
ย 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
ย 
Call Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort ServiceCall Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Ramesh Nagar Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
ย 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
ย 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
ย 

Design pattern-refactor-functional

Editor's Notes

  1. The first case is degradation of service