6 Lektionen, die ich bei der Entwicklung von Open-Source-Projekten gelernt habe

Die Perspektive eines Datenwissenschaftlers

Open-Source ist so ein erstaunliches Konzept! Durch die Bündelung der Quellen, Fähigkeiten und des Wissens einer gesamten Community können Werkzeuge geschaffen werden, die wir isoliert nicht hätten herstellen können. Die Werkzeuge, die aus dieser Zusammenarbeit hervorgehen, sind wirklich mehr als die Summe ihrer Teile.

Daher nutzen wir Datenwissenschaftler diese frei verfügbare Software, die so viele Technologien vorantreibt, und haben gleichzeitig die Möglichkeit, an ihrer Entwicklung beteiligt zu sein.

In den letzten Jahren hatte ich das Glück, im Open-Source-Bereich tätig zu sein und hatte die Gelegenheit, mehrere Pakete zu entwickeln und zu verwalten!

Open-Source-Entwicklung ist mehr als nur Programmieren

In dieser Zeit gab es viele Hürden zu überwinden und Lehren zu ziehen. Von kniffligen Abhängigkeiten und API-Designentscheidungen bis hin zur Kommunikation mit der Benutzerbasis.

Die Arbeit an Open Source, egal ob als Autor, Betreuer oder Entwickler, kann ziemlich entmutigend sein! In diesem Artikel teile ich einige meiner Erfahrungen in diesem Bereich, was hoffentlich denjenigen hilft, die Open Source entwickeln möchten.

Wenn Sie Open-Source-Software erstellen, stellen Sie das Paket normalerweise nicht ausschließlich für sich selbst her. Benutzer mit den unterschiedlichsten Hintergründen werden Ihre Software nutzen. Eine ordnungsgemäße Dokumentation trägt wesentlich dazu bei, diesen Benutzern den Einstieg zu erleichtern.

Unterschätzen Sie jedoch nicht die Auswirkungen, die die Dokumentation auf die Nutzbarkeit Ihres Pakets haben kann! Sie können damit komplexe Algorithmen erklären, ausführliche Tutorials geben, Anwendungsfälle zeigen und sogar interaktive Beispiele ermöglichen.

Besonders datenwissenschaftliche Software kann schwer zu verstehen sein, wenn sie komplexe Algorithmen beinhaltet. Die Herangehensweise an diese Erklärungen wie eine Geschichte hat mir oft dabei geholfen, sie intuitiver zu gestalten.

Vertrauen Sie mir, das Schreiben einer guten Dokumentation ist eine Fähigkeit für sich.

Ein weiterer Vorteil besteht darin, dass das Schreiben einer soliden Dokumentation den Zeitaufwand für die Bearbeitung von Problemen verringert. Es gibt weniger Grund für Benutzer, Fragen zu stellen, wenn sie die Antworten in Ihrer Dokumentation finden.

Ein Überblick darüber, wie KeyBERT Werke finden Sie in der Dokumentation.

Allerdings ist das Erstellen einer Dokumentation mehr als nur das Schreiben. Die Visualisierung Ihres Algorithmus oder Ihrer Software trägt wesentlich dazu bei, sie intuitiv zu gestalten. Da kann man einiges lernen Jay Alammar wenn Sie algorithmische Prinzipien in Ihrer Dokumentation visualisieren möchten. Seine Visualisierungen landeten sogar im Amt Numpy Dokumentation!

Ihre Benutzerbasis, die Community, ist ein wichtiger Bestandteil Ihrer Software. Da wir Open Source entwickeln, können wir mit Sicherheit sagen, dass wir sie in die Entwicklung einbeziehen möchten.

Indem Sie mit der Community interagieren, regen Sie sie dazu an, Probleme und Fehler, aber auch Funktionswünsche und tolle Ideen für die Weiterentwicklung zu teilen! All dies hilft dabei, etwas für sie zu schaffen.

Die Open-Source-Community ist wirklich mehr als die Summe ihrer Teile

Viele Kernfunktionen in BERTopic, wie z Online-Themenmodellierung, wurden implementiert, da sie von den Benutzern stark nachgefragt wurden. Infolgedessen ist die Community sehr aktiv und hat uns bei der Erkennung von Problemen und der Entwicklung neuer Funktionen enorm geholfen.

Die Umsetzung von Funktionswünschen der Community ist ein langer Weg! Ein Auszug aus der Diskussion hier.

Unabhängig davon, ob Ihr Paket millionenfach oder nur wenige Male verwendet wird, ist die Erstellung eines Pakets eine hervorragende Gelegenheit, mehr über Open Source, MLOps, Unit-Tests, API-Design usw. zu erfahren. Ich habe bei der Entwicklung von Open Source mehr über diese Fähigkeiten gelernt als ich in meinem Arbeitsalltag hätte.

