Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Library Discovery - Stop reinventing the wheel

move:elevator
September 24, 2016

Library Discovery - Stop reinventing the wheel

move:elevator

September 24, 2016
Tweet

More Decks by move:elevator

Other Decks in Technology

Transcript

  1. GROUP

    View Slide

  2. Library Discovery
    Stop reinventing the wheel

    View Slide

  3. View Slide

  4. Agenda
    Warum Library-Discovery betreiben
    Warum (nicht immer) das Rad neu erfinden
    Kleine Library-Discovery
    Zusammenfassung und Fazit
    Wo und wie Libraries finden

    View Slide

  5. Team-Lead Business Solutions
    seit April 2010 bei move:elevator
    https://tommy-muehle.io
    https://twitter.com/tommy_muehle
    Gründungsmitglied PHPUG Dresden
    https://github.com/tommy-muehle

    View Slide

  6. Warum 

    Library Discovery
    betreiben?

    View Slide

  7. Quelle: Grafik, http://mirekcerny.com/book

    View Slide

  8. Warum nicht immer das
    Rad neu erfinden?

    View Slide

  9. Library-Discovery
    Eigene Anforderungen und Kontext: Sichtweise
    oft nur aus seinem Projektkontext und Anforderungen heraus.
    Warum nicht immer selbst implementieren?
    Vernachlässigung techn. Gegebenheiten: Implementierung

    oft nur für ausgewählte Systeme und Gegebenheiten.
    Wissensstand und Erfahrung: Entwicklung auf Basis des
    eigenen Wissenstandes oder den des Teams.

    View Slide

  10. Library-Discovery
    Gesicherte Qualität: Oft haben viel genutzte Libraries
    eine hohe Testabdeckung.
    Warum externe Libraries verwenden?
    Robust: Durch den Einsatz vieler User und entsprechendes Feedback
    gereift und robust.
    Lerneffekt: Regelmäßiges Nutzen von externen Code hilft einen
    beim Verständnis für Architektur und Herangehensweisen.

    View Slide

  11. Warum nicht immer das
    Rad neu erfinden?

    View Slide

  12. Library-Discovery
    Abhängigkeiten vermeiden: Zusätzliche Abhängigkeiten durch

    externe Libraries.
    Warum selbst implementieren?
    Beispiel

    View Slide

  13. Library-Discovery
    Grafiken, https://github.com/clue/graph-composer

    View Slide

  14. Library-Discovery
    Abhängigkeiten vermeiden: Zusätzliche Abhängigkeiten durch

    externe Libraries.
    Warum selbst implementieren?
    Schlechte Qualität: Externe Library weißt ungünstige 

    Struktur oder mangelhafte Code-Qualität auf.
    Neuland: Keine bereits vorhandene Implementierung.

    View Slide

  15. Library-Discovery
    Stand der Entwicklung: Prüft die techn. Anforderungen und
    schaut ob noch aktiv daran gearbeitet wird.
    Was gilt es zu beachten?
    Lizenz prüfen: Nicht jede Lizenz lässt den Einsatz im
    eigenen Projekt zu.

    View Slide

  16. Aber wo und wie finden?

    View Slide

  17. Quelle: Logo, https://packagist.org

    View Slide

  18. Packagist
    https://packagist.org

    View Slide

  19. Quelle: Logo, https://www.reddit.com

    View Slide

  20. reddit
    https://www.reddit.com/r/php

    View Slide

  21. reddit
    https://www.reddit.com/r/php

    View Slide

  22. Quelle: Logo, https://www.sitepoint.com

    View Slide

  23. sitepoint - Sourcehunt
    https://www.sitepoint.com/tag/sourcehunt

    View Slide

  24. Quelle: Logo, https://github.com

    View Slide

  25. Github - Explore

    View Slide

  26. Github - Awesome lists

    View Slide

  27. Github - Awesome lists
    . . .

    View Slide

  28. Quelle: Logo, http://stackoverflow.com

    View Slide

  29. stackoverflow - Room 11

    View Slide

  30. View Slide

  31. Let’ start

    discovery

    View Slide

  32. Security

    View Slide

  33. sensiolabs/security-checker
    https://github.com/sensiolabs/security-checker

    View Slide

  34. Discovery - Security

    View Slide

  35. psecio/iniscan
    https://github.com/psecio/iniscan

    View Slide

  36. Discovery - Security

    View Slide

  37. Datum und
    Uhrzeit

    View Slide

  38. briannesbitt/Carbon
    https://github.com/briannesbitt/Carbon

    View Slide

  39. Discovery - Datum + Uhrzeit

    View Slide

  40. azuyalabs/yasumi
    https://github.com/azuyalabs/yasumi

    View Slide

  41. Discovery - Datum + Uhrzeit

    View Slide

  42. Geld und 

    Währungsberechnung

    View Slide

  43. moneyphp/money
    https://github.com/moneyphp/money

    View Slide

  44. Discovery - Geld und Währung

    View Slide

  45. Bildbearbeitung

    View Slide

  46. kosinix/grafika
    https://github.com/kosinix/grafika

    View Slide

  47. Discovery - Bildbearbeitung

    View Slide

  48. Sonstiges

    View Slide

  49. brandonsavage/Upload
    https://github.com/brandonsavage/Upload

    View Slide

  50. Discovery - Sonstiges

    View Slide

  51. spatie/regex
    https://github.com/spatie/regex

    View Slide

  52. Discovery - Sonstiges

    View Slide

  53. Testen

    View Slide

  54. fzaninotto/Faker
    https://github.com/fzaninotto/Faker

    View Slide

  55. Discovery - Testen

    View Slide

  56. php-mock/php-mock
    https://github.com/php-mock/php-mock

    View Slide

  57. Discovery - Testen

    View Slide

  58. Zusammengefasst

    View Slide

  59. Zusammengefasst
    Meine Empfehlungen
    Prüft jede Anforderung: Sichtet die vorgestellten Kanäle/Quellen
    nach möglichen Lösungen.
    Merkt euch Libraries: Sichert euch nützliche Libraries für bestimmte
    Anwendungsfälle.
    Abwegen: Vergleich von Eigenimplementierung und externer Library 

    vs. Lizenz und technischen Stand.

    View Slide

  60. Das war’s.

    View Slide

  61. Vielen Dank für eure

    Aufmerksamkeit!

    View Slide

  62. Bitte bewerten

    https://joind.in/talk/8f55a

    View Slide

  63. Fragen?
    Ja
    Nein
    Vielleicht

    View Slide

  64. Quellen
    Bilder / Fotos

    View Slide