Στοχαστική κωδικοποίηση

Γιατί η κωδικοποίηση είναι κάτι παραπάνω από τη συμβολοσειρά συμβόλων

Ένας κωδικοποιητής που μιλάει για κώδικα

Τομ εδώ γράφοντας, παθιασμένος προγραμματιστής για όλα τα πράγματα στον ιστό και τα εγγενή. Έχουν περάσει πολλά φεγγάρια από τότε που άρχισα να γράφω μερικές γραμμές κώδικα. Μια ένδοξη «Hello World» ήταν, και από τότε έχω γράψει πολλές ακόμη γραμμές πολύ περισσότερου κώδικα, που εκτείνονται από συστήματα συναγερμού σε πραγματικό χρόνο, ιατρικές εφαρμογές που υποστηρίζουν τους γιατρούς στις καθημερινές τους εργασίες έως τη συνάντηση πολλών πλατφορμών - & - λογισμικό προγραμματισμού-διαχείρισης. Έχω μάθει επίσης κάποια πράγματα στην πορεία, και σήμερα θέλω να μοιραστώ μια πτυχή της κωδικοποίησης που μπορεί να μην κερδίζει πάντα τόσο μεγάλη εστίαση, ειδικά κατά τη διάρκεια των μεσαίων έργων. Ας μιλήσουμε για την ευθύνη ενός κωδικοποιητή ή, για να είμαστε ακριβείς, μια κληρονομιά κώδικα κωδικοποιητή.

Οι Πυραμίδες της Javascript

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

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

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

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

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

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

Νοοτροπία του μηχανικού

Μια άλλη πτυχή της προσεκτικής κωδικοποίησης για την οποία θέλω να γράψω είναι το κοινό-στόχος μιας εφαρμογής, ο χρήστης. Καθώς κάθομαι 9 έως 5 μπροστά από την οθόνη των ηλεκτρικών χάρακα, ανοίγοντας γραμμές κώδικα και εστιάζοντας στο θέμα που μου έχει ανατεθεί, είναι σίγουρο ότι είναι δύσκολο να θυμάστε ότι όλη η δουλειά μου, τελικά, έχει για χρήση από κάποιον που το χρησιμοποιεί εν μέρει ή πλήρως κατά τη διάρκεια της καθημερινής εργασίας. Και δεν έχει σημασία αν δημιουργώ μια εφαρμογή για μη τεχνικά άτομα ή API για άλλους προγραμματιστές - το υλικό που δημιουργώ πρέπει να είναι εργονομικό στη χρήση του.

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

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

process.exit ();

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

  • Tom