Transcript
Page 1: Raus aus dem Vendor-Lock-In
Page 2: Raus aus dem Vendor-Lock-In

R A U S A U S D E M V E N D O R - L O C K - I N

PA U L S E I F F E R T | 0 8 . N O V E M B E R 2 0 1 3

S Y M F O N Y L I V E B E R L I N 2 0 1 3

Page 3: Raus aus dem Vendor-Lock-In

PA U L S E I F F E R T

Page 4: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N

Page 5: Raus aus dem Vendor-Lock-In

Grenzen der Bibliotheken

Keine Garantien

Einfluss auf die eigene Architektur

Page 6: Raus aus dem Vendor-Lock-In

A B E R …

Page 7: Raus aus dem Vendor-Lock-In

Wiederkehrende Funktionalität

Best Practices

Gekapselte Komplexität

Page 8: Raus aus dem Vendor-Lock-In

F R Ü H E R …

Page 9: Raus aus dem Vendor-Lock-In

• “reines” PHP

• keine Frameworks

• Viel Technologie-spezifischer Code

• Stark gekoppelte Komponenten

Page 10: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?✔✔✔

Page 11: Raus aus dem Vendor-Lock-In

S PÄT E R …

Page 12: Raus aus dem Vendor-Lock-In

• Struktur durch Framework

• Abstraktion über Technologien

• Libraries teilweise austauschbar

• Vermischte Concerns

• Framework nicht austauschbar

Page 13: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?✔

Page 14: Raus aus dem Vendor-Lock-In
Page 15: Raus aus dem Vendor-Lock-In

E S G E H T N O C H B E S S E R !Controller PageRepository

<<Interface>>PageStorage

Symfony / HTTP Application

MySQLPageStorage

MySQLBackend

MySQLConnection

Page 16: Raus aus dem Vendor-Lock-In

• Das Herzstück der Software ist ein Modell der Domäne

• Frameworks sind Details

• Libraries sind austauschbar durch semantische Abstraktionen

Page 17: Raus aus dem Vendor-Lock-In

Controller PageRepository

<<Interface>>PageStorage

Symfony / HTTP Application

MySQLPageStorage

MySQLBackend

MySQLConnection

Page 18: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?

X

Page 19: Raus aus dem Vendor-Lock-In

B E I S P I E L : G U Z Z L E

Page 20: Raus aus dem Vendor-Lock-In

• HTTP-Client Library

• Viele praktische Features

• Erweiterbar

Page 21: Raus aus dem Vendor-Lock-In

I N T E G R AT I O N V O N G U Z Z L E

Page 22: Raus aus dem Vendor-Lock-In

I ) G U Z Z L E - C L I E N T O B J E C T

Page 23: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?✔

Page 24: Raus aus dem Vendor-Lock-In

I I ) G U Z Z L E - B U N D L E

Page 25: Raus aus dem Vendor-Lock-In

I I ) G U Z Z L E - B U N D L E

Page 26: Raus aus dem Vendor-Lock-In

I I ) G U Z Z L E - B U N D L E

Page 27: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?

✔✔

Page 28: Raus aus dem Vendor-Lock-In

I I I ) E I G E N E S I N T E G R AT I O N S - B U N D L E

Controller <<interface>>Search

GuzzleSearch GuzzleClient

AppBundle

GuzzleSearchBundle

Page 29: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?

Page 30: Raus aus dem Vendor-Lock-In

I I I ) E I G E N E S I N T E G R AT I O N S - B U N D L E

Controller Search

GuzzleSearchClientGuzzleClient

AppBundle

GuzzleSearchBundle

<<interface>>SearchClient

Application

Page 31: Raus aus dem Vendor-Lock-In

V E N D O R - L O C K - I N ?

X

Page 32: Raus aus dem Vendor-Lock-In

S Y M F O N Y- A N W E N D U N G

G U Z Z L E

Page 33: Raus aus dem Vendor-Lock-In

S Y M F O N Y / H T T P

G U Z Z L E

A P P L I K AT I O N S - L O G I K

G U Z Z L E -S E A R C H

Page 34: Raus aus dem Vendor-Lock-In

T E S T I N G

Page 35: Raus aus dem Vendor-Lock-In

S Y M F O N Y / H T T P

G U Z Z L E

A P P L I K AT I O N S - L O G I K

G U Z Z L E -S E A R C H

Page 36: Raus aus dem Vendor-Lock-In

• Erfindet das Rad nicht neu

• Macht Euch nicht abhängig

• Semantische Abstraktionen

• Dependency Injection

Page 37: Raus aus dem Vendor-Lock-In
Page 38: Raus aus dem Vendor-Lock-In

D A N K E S C H Ö N !

https://joind.in/9418

Page 39: Raus aus dem Vendor-Lock-In

• Eric Evans: Domain-Driven Design

• Vaughn Vernon: Implementing Domain-Driven Design

• Guzzle: guzzlephp.org

L E S E S T O F F

Page 40: Raus aus dem Vendor-Lock-In

• Lock - http://www.flickr.com/photos/24410855@N07/3172109331/

• Wheel - http://www.flickr.com/photos/72802667@N00/456568753

• Structure - http://www.flickr.com/photos/46271629@N00/2305078608

• Progress - http://www.flickr.com/photos/29312295@N06/4115844000

• Spaghetti - http://www.flickr.com/photos/7897906@N06/8602097091

• United States Capitol - Paul Seiffert

• Gears - http://www.flickr.com/photos/wwarby/4782904694/

• Guzzle - http://www.flickr.com/photos/66969579@N00/451668854

• Questions - http://www.flickr.com/photos/bilal-kamoon/6835060992

P H O T O S


Recommended