SlideShare uma empresa Scribd logo
1 de 75
Baixar para ler offline
Beyond Design Patterns 
A Guide To Better OOP
OR: 
Why Learning 
Object-Oriented 
Design From Design 
Patterns Is Bad
Object Oriented Design 
… is the process of planning a 
system of interacting objects 
for the purpose of solving a 
software problem. 
-Wikipedia
What Are Design 
Patterns?
What Are Design 
Patterns? 
● Commonly Occurring Solutions?
What Are Design 
Patterns? 
● Commonly Occurring Solutions? 
● Commonly Occurring Structures?
What Are Design 
Patterns? 
● Commonly Occurring Solutions? 
● Commonly Occurring Structures? 
● Commonly Occurring Limitations?
What Are Design 
Patterns? 
● Commonly Occurring Solutions? 
● Commonly Occurring Structures? 
● Commonly Occurring Limitations? 
● All Of The Above?
What Are Design 
Patterns? 
All Of The Above!
What Kind Of Design 
Patterns Are There?
Gang-Of-Four Design Patterns 
Creational 
Abstract Factory 
Builder 
Factory Method 
Object Pool 
Prototype
Gang-Of-Four Design Patterns 
Creational Structural 
Abstract Factory 
Builder 
Factory Method 
Object Pool 
Prototype 
Adapter 
Bridge 
Composite 
Decorator 
Facade 
Flyweight 
Proxy
Gang-Of-Four Design Patterns 
Creational Structural Behavioral 
Abstract Factory 
Builder 
Factory Method 
Object Pool 
Prototype 
Adapter 
Bridge 
Composite 
Decorator 
Facade 
Flyweight 
Proxy 
Chain Of Responsibility 
Command 
Interpreter 
Iterator 
Mediator 
Memento 
Null Object 
Observer 
Strategy 
Template Method
Let’s Try A Different 
Organization
Gang-Of-Four Design Patterns 
Shim 
Flyweight 
Iterator 
Null Object 
Object Pool 
Prototype 
Re-Grouped
Gang-Of-Four Design Patterns 
Re-Grouped 
Shim Compositional 
Flyweight 
Iterator 
Null Object 
Object Pool 
Prototype 
Adapter 
Builder 
Decorator 
Facade 
Interpreter 
Mediator 
Observer 
Proxy
Gang-Of-Four Design Patterns 
Re-Grouped 
Shim Compositional Decompositional 
Flyweight 
Iterator 
Null Object 
Object Pool 
Prototype 
Adapter 
Builder 
Decorator 
Facade 
Interpreter 
Mediator 
Observer 
Proxy 
Abstract Factory 
Bridge 
Chain Of Responsibility 
Command 
Factory Method 
Mediator 
Memento 
Observer 
Proxy 
Strategy 
Template Method
Compare Groupings 
Creational Structural Behavioral 
Shim Abstract Factory 
Object Pool 
Prototype 
Flyweight Iterator 
Null Object 
Compositional Builder Adapter 
Composite 
Decorator 
Facade 
Proxy 
Interpreter 
Mediator 
Observer 
Decompositional Factory Method Bridge 
Composite 
Proxy 
Chain Of Responsibility 
Command 
Mediator 
Memento 
Observer 
Strategy 
Template Method
Let’s Examine 5 Patterns 
More Closely
Compare Groupings 
Creational Structural Behavioral 
Shim Abstract Factory 
Object Pool 
Prototype 
Flyweight Iterator 
Null Object 
Compositional Builder Adapter 
Composite 
Decorator 
Facade 
Proxy 
Interpreter 
Mediator 
Observer 
Decompositional Factory Method Bridge 
Composite 
Proxy 
Chain Of Responsibility 
Command 
Mediator 
Memento 
Observer 
Strategy 
Template Method
Adapter 
use PsrLogLoggerInterface as Log 
class PSR3Logger implements Log { 
public function log($level, $msg, array $ctx = array()) 
{ 
$severity = $this->convertLevelToSeverity($level); 
watchdog(“unknown”, $msg, $ctx, $severity); 
} 
/* ... */ 
}
Facade 
class EntityMetadataWrapper { 
public function __construct($type, $data = null, $info = array()) { 
$this->type = $type; 
$this->info = $info + array( 
“langcode” => null, 
); 
$this->info[“type”] = $type; 
if (isset($data)) { 
$this->set($data); 
} 
} 
/* ... */ 
}
Adapter vs Facade 
Class 1 
Class 2 
Class 3 
Class n 
Class 1 
Class m 
Existing 
Code 
Other 
Code 
“Pattern” 
Code Class 1 
Class 2 
Class 3 
Class n 
API
Adapter vs Facade 
Class 1 
Class 2 
Class 3 
Class n 
Class 1 
Class m 
Existing 
Code 
Other 
Code 
“Pattern” 
Code Class 1 
Class 2 
Class 3 
Class n 
API API Exists? Adapter
Adapter vs Facade 
Class 1 
Class 2 
Class 3 
Class n 
Class 1 
Class m 
Existing 
Code 
Other 
Code 
“Pattern” 
Code Class 1 
Class 2 
Class 3 
Class n 
API API Exists? Adapter 
New API? Facade
They Look The 
Same!!!???
Adapter Facade 
Bridge Decorator Proxy
They All Look The 
Same!!!???
Adapter Facade 
Bridge Decorator Proxy
Adapter Facade 
The Code Is The Same 
The Why Is Different 
Bridge Decorator Proxy
DeDuplicated Groupings 
Creational Structural Behavioral 
Compositional Adapter 
Composite 
Mediator 
Observer 
Decompositional Adapter 
Composite 
Command 
Mediator 
Memento 
Observer
DeDuplicated Re-Groupings 
Multiple 
Systems? 
Single 
System? 
Single 
Objects? 
Information 
Flow? 
Mediator Command Observer 
Structure Adapter Composite Memento
DeDeDuplicated Re-Groupings 
Pattern 
Information 
Flow? 
Mediator 
Structure Adapter
DeDeDuplicated ReRe-Groupings 
Pattern 
Information 
Flow? 
Mediator
All Design Patterns Do 
The Same Thing:
All Design Patterns Do 
The Same Thing: 
Control Information Flow
So Let’s Talk About 
Information Flow
So Let’s Talk About 
Communication
A message 
$msg
Logic 
$obj
Message Vs Logic 
State
Message Vs Logic 
Messages 
State
Message Vs Logic 
Messages 
State 
Logic
Message Vs Logic 
Messages 
State 
Logic HERE BE 
DRAGONS
Why Break Them Apart? 
Logic Hybrid Message 
Purpose Behavior General Code State 
State Stateless Stateful Stateful 
Paradigm Functional OOP? Data
Ask 
$msg = $obj->something(); 
Logic Hybrid Message 
No Yes Yes
Tell 
$obj->something($msg); 
Logic Hybrid Message 
No Yes Yes
Translate 
$msg2 = $obj->do($msg); 
Logic Hybrid Message 
Yes Yes No
Everything Else Is A 
Combination Of These 
Atoms
Note:
Note: 
Ask Is Always Stateful
Note: 
Ask Is Always Stateful 
Tell Is Always Stateful
Note: 
Ask Is Always Stateful 
Tell Is Always Stateful 
Translate Can Be Stateless
Why Does This Matter?
It Lets Us Analyze 
Object Roles
Object Role Patterns 
State? Logic? Mode
Object Role Patterns 
State? Logic? Mode 
Representer User No Ask/Tell
Representer 
class User { 
public function getName(); 
public function isAdmin(); 
public function setName($name); 
}
Object Role Patterns 
State? Logic? Mode 
Representer User No Ask/Tell 
Doer No Yes Tell
Doer 
class EmailSystem { 
/** 
* @return boolean 
*/ 
public function send(Message $msg); 
}
Object Role Patterns 
State? Logic? Mode 
Representer User No Ask/Tell 
Doer No Yes Tell 
Dispatcher System No Translate
Dispatcher 
class Controller { 
/** 
* @return Response 
*/ 
public function handle(Request $req); 
}
Object Role Patterns 
State? Logic? Mode 
Representer User No Ask/Tell 
Doer No Yes Tell 
Dispatcher System No Translate 
Translator No Yes Translate
Translator 
class UserView { 
/** 
* @return string HTML 
*/ 
public function render(User $user); 
}
Object Role Patterns 
State? Logic? Mode 
Representer User No Ask/Tell 
Doer No Yes Tell 
Dispatcher System No Translate 
Translator No Yes Translate 
Maker System Yes Ask
Makers 
class UserFactory { 
/** 
* @return User a user object 
*/ 
public function getUser(); 
}
Object Role Patterns 
State? Logic? Mode 
Representer User No Ask/Tell 
Doer No Yes Tell 
Dispatcher System No Translate 
Translator No Yes Translate 
Maker System Yes Ask
Object Role Patterns 
Representer 
Doer 
Dispatcher 
Translator 
Maker
Object Oriented Design 
… is the process of planning a 
system of interacting objects 
for the purpose of solving a 
software problem. 
-Wikipedia
Object Oriented Design 
… is the process of planning a 
system of interacting objects 
for the purpose of solving a 
software problem. 
-Wikipedia
Design Patterns 
Are Important! 
And Should Be Used!
But OOP Is Not About 
“Finding The Correct 
Pattern”
Focus on: 
Communication 
Interaction 
And Abstraction
Remember: 
OOP Is About 
Solving Problems
Anthony Ferrara 
joind.in/11796 
@ircmaxell 
me@ircmaxell.com 
blog.ircmaxell.com 
github.com/ircmaxell 
youtube.com/ircmaxell

