7 Συμβουλές για τη δημιουργία αναγνώσιμου κώδικα επιστήμης δεδομένων


Εικόνα από svstudioart στο Freepik

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

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

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

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

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

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

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

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

Όταν ονομάζετε τις μεταβλητές σας, στοχεύστε σε ακριβή ονόματα και όχι σύντομα. Για παράδειγμα, εάν υπολογίζετε τον μέσο όρο μιας λίστας τιμών, μην δώσετε τη μεταβλητή ave ή av; μερικές φορές, όπως average_height ή average_time. Σήμερα, πολλοί επεξεργαστές κώδικα προσφέρουν αυτόματη συμπλήρωση, επομένως η χρήση μεγαλύτερων ονομάτων δεν θα επιβραδύνει τη διαδικασία σύνταξης κώδικα.

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

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

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

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

Η τεκμηρίωση του κώδικά σας είναι ένα σημαντικό βήμα, είτε πρόκειται για πλήρη τεκμηρίωση είτε για ενσωματωμένο κώδικα (docstrings). Οι συμβολοσειρές εγγράφων είναι συμβολοσειρές στην αρχή ενός αρχείου κώδικα, μετά από έναν ορισμό συνάρτησης/κλάσης, που λένε στον αναγνώστη τον σκοπό του κώδικα/συνάρτησης ή κλάσης.

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

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

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

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

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

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

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

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

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

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

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

Sara Metwalli είναι Ph.D. υποψήφιος στο Πανεπιστήμιο Keio που ερευνά τρόπους δοκιμής και εντοπισμού σφαλμάτων κβαντικών κυκλωμάτων. Είμαι ασκούμενος στην έρευνα της IBM και υποστηρικτής του Qiskit που βοηθάω στη δημιουργία ενός πιο κβαντικού μέλλοντος. Είμαι επίσης συγγραφέας στα Medium, Built-in, She Can Code και KDN γράφοντας άρθρα σχετικά με θέματα προγραμματισμού, επιστήμης δεδομένων και τεχνολογίας. Είμαι επίσης ηγέτης στο διεθνές κεφάλαιο Woman Who Code Python, λάτρης του τρένου, ταξιδιώτης και λάτρης της φωτογραφίας.

Leave a Comment