6 lekcji, których nauczyłem się podczas opracowywania projektów Open-Source

Perspektywa analityka danych

Open-source to niesamowita koncepcja! Łącząc źródła, umiejętności i wiedzę całej społeczności, można stworzyć narzędzia, których nie moglibyśmy stworzyć w izolacji. Narzędzia powstałe w wyniku tej współpracy to naprawdę więcej niż suma ich części.

W rezultacie my, naukowcy zajmujący się danymi, korzystamy z tego ogólnodostępnego oprogramowania, które napędza wiele technologii, a jednocześnie mamy możliwość uczestniczenia w jego rozwoju.

W ciągu ostatnich kilku lat miałem szczęście zajmować się oprogramowaniem open source i miałem okazję rozwijać i obsługiwać kilka pakietów!

Tworzenie oprogramowania typu open source to coś więcej niż tylko kodowanie

W tym czasie trzeba było pokonać wiele przeszkód i wyciągnąć wnioski. Od trudnych zależności i wyborów projektowych API po komunikację z bazą użytkowników.

Praca nad oprogramowaniem typu open source, niezależnie od tego, czy jest to autor, opiekun czy programista, może być dość zniechęcająca! W tym artykule dzielę się niektórymi swoimi doświadczeniami w tej dziedzinie, co, mam nadzieję, pomoże tym, którzy chcą rozwijać oprogramowanie typu open source.

Tworząc oprogramowanie typu open source, zazwyczaj nie tworzysz pakietu wyłącznie dla siebie. Z Twojego oprogramowania będą korzystać użytkownicy o różnym pochodzeniu. Właściwa dokumentacja bardzo pomaga tym użytkownikom w rozpoczęciu pracy.

Jednak nie lekceważ wpływu, jaki dokumentacja może mieć na użyteczność Twojego pakietu! Można go używać do wyjaśniania złożonych algorytmów, udzielania obszernych samouczków, pokazywania przypadków użycia, a nawet pozwalania na interaktywne przykłady.

Szczególnie oprogramowanie związane z nauką o danych może być trudne do zrozumienia, jeśli obejmuje złożone algorytmy. Podejście do tych wyjaśnień jak do opowieści często pomogło mi uczynić je bardziej intuicyjnymi.

Zaufaj mi, pisanie dobrej dokumentacji jest umiejętnością samą w sobie.

Kolejną korzyścią jest to, że pisanie solidnej dokumentacji skraca czas poświęcany na problemy. Użytkownicy nie mają powodów do zadawania pytań, jeśli mogą znaleźć odpowiedzi w dokumentacji.

Przegląd tego, jak KeyBERT prace znajdują się w dokumentacji.

Jednak tworzenie dokumentacji to coś więcej niż tylko jej pisanie. Wizualizacja algorytmu lub oprogramowania znacznie zwiększa jego intuicyjność. Można się od nich naprawdę wiele nauczyć Jaya Alammara gdy chcesz zwizualizować zasady algorytmiczne w swojej dokumentacji. Jego wizualizacje trafiły nawet do oficjalnych publikacji Odrętwiały dokumentacja!

Twoja baza użytkowników, czyli społeczność, jest ważnym składnikiem Twojego oprogramowania. Ponieważ rozwijamy oprogramowanie typu open source, można śmiało powiedzieć, że chcemy, aby byli zaangażowani w rozwój.

Angażując się w społeczność, zachęcasz ją do dzielenia się problemami i błędami, ale także prośbami o nowe funkcje i świetnymi pomysłami na dalszy rozwój! Wszystko to pomaga w stworzeniu czegoś dla nich.

Społeczność open source to naprawdę więcej niż suma jej części

Wiele podstawowych funkcji BERTopic, np modelowanie tematów online, zostały wdrożone, ponieważ były bardzo pożądane przez użytkowników. W rezultacie społeczność jest dość aktywna i okazała się ogromną pomocą w wykrywaniu problemów i opracowywaniu nowych funkcji.

Wdrażanie próśb o funkcje zgłaszanych przez społeczność to bardzo ważna sprawa! Fragment dyskusji tutaj.

Niezależnie od tego, czy Twój pakiet będzie używany miliony czy tylko kilka razy, utworzenie go to doskonała okazja, aby dowiedzieć się więcej o open source, MLOps, testach jednostkowych, projektowaniu API itp. Dowiedziałem się więcej o tych umiejętnościach podczas tworzenia open source niż miałbym to w mojej codziennej pracy.