Mais conteúdo relacionado

Mais procurados

Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsJava 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsNewCircle Training
 
The Functional Programming Toolkit (NDC Oslo 2019)
The Functional Programming Toolkit (NDC Oslo 2019)The Functional Programming Toolkit (NDC Oslo 2019)
The Functional Programming Toolkit (NDC Oslo 2019)Scott Wlaschin
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Scott Wlaschin
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8LivePerson
 
How to get along with implicits
How to get along with implicits How to get along with implicits
How to get along with implicits Taisuke Oe
 
Java 8 presentation
Java 8 presentationJava 8 presentation
Java 8 presentationVan Huong
 
Aspects of love slideshare
Aspects of love slideshareAspects of love slideshare
Aspects of love slideshareMark Baker
 
Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python Jaganadh Gopinadhan
 
Functional Programming Essentials
Functional Programming EssentialsFunctional Programming Essentials
Functional Programming EssentialsKelley Robinson
 
Functional Java 8 - Introduction
Functional Java 8 - IntroductionFunctional Java 8 - Introduction
Functional Java 8 - IntroductionŁukasz Biały
 
Swift in SwiftUI
Swift in SwiftUISwift in SwiftUI
Swift in SwiftUIBongwon Lee
 
TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016CiaranMcNulty
 
Advance java session 14
Advance java session 14Advance java session 14
Advance java session 14Smita B Kumar
 
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsIntroduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsEmiel Paasschens
 
