6 erfaringer, jeg lærte af at udvikle Open-Source-projekter

En dataforskers perspektiv

Open source er sådan et fantastisk koncept! Ved at samle et helt samfunds kilder, færdigheder og viden kan der skabes værktøjer, som vi ikke kunne have lavet isoleret. De værktøjer, der kommer ud af disse samarbejder, er i sandhed mere end summen af ​​deres dele.

Som følge heraf bruger vi dataforskere denne frit tilgængelige software, der driver så mange teknologier, mens de stadig har mulighed for at være involveret i udviklingen.

I løbet af de sidste par år har jeg været så heldig at være involveret i open source og haft mulighed for at udvikle og administrere flere pakker!

At udvikle open source er mere end bare kodning

I løbet af denne tid var der masser af forhindringer at overvinde og erfaringer at lære. Fra vanskelige afhængigheder og API-designvalg til kommunikation med brugerbasen.

At arbejde med open source, hvad enten det er som forfatter, vedligeholder eller udvikler, kan være ret skræmmende! Med denne artikel deler jeg nogle af mine erfaringer på dette felt, som forhåbentlig hjælper dem, der ønsker at udvikle open source.

Når du opretter open source-software, laver du typisk ikke pakken udelukkende til dig selv. Brugere, fra alle typer af forskellige baggrunde, vil gøre brug af din software. Korrekt dokumentation hjælper disse brugere langt med at komme i gang.

Du skal dog ikke undervurdere den indvirkning, dokumentation kan have på din pakkes anvendelighed! Du kan bruge det til at forklare komplekse algoritmer, give omfattende tutorials, vise use cases og endda tillade interaktive eksempler.

Især datavidenskabsrelateret software kan være svært at forstå, når det involverer komplekse algoritmer. At nærme mig disse forklaringer som en historie har ofte hjulpet mig med at gøre dem mere intuitive.

Tro mig, at skrive god dokumentation er en færdighed i sig selv.

En anden fordel er, at det at skrive solid dokumentation reducerer tidsforbruget på problemer. Der er mindre grund for brugerne til at stille spørgsmål, hvis de kan finde svarene i din dokumentation.

Et overblik over hvordan KeyBERT værker findes i dokumentationen.

At skabe dokumentation er dog mere end blot at skrive den. Visualisering af din algoritme eller software gør den meget intuitiv. Man kan lære ret meget af Jay Alammar når du ønsker at visualisere algoritmiske principper i din dokumentation. Hans visualiseringer endte endda i det officielle numpy dokumentation!

Din brugerbase, fællesskabet, er en vigtig komponent i din software. Da vi udvikler open source, er det sikkert at sige, at vi gerne vil have dem med i udviklingen.

Ved at engagere dig i fællesskabet lokker du dem til at dele problemer og fejl, men har også anmodninger og gode ideer til videreudvikling! Alle disse hjælper med at skabe noget for dem.

Open source-fællesskabet er virkelig mere end summen af ​​dets dele

Mange kernefunktioner i BERTopic, f.eks online emnemodellering, er blevet implementeret, siden de blev efterspurgt af dets brugere. Som et resultat er fællesskabet ret aktivt og har været en enorm hjælp til at opdage problemer og udvikle nye funktioner.

Implementering af funktionsanmodninger fra fællesskabet rækker langt! Et uddrag af diskussionen link..

Uanset om din pakke vil blive brugt millioner af gange eller kun få, er oprettelse af en en glimrende mulighed for at lære mere om open source, MLOps, enhedstestning, API-design osv. Jeg har lært mere om disse færdigheder i at udvikle open source end jeg ville have i mit daglige arbejde.

Der er også en enorm læringsmulighed ved at interagere med selve samfundet. Det er dem, der fortæller dig, hvilke designs de kan lide eller ej. Til tider har jeg set det samme problem dukke op flere gange i løbet af et par måneder. Dette indikerer, at jeg burde gentænke designet, da det ikke var så brugervenligt, som jeg havde regnet med!

Oven i købet har udvikling af open source-projekter givet mig mulighed for at samarbejde med andre udviklere.

At arbejde på dine egne open source-projekter uden for arbejdet kommer med sine ulemper. For mig er det mest betydningsfulde, at det kan være ret meget arbejde at vedligeholde pakken, besvare spørgsmål og deltage i diskussionerne.

Det hjælper helt sikkert, hvis du er iboende motiveret, men det tager stadig lang tid at sikre, at alt er holdt sammen.

Heldigvis kan du se mod dit fællesskab for at hjælpe dig, når du besvarer spørgsmål, fremviser use cases osv.

I løbet af de sidste par år har jeg lært at være lidt mere afslappet, når det kommer til at bryde forandringer. Især når det drejer sig om afhængigheder, nogle gange er der bare så meget, du kan gøre!

At vide, hvor ofte din pakke bruges, er en enorm hjælp til at forstå, hvor populær den er. Mange bruger dog stadig Github-stjerner til at sidestille en pakke med kvalitet og popularitet.

Sørg for at definere den rigtige metric. GitHub-stjerner kan overdrives simpelthen på grund af ordentlig markedsføring. Mange stjerner antyder ikke popularitet.

Som data scientists skal vi først forstå, hvad det er, vi præcist måler. GitHub-stjerner er intet mere end en bruger, der giver en stjerne til en pakke. Det betyder ikke engang, at de har brugt softwaren, eller at den rent faktisk virker!

Antallet af downloads for KeyBERT. En meget bedre indikator end Github-stjerner.

Teknisk set kan jeg betale tusinde mennesker for at stjerne min repos. I stedet fokuserer jeg på en række forskellige statistikker, såsom downloads og gafler, men også antallet af problemer, jeg får på daglig basis.

For eksempel er det fantastisk, hvis dine pakker bliver vist på Hacker News men det fortæller dig ikke, om det bruges konsekvent.

Som psykolog har jeg en tendens til at fokusere meget på designet af mine pakker. Dette inkluderer ting som dokumentation og tutorials, men det oversættes endda til, hvordan jeg koder.

At sikre, at pakken er nem at bruge og installere, gør adoptionen meget nemmere. Især når du fokuserer på designfilosofier som modularitet og gennemsigtighed, bliver nogle pakker en blast at bruge.

Det modulære design af emnemodellering med BERTopic.

At tage en psykologs perspektiv, mens man udvikler nye funktioner, har gjort det meget lettere at vide, hvad man skal fokusere på. Hvad leder brugerne efter? Hvordan kan jeg kode på en måde, der forklarer algoritmen? Hvorfor bruger brugerne egentlig denne pakke? Hvad er de største ulemper ved min kode?

At tage sig tid til at forstå den gennemsnitlige bruger driver adoptionen

Alt det ovenstående fører ofte til en grundlæggende, men vigtig regel;
Hold det super simpelt

Personligt, hvis jeg synes, at en ny pakke er svær at installere og bruge, er det mindre sandsynligt, at jeg bruger den i min arbejdsgang.

Hvis du ligesom jeg brænder for AI, Data Science eller Psykologi, er du velkommen til at tilføje mig LinkedIn eller følg mig videre Twitter. Du kan også finde noget af mit indhold på min Personligt websted.

Alle billeder uden kildekredit er lavet af forfatteren

6 lektioner, jeg lærte af at udvikle Open-Source-projekter Genudgivet fra kilde https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Tidsstempel:

Mere fra Blockchain-konsulenter