I'm a coder - Aktualisierungen von Third-Party-Libraries
Der letzte I’m a coder Beitrag ist schon länger her, was nicht zwangsweise daran liegt das es nicht neues in diesem Bereich bei mir gibt, sondern eher daran das die Beiträge in anderen Sammlungen einsortiert werden. Doch wie ich auch immer, ich habe mal wieder etwas allgemeines, was gut in diese Sammlung passt.
Zuletzt kam ich durch die Droidcon auf das heutige Thema. Es geht um die Aktualisierung von Third-Party-Libraries, welche man in seinen Programmen, Tools oder Apps nutzt. Denn häufig hat man kleine praktische Bibliotheken, die einem Arbeit abnehmen und Funktionen verlässlich und schnell zur Verfügung stellen, ohne dass man das Rad andauernd neu erfinden muss. Ob man dabei alle Nase lang Fremdbibliotheken nutzt oder lieber alles selber schreibt, kommt auf das Projekt und die generelle Einstellung an. Das man bereits eingebundene Libraries aber aktualisieren sollte, sofern man welche nutzt, ist denke ich klar.
Doch warum fällt dies so schwer? Never Change a Running System, denn es funktioniert alles, ist häufig ein guter Grund. Auch häufig ist das fehlende Bewusstsein für diese Bibliotheken, denn wenn alles funktioniert schaut man oft gar nicht mehr nach diesen Inhalten und eventuell verfügbaren Updates. Damit einher gehen dann natürlich diverse Probleme, wie z.B. Abstürze. Unter Android sind häufig Plattformupdates ein guter Grund für ein Update von Libraries, denn oft gibt es nach größeren Systemänderungen Probleme. Doch häufig entdeckt man diese Probleme erst nach längerer Zeit und nach einigen unzufriedenen Nutzern. Reaktiv reagieren ist eben nur eine Notlösung und sollte nicht der permanente Zustand sein.
Proaktiv aktualisieren ist schwer, da es vor allem das regelmäßige und selbständige Eingreifen des Entwicklers erfordert. Da mittlerweile fast alle Libraries über Tools wie z.B. Gradle und aus Quellen wie z.B. Github geladen werden, ist der eigentliche Arbeitsaufwand zumindest geringer als vor einigen Jahren. Doch ohne manuelle Arbeit geht es trotzdem nicht, denn auch wenn neue Versionen verfügbar sind, muss erst einmal geprüft werden ob alles mit der eigenen Anwendung läuft. Wenn dies nicht der Fall ist muss darüber hinaus geprüft werden wie groß der Aufwand für die Anpassung ist. Letzteres ist gerade im professionellen Umfeld kompliziert, da Zeit bekanntlich Geld ist.
Ich persönlich habe nun zumindest vor mit einen regelmäßigen Termin zu erstellen, zu dem ich für aktuelle Projekte die Kernbibliotheken überprüfe. Für Android Projekte habe ich darüber hinaus auf der Droidcon das Android Studio Plugin Up2Dep open_in_new kennengelernt, welches wirklich extrem gut aussah. Ich werde es für Android in der nächsten Zeit nutzen und darüber im Blog berichten. Für meine weiteren Projekte gehe ich größtenteils händisch vor, habe mir aber zumindest eine kleine Lookup-Liste mit Library <-> GitHub <-> Website gebaut, sodass der Aufwand geringer wird. Ich hoffe ich kann es längere Zeit durchhalten alles aktuell zu halten, denn neben Fehlern sind auch Sicherheitsprobleme gerne ein Thema was im Kontext von Third-Party-Libraries erwähnt werden sollte.
Habt ihr in diesem Bereiche Ideen, Ansätze oder gar eine Lösung? Falls ja würde ich mich sehr darüber freuen von euch in den Kommentaren zu hören.