oliverlorenz.com

[feed]  [twitter]  [mastodon]  [xing]  [linkedin]  [github]  [matrix] 

Open Source Entwicklung, aber richtig!

11. May 2015

GitHub ist toll. Immer wenn ich ein Problem habe schaue ich erstmal ob jemand anders das Problem schon gelöst hat. Habe ich ein Problem gelöst, dessen Lösung ich sinnvoll erachte anderen zur Verfügung zu stellen, schiebe ich diesen Code auch auf GitHub. Halbherzig wie ich jetzt festgestellt habe. Aber ab jetzt mache ich es besser!

Open Source Entwicklung ist mehr als Code online stellen. Open Source soll einen Mehrwert bringen und man sollte sich sicher sein, dass die Qualität auch dem entspricht wie man selbst gern Code vorfinden würde. Das heißt nicht dass der Code perfekt sein muss um online gestellt zu werden. Auch halbgarer Code hat seine Berechtigung, sollte aber als solcher zu erkennen sein.

Mein aktuelles Projekt React PHP MQTT zeigt den Weg den ich demnächst gehen möchte. Ich glaube, es schafft eine hohe Transparenz bei den Usern und schafft gleichzeitig vertrauen in die Sache. Ich möchte hier eine kleine Zusammenfassung geben auf welche Komponenten ich mich hier beziehe:

Lizenz

Code, den man verwenden kann, sollte immer eine Lizenz haben. Das bringt Vorteile und Sicherheit für beide Seiten. Ich scheute mich bisher immer etwas vor Lizensierung, denn Rechtswissenschaften sind wirklich nicht mein Fachgebiet. Mir hat die Seite www.addalicense.com geholfen. Hier kann man schnell einen Überblick bekommen welche Lizenz in welchem Fall zum Einsatz kommen kann.

UnitTest

Nichts ist schlimmer als vielversprechender Code der im Endeffekt nicht funktioniert. Die Erwartung ist groß, aber ebenso auch die Enttäuschung. Um dieses Problem zu umgehen arbeite ich folgendermaßen: Ich selbst arbeite nach etwas nachdenken erstmal darauf los. Sobald ich aber einen grundlegend funktionierenden Weg gefunden habe fange ich an Test Driven neue Milestones zu erarbeiten. UnitTests sind dabei kein Allheilmittel, aber es zeugt davon, dass sich jemand Gedanken gemacht hat und längerfristig Interesse an dem Code hat.

Travis CI

Auch das habe ich gerade erst frisch entdeckt. GitHub Projekte sind sehr einfach mit Travis CI verknüpfbar. Travis ist ein Buildserver der automatisch eure UnitTests ausführt und euch darauf eine kleine Badget Grafik bereitstellt, die ihr wiederrum in eure README.md eintragen könnt. Dem Nutzer ist dann sofort ersichtlich ob alle Unittest erfolgreich durchlaufen. Wenn nicht, dann bekommt ihr zusätzlich eine Mail und seid informiert.

Codeclimate

Codeclimate schaut etwas tiefer in euren Code und testet diesen nach diversen Clean Code Standards. Außerdem wird die Testabdeckung geprüft. Auch hier lassen sich wieder Badgets einbinden, die Rückschlüsse über die Codequalität zulassen. Eine wichtige Metrik, wie ich finde.

Packagist (PHP)

Jeder PHP'ler kennt packagist.org und liebt es. Die einfache Einbindung von Open Souce Packages. Ihr wollt dass euer Projekt genutzt wird? Legt es an!

Meiner Meinung nach solltet ihr euch immer die Frage stellen wie ihr Code vorfinden wollt. Wie bemesst ihr die Qualität von Code wenn ihr das erste mal eine fremde Library nutzt? Euer Code ist euer Aushängeschild. Vor alles Open Source Code lässt tief blicken wie gut ihr seid und wie ihr tickt. Also macht etwas daraus.

Wie versteht ihr den Open Source Gedanken? Hat jeder Code seine Berechtigung online zu stehen, oder sollte man einem gewissen Anspruch genügen? Wie läuft das bei euch?