Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Raus aus dem Vendor-Lock-In

1,630 views

Published on

ENGLISH - Symfony developers should be happy about the amount of publicly available open source libraries they can use for building web applications. In most cases, these libraries can reduce the required development time greatly.

However, when you have to maintain an application with many dependencies to third-party libraries, this can become one of your biggest problems. One issue is that you might want to exchange one library with another one but didn't think of this when integrating it. In another case, the maintainers of a bundle might not have the time to revise all pull-requests and bug tickets you sent them. With only a few tricks you can make these situations less painful!
This talk uses the HTTP client library Guzzle as an example to discuss how you can profit from the great functionality it implements while avoiding vendor lock-in.

---

GERMAN - Bei der Entwicklung von Symfony-Applikationen kann man auf eine Vielzahl bestehender OpenSource Bundles und Libraries zurückgreifen. Dies verkürzt in der Regel die Entwicklungszeit immens, da man nicht bei jedem Projekt "das Rad neuerfinden muss".

Bei der längerfristigen Betreuung einer Applikation, die viele Third-Party-Libraries verwendet, wird allerdings genau dies oft zum Problem. Man möchte evtl. eine Komponente austauschen, hat dies allerdings bei der Integration nicht bedacht oder der Maintainer einer Library kann nicht die Zeit aufbringen die notwendig wäre, alle Pull-Requests und Bug-Tickets zu bearbeiten. Diese Situation lässt sich mit ein paar Tricks deutlich weniger schmerzhaft gestalten.
Dieser Vortrag erklärt am Beispiel der HTTP-Client-Library Guzzle, wie man die Abhängigkeiten zu konkreten Libraries und Bundles gering hält und dabei trotzdem von ihnen profitieren kann.

Rate this talk: https://joind.in/9418

Published in: Technology
  • Be the first to comment

Raus aus dem Vendor-Lock-In

  1. 1. PA U L S E I F F E R T | 08. NOVEMBER 2013
 
 SYMFONY LIVE BERLIN 2013 RAUS AUS DEM VENDOR-LOCK-IN
  2. 2. PA U L SEIFFERT
  3. 3. VENDOR-LOCK-IN
  4. 4. Grenzen der Bibliotheken Keine Garantien Einfluss auf die eigene Architektur
  5. 5. ABER…
  6. 6. Wiederkehrende Funktionalität Best Practices Gekapselte Komplexität
  7. 7. FRÜHER…
  8. 8. • “reines” PHP • keine Frameworks • Viel Technologie- spezifischer Code • Stark gekoppelte Komponenten
  9. 9. VENDOR-LOCK-IN? ✔✔✔
  10. 10. S PÄT E R …
  11. 11. • Struktur durch Framework • Abstraktion über Technologien • Libraries teilweise austauschbar • Vermischte Concerns • Framework nicht austauschbar
  12. 12. VENDOR-LOCK-IN? ✔
  13. 13. Symfony / HTTP Application MySQLBackend ES GEHT NOCH BESSER! Controller PageRepository <<Interface>> PageStorage MySQLPageStorage MySQLConnection
  14. 14. • Das Herzstück der Software ist ein Modell der Domäne • Frameworks sind Details • Libraries sind austauschbar durch semantische Abstraktionen
  15. 15. Symfony / HTTP Application Controller PageRepository <<Interface>> PageStorage MySQLBackend MySQLPageStorage MySQLConnection
  16. 16. VENDOR-LOCK-IN? X
  17. 17. BEISPIEL: GUZZLE
  18. 18. • HTTP-Client Library • Viele praktische Features • Erweiterbar
  19. 19. I N T E G R AT I O N V O N G U Z Z L E
  20. 20. I) GUZZLE-CLIENT OBJECT
  21. 21. VENDOR-LOCK-IN? ✔
  22. 22. II) GUZZLE-BUNDLE
  23. 23. II) GUZZLE-BUNDLE
  24. 24. II) GUZZLE-BUNDLE
  25. 25. VENDOR-LOCK-IN? ✔✔
  26. 26. 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 AppBundle Controller <<interface>> Search GuzzleSearch GuzzleSearchBundle GuzzleClient
  27. 27. VENDOR-LOCK-IN? ✔
  28. 28. 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 AppBundle Application Controller Search <<interface>> SearchClient GuzzleClient GuzzleSearchClient GuzzleSearchBundle
  29. 29. VENDOR-LOCK-IN? X
  30. 30. S Y M F O N Y- A N W E N D U N G GUZZLE
  31. 31. SYMFONY / HTTP A P P L I K AT I O N S - L O G I K GUZZLESEARCH GUZZLE
  32. 32. TESTING
  33. 33. SYMFONY / HTTP A P P L I K AT I O N S - L O G I K GUZZLESEARCH GUZZLE
  34. 34. • Erfindet das Rad nicht neu • Macht Euch nicht abhängig • Semantische Abstraktionen • Dependency Injection
  35. 35. DANKESCHÖN! https://joind.in/9418
  36. 36. LESESTOFF • Eric Evans: Domain-Driven Design • Vaughn Vernon: Implementing Domain-Driven Design • Guzzle: guzzlephp.org
  37. 37. PHOTOS • 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

×