Annotation based null analysis in Eclipse JDT
Annotation based null analysis in Eclipse JDTAnnotation based null analysis in Eclipse JDT
Annotation based null analysis in Eclipse JDTEclipse Day India
 

Mais procurados (20)

Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsJava 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & Streams
 
IoC&Laravel
IoC&LaravelIoC&Laravel
IoC&Laravel
 
The Functional Programming Toolkit (NDC Oslo 2019)
The Functional Programming Toolkit (NDC Oslo 2019)The Functional Programming Toolkit (NDC Oslo 2019)
The Functional Programming Toolkit (NDC Oslo 2019)
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
How to get along with implicits
How to get along with implicits How to get along with implicits
How to get along with implicits
 
OOP
OOPOOP
OOP
 
Java 8 presentation
Java 8 presentationJava 8 presentation
Java 8 presentation
 
Aspects of love slideshare
Aspects of love slideshareAspects of love slideshare
Aspects of love slideshare
 
Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python
 
Eo fosdem 15
Eo fosdem 15Eo fosdem 15
Eo fosdem 15
 
Functions in PHP
Functions in PHPFunctions in PHP
Functions in PHP
 
Functional Programming Essentials
Functional Programming EssentialsFunctional Programming Essentials
Functional Programming Essentials
 
Functional Java 8 - Introduction
Functional Java 8 - IntroductionFunctional Java 8 - Introduction
Functional Java 8 - Introduction
 
Kotlin Types for Java Developers
Kotlin Types for Java DevelopersKotlin Types for Java Developers
Kotlin Types for Java Developers
 
Swift in SwiftUI
Swift in SwiftUISwift in SwiftUI
Swift in SwiftUI
 
TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016
 
Advance java session 14
Advance java session 14Advance java session 14
Advance java session 14
 
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and StreamsIntroduction of Java 8 with emphasis on Lambda Expressions and Streams
Introduction of Java 8 with emphasis on Lambda Expressions and Streams
 
Annotation based null analysis in Eclipse JDT
Annotation based null analysis in Eclipse JDTAnnotation based null analysis in Eclipse JDT
Annotation based null analysis in Eclipse JDT
 

Destaque

Password Storage And Attacking In PHP - PHP Argentina
Password Storage And Attacking In PHP - PHP ArgentinaPassword Storage And Attacking In PHP - PHP Argentina
Password Storage And Attacking In PHP - PHP ArgentinaAnthony Ferrara
 