Darüber hinaus bietet die Interaktion mit der Community selbst eine große Lernmöglichkeit. Sie sind diejenigen, die Ihnen sagen, welche Designs ihnen gefallen und welche nicht. Manchmal habe ich gesehen, dass das gleiche Problem im Laufe einiger Monate mehrmals auftauchte. Dies deutet darauf hin, dass ich das Design überdenken sollte, da es nicht so benutzerfreundlich war, wie ich erwartet hatte!

Darüber hinaus hat mir die Entwicklung von Open-Source-Projekten die Möglichkeit gegeben, mit anderen Entwicklern zusammenzuarbeiten.

Die Arbeit an eigenen Open-Source-Projekten außerhalb der Arbeit bringt auch Nachteile mit sich. Das Wichtigste für mich ist, dass die Pflege des Pakets, die Beantwortung von Fragen und die Teilnahme an den Diskussionen ziemlich viel Arbeit bedeuten können.

Es hilft auf jeden Fall, wenn man intrinsisch motiviert ist, aber es dauert trotzdem einige Zeit, bis alles zusammenhält.

Glücklicherweise können Sie sich an Ihre Community wenden, die Ihnen bei der Beantwortung von Fragen, der Präsentation von Anwendungsfällen usw. hilft.

Im Laufe der letzten Jahre habe ich gelernt, etwas gelassener mit Breaking Changes umzugehen. Besonders wenn es um Abhängigkeiten geht, kann man manchmal einfach so viel tun!

Zu wissen, wie oft Ihr Paket verwendet wird, ist eine große Hilfe bei der Einschätzung, wie beliebt es ist. Allerdings verwenden viele immer noch Github-Sterne, um ein Paket mit Qualität und Beliebtheit gleichzusetzen.

Stellen Sie sicher, dass Sie die richtige Metrik definieren. GitHub-Sterne können allein aufgrund des richtigen Marketings übertrieben sein. Viele Sterne bedeuten keine Popularität.

Als Datenwissenschaftler müssen wir zunächst verstehen, was wir genau messen. GitHub-Sterne sind nichts anderes als die Vergabe eines Sterns durch einen Benutzer an ein Paket. Es bedeutet nicht einmal, dass sie die Software verwendet haben oder dass sie tatsächlich funktioniert!

Die Anzahl der Downloads für KeyBERT. Ein viel besserer Indikator als Github-Sterne.

Technisch gesehen kann ich tausend Leute dafür bezahlen, meine Repos zu starten. Stattdessen konzentriere ich mich auf eine Vielzahl von Statistiken, wie Downloads und Forks, aber auch auf die Anzahl der Probleme, die ich täglich erhalte.

Es ist zum Beispiel großartig, wenn Ihre Pakete vorgestellt werden Hacker News aber es sagt Ihnen nicht, ob es konsequent verwendet wird.

Als Psychologe konzentriere ich mich stark auf die Gestaltung meiner Pakete. Dazu gehören Dinge wie Dokumentation und Tutorials, aber es lässt sich auch auf die Art und Weise übertragen, wie ich programmiere.

Wenn Sie sicherstellen, dass das Paket einfach zu verwenden und zu installieren ist, wird die Einführung erheblich vereinfacht. Besonders wenn Sie sich auf Designphilosophien wie Modularität und Transparenz konzentrieren, wird die Verwendung einiger Pakete zu einem Riesenspaß.

Der modulare Aufbau der Themenmodellierung mit BERThema.

Wenn man bei der Entwicklung neuer Funktionen die Perspektive eines Psychologen einnimmt, ist es viel einfacher zu wissen, worauf man sich konzentrieren sollte. Was suchen Benutzer? Wie kann ich so programmieren, dass der Algorithmus erklärt wird? Warum verwenden Benutzer dieses Paket tatsächlich? Was sind die größten Nachteile meines Codes?

Sich die Zeit zu nehmen, den durchschnittlichen Benutzer zu verstehen, fördert die Akzeptanz

All das führt oft zu einer grundlegenden, aber wichtigen Regel;
Halten Sie es ganz einfach

Wenn es für mich persönlich schwierig ist, ein neues Paket zu installieren und zu verwenden, ist es weniger wahrscheinlich, dass ich es in meinen Arbeitsablauf übernehme.

Wenn Sie wie ich eine Leidenschaft für KI, Datenwissenschaft oder Psychologie haben, können Sie mich gerne hinzufügen LinkedIn oder folge mir weiter Twitter. Einige meiner Inhalte finden Sie auch auf meiner Seite Persönliche Webseite.

Alle Bilder ohne Quellenangabe wurden vom Autor erstellt

6 Lektionen, die ich aus der Entwicklung von Open-Source-Projekten gelernt habe, die aus der Quelle erneut veröffentlicht wurden https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Zeitstempel:

Mehr von Blockchain-Berater