6 Μαθήματα που έμαθα από την ανάπτυξη έργων ανοιχτού κώδικα

Η προοπτική ενός επιστήμονα δεδομένων

Ο ανοιχτός κώδικας είναι μια καταπληκτική ιδέα! Συνδυάζοντας τις πηγές, τις δεξιότητες και τις γνώσεις μιας ολόκληρης κοινότητας, μπορούν να δημιουργηθούν εργαλεία που δεν θα μπορούσαμε να τα είχαμε φτιάξει μεμονωμένα. Τα εργαλεία που προκύπτουν από αυτές τις συνεργασίες είναι πραγματικά περισσότερα από το άθροισμα των μερών τους.

Ως αποτέλεσμα, εμείς οι επιστήμονες δεδομένων χρησιμοποιούμε αυτό το δωρεάν διαθέσιμο λογισμικό που οδηγεί τόσες πολλές τεχνολογίες, ενώ έχουμε ακόμα την ευκαιρία να συμμετάσχουμε στην ανάπτυξή του.

Τα τελευταία χρόνια, είχα την τύχη να ασχοληθώ με το open-source και είχα την ευκαιρία να αναπτύξω και να βασίσω πολλά πακέτα!

Η ανάπτυξη ανοιχτού κώδικα είναι κάτι περισσότερο από απλή κωδικοποίηση

Κατά τη διάρκεια αυτής της περιόδου, υπήρχαν πολλά εμπόδια που έπρεπε να ξεπεραστούν και διδάγματα που έπρεπε να αντληθούν. Από δύσκολες εξαρτήσεις και επιλογές σχεδιασμού API μέχρι επικοινωνία με τη βάση χρηστών.

Η εργασία σε ανοιχτό κώδικα, είτε ως συγγραφέας, είτε ως συντηρητής είτε ως προγραμματιστής, μπορεί να είναι αρκετά αποθαρρυντική! Με αυτό το άρθρο, μοιράζομαι μερικές από τις εμπειρίες μου σε αυτόν τον τομέα που ελπίζουμε ότι βοηθά όσους θέλουν να αναπτύξουν ανοιχτό κώδικα.

Όταν δημιουργείτε λογισμικό ανοιχτού κώδικα, συνήθως δεν φτιάχνετε το πακέτο αποκλειστικά για εσάς. Χρήστες, από κάθε τύπο διαφορετικού υπόβαθρου, θα κάνουν χρήση του λογισμικού σας. Η σωστή τεκμηρίωση βοηθάει πολύ αυτούς τους χρήστες να ξεκινήσουν.

Ωστόσο, μην υποτιμάτε τον αντίκτυπο που μπορεί να έχει η τεκμηρίωση στη χρηστικότητα του πακέτου σας! Μπορείτε να το χρησιμοποιήσετε για να εξηγήσετε σύνθετους αλγόριθμους, να δώσετε εκτενείς σεμινάρια, να εμφανίσετε περιπτώσεις χρήσης και ακόμη και να επιτρέψετε διαδραστικά παραδείγματα.

Ειδικά το λογισμικό που σχετίζεται με την επιστήμη των δεδομένων μπορεί να είναι δύσκολο να κατανοηθεί όταν περιλαμβάνει πολύπλοκους αλγόριθμους. Το να προσεγγίζω αυτές τις εξηγήσεις σαν ιστορία συχνά με βοήθησε να τις κάνω πιο διαισθητικές.

Πιστέψτε με, η σύνταξη καλής τεκμηρίωσης είναι μια δεξιότητα από μόνη της.

Ένα άλλο πλεονέκτημα είναι ότι η σύνταξη σταθερής τεκμηρίωσης μειώνει τον χρόνο που αφιερώνεται σε ζητήματα. Υπάρχει λιγότερος λόγος για τους χρήστες να κάνουν ερωτήσεις εάν μπορούν να βρουν τις απαντήσεις στην τεκμηρίωσή σας.

Μια επισκόπηση του πώς KeyBERT τα έργα βρίσκονται στην τεκμηρίωση.

Ωστόσο, η δημιουργία τεκμηρίωσης είναι κάτι περισσότερο από απλή σύνταξη. Η οπτικοποίηση του αλγόριθμου ή του λογισμικού σας κάνει πολύ διαισθητικό. Μπορείτε να μάθετε πολλά από Τζέι Αλμάμαρ όταν θέλετε να απεικονίσετε αλγοριθμικές αρχές στην τεκμηρίωσή σας. Οι οπτικοποιήσεις του κατέληξαν μάλιστα στα επίσημα Νούμπι τεκμηρίωση!