Istnieje również ogromna szansa na naukę poprzez interakcję z samą społecznością. To oni mówią Ci, które projekty im się podobają, a które nie. Czasami zauważyłem, że ten sam problem pojawiał się kilka razy w ciągu kilku miesięcy. Oznacza to, że powinienem ponownie przemyśleć projekt, ponieważ nie był on tak przyjazny dla użytkownika, jak się spodziewałem!

Co więcej, tworzenie projektów open source dało mi możliwość współpracy z innymi programistami.

Praca nad własnymi projektami open source poza pracą ma swoje wady. Dla mnie najważniejsze jest to, że utrzymanie pakietu, odpowiadanie na pytania i udział w dyskusjach może wymagać sporo pracy.

Zdecydowanie pomaga, jeśli jesteś zmotywowany wewnętrznie, ale nadal zajmuje sporo czasu, zanim upewnisz się, że wszystko jest połączone.

Na szczęście możesz zwrócić się do swojej społeczności o pomoc, odpowiadając na pytania, prezentując przypadki użycia itp.

W ciągu ostatnich kilku lat nauczyłem się być nieco bardziej zrelaksowany, jeśli chodzi o przełomowe zmiany. Zwłaszcza jeśli chodzi o zależności, czasami można zrobić naprawdę wiele!

Wiedza o tym, jak często używany jest Twój pakiet, jest niezwykle pomocna w zrozumieniu jego popularności. Jednak wielu nadal używa gwiazdek Githuba, aby utożsamić pakiet z jakością i popularnością.

Pamiętaj o zdefiniowaniu właściwych wskaźników. Gwiazdki GitHuba można przesadzić po prostu dzięki odpowiedniemu marketingowi. Wiele gwiazd nie oznacza popularności.

Jako badacze danych musimy najpierw zrozumieć, co dokładnie mierzymy. Gwiazdki GitHub to nic innego jak użytkownik dający gwiazdkę paczce. Nie oznacza to nawet, że korzystali z oprogramowania lub że faktycznie działa!

Liczba pobrań dla KeyBERT. Znacznie lepszy wskaźnik niż gwiazdy Github.

Technicznie rzecz biorąc, mogę zapłacić tysiącowi osób za oznaczenie moich repozytoriów gwiazdką. Zamiast tego skupiam się na różnych statystykach, takich jak pobrania i forki, ale także na liczbie problemów, z którymi spotykam się codziennie.

Na przykład wspaniale jest, jeśli Twoje pakiety zostaną wyróżnione Wiadomości Hacker ale nie mówi, czy jest konsekwentnie używany.

Jako psycholog często skupiam się na projektowaniu moich opakowań. Obejmuje to takie rzeczy, jak dokumentacja i samouczki, ale przekłada się to nawet na sposób, w jaki koduję.

Upewnienie się, że pakiet jest łatwy w użyciu i instalacji, znacznie ułatwia jego wdrożenie. Zwłaszcza jeśli skupisz się na filozofii projektowania, takiej jak modułowość i przejrzystość, korzystanie z niektórych pakietów staje się świetną zabawą.

Modułowa konstrukcja modelowania tematów za pomocą BERtopic.

Przyjęcie perspektywy psychologa podczas opracowywania nowych funkcji znacznie ułatwiło zorientowanie się, na czym się skupić. Czego szukają użytkownicy? Jak mogę kodować w sposób wyjaśniający algorytm? Dlaczego użytkownicy faktycznie korzystają z tego pakietu? Jakie są główne wady mojego kodu?

Poświęcenie czasu na zrozumienie adaptacji napędów przez przeciętnego użytkownika

Wszystko to często prowadzi do podstawowej, ale ważnej zasady;
Zachowaj to bardzo prosto

Osobiście, jeśli nowy pakiet będzie dla mnie trudny w instalacji i obsłudze, jest mniejsze prawdopodobieństwo, że zastosuję go w swoim przepływie pracy.

Jeśli tak jak ja pasjonujesz się sztuczną inteligencją, nauką o danych lub psychologią, nie krępuj się i dodaj mnie LinkedIn lub podążaj za mną Twitter. Niektóre moje treści znajdziesz także na my Osobista strona internetowa.

Wszystkie obrazy bez podania źródła zostały stworzone przez autora

6 lekcji, których wyciągnąłem z tworzenia projektów Open Source Opublikowano ponownie ze źródła https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c9—4 przez https://towardsdatascience.com/feed

<!–

->

Znak czasu:

Więcej z Konsultanci Blockchain