Development By The Numbers - ConFoo Edition
Development By The Numbers - ConFoo EditionDevelopment By The Numbers - ConFoo Edition
Development By The Numbers - ConFoo EditionAnthony Ferrara
 
Development by the numbers
Development by the numbersDevelopment by the numbers
Development by the numbersAnthony Ferrara
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPCAnthony Ferrara
 
Design Patterns - Abstract Factory Pattern
Design Patterns - Abstract Factory PatternDesign Patterns - Abstract Factory Pattern
Design Patterns - Abstract Factory PatternMudasir Qazi
 
Beyond Design Patterns and Principles - PHPBenelux 2017
Beyond Design Patterns and Principles - PHPBenelux 2017Beyond Design Patterns and Principles - PHPBenelux 2017
Beyond Design Patterns and Principles - PHPBenelux 2017Matthias Noback
 
Factory Pattern
Factory PatternFactory Pattern
Factory PatternDeepti C
 

Destaque (8)

Password Storage And Attacking In PHP - PHP Argentina
Password Storage And Attacking In PHP - PHP ArgentinaPassword Storage And Attacking In PHP - PHP Argentina
Password Storage And Attacking In PHP - PHP Argentina
 
Development By The Numbers - ConFoo Edition
Development By The Numbers - ConFoo EditionDevelopment By The Numbers - ConFoo Edition
Development By The Numbers - ConFoo Edition
 
Development by the numbers
Development by the numbersDevelopment by the numbers
Development by the numbers
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPC
 
Design Patterns - Abstract Factory Pattern
Design Patterns - Abstract Factory PatternDesign Patterns - Abstract Factory Pattern
Design Patterns - Abstract Factory Pattern
 
Beyond Design Patterns and Principles - PHPBenelux 2017
Beyond Design Patterns and Principles - PHPBenelux 2017Beyond Design Patterns and Principles - PHPBenelux 2017
Beyond Design Patterns and Principles - PHPBenelux 2017
 
Factory Pattern
Factory PatternFactory Pattern
Factory Pattern
 

Semelhante a Beyond design patterns phpnw14

Protocol oriented programming_talk_ppt
Protocol oriented programming_talk_pptProtocol oriented programming_talk_ppt
Protocol oriented programming_talk_pptJayant Jaiswal
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternNishith Shukla
 
Jump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsJump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsLalit Kale
 
Design Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldDesign Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldSaurabh Moody
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talkwalkmod
 
Gof design pattern
Gof design patternGof design pattern
Gof design patternnaveen kumar
 
Evolve Your Code
Evolve Your CodeEvolve Your Code
Evolve Your CodeRookieOne
 
Software design and Architecture.pptx
Software design and Architecture.pptxSoftware design and Architecture.pptx
Software design and Architecture.pptxSHAHZAIBABBAS13
 
Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence APIIlio Catallo
 
Design pattern (Abstract Factory & Singleton)
Design pattern (Abstract Factory & Singleton)Design pattern (Abstract Factory & Singleton)
Design pattern (Abstract Factory & Singleton)paramisoft
 
Observer Software Design Pattern
Observer Software Design Pattern Observer Software Design Pattern
Observer Software Design Pattern Nirthika Rajendran
 
33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmod33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmodwalkmod
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Luis Valencia
 
Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsJason Townsend, MBA
 

Semelhante a Beyond design patterns phpnw14 (20)

Protocol oriented programming_talk_ppt
Protocol oriented programming_talk_pptProtocol oriented programming_talk_ppt
Protocol oriented programming_talk_ppt
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design Pattern
 
Jump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsJump Start To Ooad And Design Patterns
Jump Start To Ooad And Design Patterns
 
Design Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldDesign Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The World
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talk
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
 
Evolve Your Code
Evolve Your CodeEvolve Your Code
Evolve Your Code
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Software design and Architecture.pptx
Software design and Architecture.pptxSoftware design and Architecture.pptx
Software design and Architecture.pptx
 
Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence API
 
Java basics
Java basicsJava basics
Java basics
 
Design pattern (Abstract Factory & Singleton)
Design pattern (Abstract Factory & Singleton)Design pattern (Abstract Factory & Singleton)
Design pattern (Abstract Factory & Singleton)
 
Js tips & tricks
Js tips & tricksJs tips & tricks
Js tips & tricks
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Creational Design Patterns
Creational Design PatternsCreational Design Patterns
Creational Design Patterns
 
Observer Software Design Pattern
Observer Software Design Pattern Observer Software Design Pattern
Observer Software Design Pattern
 
Observer
ObserverObserver
Observer
 
33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmod33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmod
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 
Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
 

Último

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Beyond design patterns phpnw14