Η βάση χρηστών σας, η κοινότητα, είναι ένα σημαντικό στοιχείο του λογισμικού σας. Εφόσον αναπτύσσουμε ανοιχτό κώδικα, είναι ασφαλές να πούμε ότι θέλουμε να συμμετέχουν στην ανάπτυξη.

Αλληλεπιδρώντας με την κοινότητα, τους δελεάζετε να μοιράζονται προβλήματα και σφάλματα, αλλά και να παρουσιάζουν αιτήματα και εξαιρετικές ιδέες για περαιτέρω ανάπτυξη! Όλα αυτά βοηθούν στη δημιουργία κάτι για αυτούς.

Η κοινότητα ανοιχτού κώδικα είναι πραγματικά κάτι περισσότερο από το άθροισμα των μερών της

Πολλά βασικά χαρακτηριστικά στο BERTopic, όπως διαδικτυακή μοντελοποίηση θεμάτων, έχουν εφαρμοστεί από τότε που είχαν μεγάλο αίτημα από τους χρήστες του. Ως αποτέλεσμα, η κοινότητα είναι αρκετά ενεργή και έχει προσφέρει τεράστια βοήθεια στον εντοπισμό προβλημάτων και στην ανάπτυξη νέων λειτουργιών.

Η εφαρμογή αιτημάτων χαρακτηριστικών από την κοινότητα προχωρά πολύ! Απόσπασμα της συζήτησης εδώ.

Είτε το πακέτο σας θα χρησιμοποιηθεί εκατομμύρια φορές είτε μόνο λίγες, η δημιουργία ενός είναι μια εξαιρετική ευκαιρία για να μάθετε περισσότερα σχετικά με τον ανοιχτό κώδικα, τα MLOps, τη δοκιμή μονάδων, το σχεδιασμό API κ.λπ. Έχω μάθει περισσότερα για αυτές τις δεξιότητες στην ανάπτυξη ανοιχτού κώδικα από ό,τι θα έκανα στην καθημερινή μου δουλειά.

Υπάρχει επίσης μια τεράστια ευκαιρία μάθησης από την αλληλεπίδραση με την ίδια την κοινότητα. Είναι αυτοί που σου λένε ποια σχέδια τους αρέσουν ή όχι. Κατά καιρούς, έχω δει το ίδιο θέμα να εμφανίζεται πολλές φορές κατά τη διάρκεια μερικών μηνών. Αυτό υποδηλώνει ότι πρέπει να ξανασκεφτώ το σχέδιο καθώς δεν ήταν τόσο φιλικό προς το χρήστη όσο περίμενα!

Επιπλέον, η ανάπτυξη έργων ανοιχτού κώδικα μου έδωσε την ευκαιρία να συνεργαστώ με άλλους προγραμματιστές.

Το να εργάζεστε στα δικά σας έργα ανοιχτού κώδικα εκτός εργασίας έχει και τα μειονεκτήματά του. Για μένα, το πιο σημαντικό είναι ότι η διατήρηση του πακέτου, η απάντηση σε ερωτήσεις και η συμμετοχή στις συζητήσεις μπορεί να είναι πολύ δουλειά.

Σίγουρα βοηθάει εάν έχετε εγγενή κίνητρα, αλλά χρειάζεται ακόμα αρκετός χρόνος για να βεβαιωθείτε ότι όλα είναι ενωμένα.

Ευτυχώς, μπορείτε να κοιτάξετε προς την κοινότητά σας για να σας βοηθήσει όταν απαντάτε σε ερωτήσεις, παρουσιάζετε περιπτώσεις χρήσης κ.λπ.

Κατά τη διάρκεια των τελευταίων ετών, έμαθα να είμαι λίγο πιο χαλαρός όταν πρόκειται για αλλαγές. Ειδικά όταν πρόκειται για εξαρτήσεις, μερικές φορές υπάρχουν τόσα πολλά που μπορείτε να κάνετε!

Το να γνωρίζετε πόσο συχνά χρησιμοποιείται το πακέτο σας είναι μια τεράστια βοήθεια για να κατανοήσετε πόσο δημοφιλές είναι. Ωστόσο, πολλοί εξακολουθούν να χρησιμοποιούν τα αστέρια του Github για να εξισώσουν ένα πακέτο με την ποιότητα και τη δημοτικότητα.

Βεβαιωθείτε ότι έχετε ορίσει τη σωστή μέτρηση. Τα αστέρια του GitHub μπορεί να είναι υπερβολικά απλά λόγω του σωστού μάρκετινγκ. Πολλά αστέρια δεν υπονοούν δημοτικότητα.

