Ο 100% σωστός οδηγός στυλ κωδικοποίησης

Καρτέλες ή κενά; Σγουρό στήριγμα στην ίδια γραμμή ή σε μια νέα γραμμή; 80 χαρακτήρες πλάτος ή 120;

Οι κωδικοποιητές αγαπούν να διαφωνούν για τέτοιου είδους πράγματα. Οι καρτέλες εναντίον χώρους συζητούν καν να γίνει σε ένα διάσημο επεισόδιο του HBO δείχνουν Silicon Valley .

Λοιπόν σε αυτό το άρθρο, θα σας δώσω επιτέλους τις οριστικές απαντήσεις που αναζητάτε.

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

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

Αυτά τα πράγματα δεν έχουν σημασία.

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

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

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

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

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

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

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

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

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

Λόγω της αναφοράς σε ένα υπόστεγο ποδηλάτου σε αυτό το κανονικό παράδειγμα, ο Δανός προγραμματιστής, ο Poul-Henning Kamp αργότερα επινόησε τον όρο «μοτοσυκλέτα εφέ» ή απλά «μοτοσυκλέτα» για να το περιγράψει.

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

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

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

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

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

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

Εάν μπορείτε να απαντήσετε "ναι" και στις δύο αυτές ερωτήσεις, τότε μπορείτε να πάτε. Τόσο απλό.

Ακολουθούν ορισμένες επιλογές που ταιριάζουν στο λογαριασμό για μερικές από τις πιο δημοφιλείς γλώσσες ιστού σήμερα:

Διαμορφωτής κώδικα DotNet

Java: Μορφή Google-Java

Τυπικό στυλ Javascript (ΣΗΜ. Αυτό είναι ένα όνομα προϊόντος, όχι ένα πραγματικό, επίσημο πρότυπο JavaScript)

Πρότυπα κωδικοποίησης PHP Fixe r

Python: YAPF της Google

Ruby: Rubocop

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