Πώς να σώσετε το μυαλό σας και τον κώδικα πιο αποτελεσματικά

Αν γνωρίζετε ότι υπήρχαν αυτά τα εργαλεία, μάλλον θα τα χρησιμοποιούσατε μέχρι τώρα.

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

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

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

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

Δεν είναι η μέση επισήμανση σύνταξης

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

Το τρέχον θέμα VSC και η επισήμανση σύνταξης

Σε κάθε σοβαρότητα, η επισήμανση σύνταξης μπορεί να διευκολύνει την εύρεση αυτού που ψάχνετε στην οθόνη σας: την τρέχουσα γραμμή, όπου ξεκινάει και τελειώνει το τρέχον μπλοκ κώδικα ή το απόλυτο παιχνίδι-bracket-set-am- που αλλάζει το παιχνίδι Ι-in highlight.

Χρησιμοποιώ κυρίως το Visual Studio Code, αλλά παρόμοιες επεκτάσεις μπορούν να βρεθούν για τους κύριους επεξεργαστές κειμένου.

Εδώ είναι τα αγαπημένα μου:

  • Το Bracket Pair Colorizer επισημαίνει διαδοχικά ζεύγη αγκυλών σε διαφορετικά χρώματα που ταιριάζουν, καθιστώντας τον πόνο να επιλέξουμε μέσα από ένθετα αγκύλες και παρενθέσεις κάτι του παρελθόντος.
  • Το TODO Highlight αφαιρεί αποτελεσματικά οποιαδήποτε δικαιολογία που μπορεί να είχατε για ακούσια διάπραξη TODOκαι FIXMEσχόλια κάνοντάς τα πραγματικά εύκολα ορατά. Μπορείτε ακόμη και να προσθέσετε τις δικές σας προσαρμοσμένες λέξεις-κλειδιά για να επισημάνετε (προτείνω wtf, αλλά δεν το ακούσατε από εμένα.)
  • Η επισήμανση με εσοχή μπλοκ δίνει μια εύκολη διάκριση, αλλά διακριτική επισήμανση πίσω από το τρέχον μπλοκ κώδικα με εσοχή, ώστε να μπορείτε να δείτε ακριβώς πού ifτελειώνει και γιατί το τελευταίο elseδεν κάνει τίποτα.
  • Η Γραμμή επισήμανσης βάζει μια (ελαφρώς πάρα πολύ) φωτεινή γραμμή στην οποία αφήσατε τελευταία φορά τον κέρσορα. Μπορείτε να προσαρμόσετε την εμφάνιση της γραμμής - έχω ορίσει το borderWidthδικό μου 1px.

Το θέμα που απεικονίζεται στον κώδικα Visual Studio παραπάνω είναι το Kabukichō. Τα κατάφερα.

Χρησιμοποιήστε άγκιστρα Git

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

Τα Git hooks είναι σενάρια που εκτελούνται αυτόματα σε προκαθορισμένα σημεία στη ροή εργασίας σας. Χρησιμοποιήστε τα καλά και μπορείτε να εξοικονομήσετε έναν τόνο εγκεφαλικής δύναμης.

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

Οι γάντζοι μπορεί να είναι λίγο ενοχλητικοί για κοινή χρήση (ο .git/hooksκατάλογος δεν παρακολουθείται και έτσι παραλείπεται όταν κάνετε κλωνοποίηση ή διακλάδωση ενός αποθετηρίου), αλλά υπάρχει ένα πλαίσιο για αυτό: το πλαίσιο σύγχυσης προ-διαπραγμάτευσης, το οποίο σας επιτρέπει να δημιουργήσετε μια κοινή χρήση διαμόρφωσης αρχείο προσθηκών Git hook, όχι μόνο για pre-commit.

Περνάω το μεγαλύτερο μέρος του χρόνου μου σήμερα κωδικοποιώντας στο Python, οπότε εδώ είναι το τρέχον αγαπημένο μου .pre-commit-config.yaml:

fail_fast: true repos: - repo: //github.com/pre-commit/pre-commit-hooks rev: v3.1.0 # Use the ref you want to point at hooks: - id: detect-aws-credentials - id: end-of-file-fixer - id: trailing-whitespace - repo: //github.com/psf/black rev: 19.3b0 hooks: - id: black - repo: //github.com/asottile/blacken-docs rev: v1.7.0 hooks: - id: blacken-docs additional_dependencies: [black==19.3b0] - repo: //github.com/pre-commit/mirrors-mypy rev: v0.780 hooks: - id: mypy - repo: local hooks: - id: isort name: isort stages: [commit] language: system entry: isort types: [python] - id: black name: black stages: [commit] language: system entry: black types: [python] 

Υπάρχουν τόνοι υποστηριζόμενων αγκίστρων για εξερεύνηση.

Χρησιμοποιήστε ένα σύστημα τύπου

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

Για την Python, μου αρέσει να χρησιμοποιώ το mypy για έλεγχο στατικού τύπου. Μπορείτε να το ρυθμίσετε ως pre-commitάγκιστρο (δείτε παραπάνω) και υποστηρίζεται και στον κώδικα Visual Studio.

Το TypeScript είναι ο προτιμώμενος τρόπος για να γράψω JavaScript. Μπορείτε να εκτελέσετε τον μεταγλωττιστή στη γραμμή εντολών χρησιμοποιώντας το Node.js (βλ. Οδηγίες στο repo), λειτουργεί αρκετά καλά με το Visual Studio Code έξω από το κουτί και φυσικά υπάρχουν πολλές επιλογές για ενοποιήσεις επέκτασης.

Σταματήστε άσκοπα χτυπώντας τον εγκέφαλό σας

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

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