Ως επιστήμονες δεδομένων, πρέπει πρώτα να καταλάβουμε τι ακριβώς μετράμε. Τα αστέρια του GitHub δεν είναι τίποτα άλλο παρά ένας χρήστης που δίνει ένα αστέρι σε ένα πακέτο. Δεν σημαίνει καν ότι έχουν χρησιμοποιήσει το λογισμικό ή ότι πραγματικά λειτουργεί!

Ο αριθμός των λήψεων για το KeyBERT. Ένας πολύ καλύτερος δείκτης από τα αστέρια του Github.

Τεχνικά, μπορώ να πληρώσω χίλιους ανθρώπους για να πρωταγωνιστήσουν τα repos μου. Αντίθετα, επικεντρώνομαι σε μια ποικιλία στατιστικών στοιχείων, όπως λήψεις και forks, αλλά και στον αριθμό των προβλημάτων που αντιμετωπίζω σε καθημερινή βάση.

Για παράδειγμα, είναι υπέροχο να εμφανίζονται τα πακέτα σας Hacker News αλλά δεν σας λέει αν χρησιμοποιείται με συνέπεια.

Ως ψυχολόγος, τείνω να επικεντρώνομαι πολύ στο σχεδιασμό των πακέτων μου. Αυτό περιλαμβάνει πράγματα όπως τεκμηρίωση και σεμινάρια, αλλά μεταφράζεται ακόμη και στον τρόπο που κωδικοποιώ.

Η διασφάλιση της εύκολης χρήσης και εγκατάστασης του πακέτου καθιστά την υιοθέτηση πολύ πιο απλή. Ειδικά όταν επικεντρώνεστε σε φιλοσοφίες σχεδίασης όπως η σπονδυλωτή και η διαφάνεια, ορισμένα πακέτα γίνονται απίστευτα χρήσιμα.

Ο αρθρωτός σχεδιασμός της μοντελοποίησης θεμάτων με BERTopic.

Η λήψη της προοπτικής ενός ψυχολόγου κατά την ανάπτυξη νέων χαρακτηριστικών έχει κάνει πολύ πιο εύκολο να γνωρίζουμε σε τι πρέπει να εστιάσουμε. Τι αναζητούν οι χρήστες; Πώς μπορώ να κωδικοποιήσω με τρόπο που να εξηγεί τον αλγόριθμο; Γιατί οι χρήστες χρησιμοποιούν πραγματικά αυτό το πακέτο; Ποια είναι τα σημαντικότερα μειονεκτήματα του κώδικά μου;

Αφιερώνοντας χρόνο για να κατανοήσετε τον μέσο χρήστη οδηγεί στην υιοθέτηση

Όλα τα παραπάνω συχνά οδηγούν σε έναν βασικό αλλά σημαντικό κανόνα.
Κρατήστε το εξαιρετικά απλό

Προσωπικά, αν βρίσκω δύσκολο να εγκαταστήσω και να χρησιμοποιήσω ένα νέο πακέτο, είναι λιγότερο πιθανό να το υιοθετήσω στη ροή εργασίας μου.

Εάν είστε, όπως εγώ, παθιασμένοι με την τεχνητή νοημοσύνη, την επιστήμη δεδομένων ή την ψυχολογία, μη διστάσετε να με προσθέσετε στο LinkedIn ή ακολουθήστε με Twitter. Μπορείτε επίσης να βρείτε κάποιο από το περιεχόμενό μου στο δικό μου Προσωπική ιστοσελίδα.

Όλες οι εικόνες χωρίς πίστωση πηγής δημιουργήθηκαν από τον συγγραφέα

6 Μαθήματα που έμαθα από την ανάπτυξη Έργων Ανοικτού Κώδικα Αναδημοσίευση από την πηγή https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c https://towardsdatascience.com/feed

Si al principi no tens èxit, aleshores el paracaigudisme no és per a tu.

->

Σφραγίδα ώρας:

Περισσότερα από Σύμβουλοι Blockchain

Η Meta παρουσιάζει το «Tulip», ένα δυαδικό πρωτόκολλο σειριοποίησης που βοηθά στη σχηματοποίηση δεδομένων αντιμετωπίζοντας την αξιοπιστία πρωτοκόλλου για φόρτους εργασίας τεχνητής νοημοσύνης και μηχανικής μάθησης

Κόμβος πηγής: 1755699
Σφραγίδα ώρας: 12 Νοεμβρίου 2022