Γιατί χρειάζεστε κωδικό Sniffers για την ανάπτυξη Ιστού
Η βελτιστοποίηση κώδικα είναι συγκρίσιμη με τη φάση επεξεργασίας μιας γραφής. Ίσως χρειαστεί πρώτα να πάρετε τις ιδέες σας κάτω στον κώδικα, αλλά ο κώδικας σας θα πρέπει να βελτιστοποιηθεί με εργαλεία όπως sniffers κώδικα για να παράγει το καλύτερο δυνατό προϊόν.
Ο κώδικας sniffing είναι ένας όρος που περιγράφει κώδικα συμμόρφωσης με τα κανονιστικά πρότυπα. Αυτοί οι κανονισμοί θα μπορούσαν να καθορίσουν τον αριθμό των διαστημάτων που θα χρησιμοποιηθούν για την εσοχή, την τοποθέτηση σγουρών ή το πώς θα ονομάσουν τις μεταβλητές. Τα πρότυπα δεν είναι ζωτικής σημασίας για την κατασκευή μιας διαδικτυακής εφαρμογής, αλλά τα πρότυπα είναι σημαντικά για εσωτερική συνοχή και συντήρηση κώδικα.
Αυτό είναι όπου sniffing κώδικα έρχεται σε πρακτικό για όλους τους προγραμματιστές, frontend να backend. θα ήθελα να εξετάστε τη διαδικασία του sniffing κώδικα και προσφέρετε κάποια βοηθητικά προγράμματα που βοηθούν στην ανάλυση των προτύπων κώδικα.
Τι είναι το Sniffing κώδικα?
Η δράση του sniffing κώδικα είναι συνήθως αυτοματοποιημένη σε εξοικονομείτε χρόνο και μειώνετε τα σφάλματα. Κωδικοποιητές sniffers θα ελέγξτε τους πηγαίους κώδικες για συμμόρφωση με τα πρότυπα που καθορίζονται από εσωτερικές ομάδες ανάπτυξης ή ρυθμιστικούς φορείς.
Ο κώδικας sniffing είναι παρόμοιος με το linding κώδικα αλλά πιο πενταντίζοντας. Χειροτεχνία κυρίως ελέγχει τα σφάλματα και τα σφάλματα σύνταξης ενώ ο οσφραίος ψάχνει για θέματα στο ο κώδικας δρόμου είναι γραμμένος. Ένα αρχείο PHP μπορεί να λειτουργήσει σωστά, αλλά θα αποτύχει σε μια δοκιμή sniffing κώδικα αν ένα όνομα μεταβλητής δεν ακολουθεί τα πρότυπα (π.χ.. $ myVariable vs $ my_variable).
Ένα παρόμοιο κομμάτι της ορολογίας είναι η μυρωδιά του κώδικα που ελέγχους για ελαττώματα σχεδιασμού στον κώδικα που μπορεί να οδηγήσει σε μεγαλύτερα σφάλματα. Αυτό μπορεί να αφορά πρότυπα κώδικα αλλά περιλαμβάνει επίσης αρχιτεκτονικές υψηλότερου επιπέδου για τη σύνταξη ομοιογενούς κώδικα.
Όλες αυτές οι περιοχές αξίζει να καλύψουν και είναι σχετικές με το sniffing κώδικα. Απλά θυμηθείτε ότι ο κώδικας ορμής δεν θα βρει πάντα σφάλματα χρόνου εκτέλεσης δεδομένου ότι έχει προτεραιότητα διατηρώντας την αυστηρή συμμόρφωση με τα πρότυπα.
Μέχρι τώρα ίσως να ρωτάς τον εαυτό σου να κάνει πρότυπα ακόμη και θέμα; Η αλήθεια είναι ότι έχουν σημασία, αλλά περισσότερο για βελτιστοποίηση και καθαρισμό έργων. Πολλοί προγραμματιστές συμφωνούν ότι τα πρότυπα είναι ζωτικής σημασίας για τον προγραμματισμό και την ανάπτυξη ιστού - ειδικά σε μεγάλα ομαδικά προγράμματα.
Ακολουθεί ένα απόσπασμα από τον προγραμματιστή Paul Jones που εξηγεί γιατί τα πρότυπα κώδικα είναι χρήσιμα.
“Το σημείο ενός προτύπου στυλ κωδικοποίησης δεν είναι να πούμε ότι ένα στυλ είναι αντικειμενικά καλύτερο από το άλλο ... Αντ 'αυτού, το σημείο είναι να δημιουργήσουμε τις γνωστές προσδοκίες για το πώς πρόκειται να φανεί ο κώδικας.”
Εάν χτίζετε ένα μικρό webapp για τον εαυτό σας, μπορεί να μην αξίζει να αφιερώσετε χρόνο στα πρότυπα WCAG 2.0 ή PSR-2. Αλλά εξετάστε τις εκατοντάδες προγραμματιστές που εργάζονται στον πηγαίο κώδικα του Adobe Photoshop. Θα ήταν χαοτικό αν κάθε άτομο έγραψε το δικό του στυλ και το συνδύασε όλοι μαζί.
Αν και οι ομάδες εξαρτώνται σε μεγάλο βαθμό από τα πρότυπα, αυτοί οι κανόνες μπορεί να είναι χρήσιμοι και για τους αναπτυξιακούς οργανισμούς. Μπορείτε να βρείτε κώδικα πρότυπα για τα πάντα από CSS σε WordPress έτσι δεν υπάρχει καμία δικαιολογία για να μην προσπαθήσουμε και να δούμε αν η ποιότητα του κώδικα σας βελτιώνει.
Η αξία των προτύπων κώδικα
Τα πρότυπα θα είναι φυσικά κρατήστε τον κώδικα καθαρό και οργανωμένο. Οι προγραμματιστές γνωρίζουν ακριβώς πώς να γράψουν κώδικα και πώς να ακολουθήσουν μαζί με το έργο του άλλου.
Τα πρότυπα κώδικα βοηθούν επίσης την ανάπτυξη ανοιχτού κώδικα προσφέροντας κανόνες για άλλους που θα ακολουθήσουν. Τα αρχεία μπορούν να ληφθούν από οποιονδήποτε μήνες ή χρόνια αργότερα και να είναι ακόμα ευανάγνωστα.
Ένα αυστηρό στυλ κωδικοποίησης είναι μια καλή ιδέα ακόμα κι αν επιλέξετε να δημιουργήσετε τη δική σας. Αυτό απαιτεί μεγάλη προσπάθεια, αλλά καθώς τα έργα αναπτύσσονται, αυτό το είδος τεκμηρίωσης είναι ανεκτίμητο.
Εδώ είναι μερικά πρότυπα κωδικοποίησης που θεωρούν ότι καλύπτουν το εύρος διαφόρων γλωσσών του ιστού.
- Πρότυπα κωδικοποίησης PEAR (PHP)
- Πρότυπα Google για HTML / CSS
- Πρότυπα Google για JavaScript
- Στυλ κωδικοποίησης Django (Python)
- Οδηγός στυλ ράγας (Ruby)
- WCAG 2.0 (UX)
Καλύτεροι πόροι Sniffing κώδικα
Τώρα είναι δυνατόν να βρείτε δωρεάν sniffers κώδικα για τα πάντα από HTML / CSS σε υποστηρικτικές γλώσσες όπως PHP και SQL. Ίσως να μην χρειάζεται να χρησιμοποιείτε αυτά τα sniffers ή να ακολουθείτε πρότυπα για κάθε γλώσσα αλλά αξίζει να διερευνήσετε τις δυνατότητες για να δείτε τι μπορεί να βελτιώσει την απόδοσή σας.
Κωδικός Sniffers Κώδικας
Αν και το HTML δεν το κάνει χρειάζομαι ένας κώδικας sniffer που δεν σταμάτησε το Squiz από την κατασκευή ενός. Είναι εντελώς ανοιχτό και φιλοξενείται στο GitHub με τις επιλογές για την αντιγραφή / επικόλληση κώδικα στο πρόγραμμα περιήγησης ή την αποθήκευση ενός bookmarklet για την εκτέλεση σε μεμονωμένες ιστοσελίδες.
Αυτός ο έλεγχος ελέγχει τα τρία επίπεδα A, AA, AAA και προσβασιμότητας AAA σε συνδυασμό με τις κατευθυντήριες γραμμές του τμήματος 508 που ισχύουν κυρίως για κυβερνητικούς ιστότοπους.
Οι προγραμματιστές του CSS ίσως αρέσουν αυτό το ελεύθερο sniffer κώδικα CSS, το οποίο είναι επίσης ανοικτού κώδικα, που φιλοξενείται μέσω του Node Package Manager.
Οι χρήστες του jQuery θα πρέπει να ελέγξουν το JSCodeSniffer που κατασκευάστηκε από τον Dmitry Sheiko. Αυτό είναι ένα άλλο δωρεάν webapp που φιλοξενείται στο GitHub και είναι σύμφωνο με τον οδηγό στυλ κώδικα της jQuery.
Εναλλακτικά, ίσως θελήσετε να δοκιμάσετε να χρωματίσετε τον κωδικό σας JS με JavaScript Lint ή JS Lint. Αυτά τα εργαλεία ελέγχουν για σφάλματα στη σύνταξη αντί για πρότυπα κώδικα, αλλά είναι επίσης πολύ χρήσιμα όταν πρόκειται για βελτιστοποίηση κώδικα frontend.
Για την καταγραφή είναι επίσης δυνατό να ελέγξετε τα πρότυπα JS / CSS απευθείας με το PHP_CodeSniffer.
Το PHP Code Sniffer
Το PHP_CodeSniffer είναι ένα εργαλείο που πρέπει να έχετε στη ζώνη εργαλείων σας εάν θέλετε να συμμορφωθείτε με τα πρότυπα κώδικα PHP. Το πακέτο περιέχει μερικά PHP scripts που αναλύουν κώδικα PHP, JS και CSS για συμμόρφωση με την επιλογή τεκμηρίωσης στυλ κώδικα.
Ο δημιουργός του PHP_CodeSniffer Greg Sherwood έγραψε ένα υπέροχο ιστορικό για το πώς ήρθε η ιδέα και ποια προβλήματα προσπαθεί να λύσει (αξίζει να το διαβάσετε αν έχετε το χρόνο).
Εν ολίγοις, ο Greg συνεργάστηκε με μια ομάδα εκμάθησης JavaScript ενσωματωμένη σε μια εφαρμογή PHP. Στόχος τους ήταν η δομή του JS με τρόπο που ακολούθησε τα πρότυπα κώδικα της PHP για να διευκολύνει τη μετάβαση της ζωής. Έτσι δημιουργήθηκε το PHP_CodeSniffer.
Αυτό είναι μεγάλο για τους προγραμματιστές PHP γιατί η γλώσσα είναι πολύ χαλαρή με υποχρεωτικές απαιτήσεις στυλ. Πλαίσια όπως το Laravel είναι αυστηρότερα, αλλά οι προγραμματιστές μπορούν (και πρέπει) να δημιουργήσουν τα δικά τους πρότυπα κώδικα χωρίς να βασίζονται σε ένα πλαίσιο τρίτου μέρους.
Διάφορα πρότυπα όπως PSR-0, PSR-1 και PSR-2 είναι όλα δημοφιλή και συσκευάζονται με τη βιβλιοθήκη sniffing PHP.
Αλλά μπορείτε να βρείτε πολλά άλλα πρότυπα πρότυπα κώδικα για PHP CMS 'όπως WordPress, Magento, και Drupal. Οι προγραμματιστές στον πυρήνα του Drupal κυκλοφόρησαν ακόμη μια επίσημη υπομονάδα κώδικα sniffer που ονομάζεται Coder.
Η PHP είναι αναμφίβολα η πιο εύκολη γλώσσα για βελτιστοποίηση με sniffers κώδικα. Αν ψάχνετε μια λίστα με πρότυπα κώδικα PHP ελέγξτε αυτή την καταχώρηση GitHub.
Άλλα Sniffers κωδικού Backend
Οι προγραμματιστές Backend συνεργάζονται με διάφορες γλώσσες πέρα από την PHP και οι αριθμοί αυξάνονται κάθε χρόνο. Με τις εναλλακτικές γλώσσες διαθέτουμε επίσης εναλλακτικές βιβλιοθήκες κωδικοποίησης κώδικα όπως κώδικα sniffer για Python.
Είναι δυνατό να ελέγξετε άλλα σενάρια online ή να χρησιμοποιήσετε εργαλεία όπως το PyLint. Αλλά αυτή είναι μια άλλη μεθοδολογία που απαιτεί υπομονή για να εργαστεί στην αναπτυξιακή ροή σας.
Ruby devs έχουν επίσης μια σειρά επιλογών όταν πρόκειται για κωδικοποίηση και ανάλυση. Οι καλύτεροι είναι πάντα ελεύθεροι και ανοιχτού κώδικα όπως ο Ruby Lint, ένας στατικός αναλυτής κώδικα που έχει κατασκευαστεί για τον σύγχρονο κώδικα Ruby.
Έχω ακόμη βρει έναν ειδικό κώδικα Node.js sniffer, αλλά ελπίζω ότι ένα έργο θα προκύψει με το χρόνο. Υπάρχουν sniffing κώδικα JS που υποστηρίζουν πρότυπα κόμβων, αλλά εξακολουθεί να είναι μια νεότερη γλώσσα backend και απαιτεί χρόνο για να αναπτυχθεί.
Τέλος έχουμε τη σύνταξη SQL για βάσεις δεδομένων. Αυτός ο κώδικας μπορεί να είναι πιο δύσκολος επειδή είναι δύσκολο να βρεθούν καλά υποστηριζόμενα πρότυπα σύνταξης για τον πηγαίο κώδικα SQL. Αλλά βρήκα ένα webapp μορφοποίησης SQL που θα πρέπει να αποδειχθεί εξαιρετικά χρήσιμο όταν βελτιστοποιούν τα ερωτήματα βάσης δεδομένων.
Τύλιξε
Το καλύτερο μέρος για να ξεκινήσετε το sniffing κώδικα είναι με μία γλώσσα και ένα πρότυπο. Το HTML / CSS είναι ένα εύκολο μέρος για να ξεκινήσετε για προγραμματιστές frontend, ενώ η PHP είναι συχνά μια αγαπημένη επιλογή μεταξύ των developers backend (ειδικά WordPress devs).
Και αν θέλετε να μάθετε περισσότερα ελέγξτε αυτές τις σχετικές δημοσιεύσεις σχετικά με τον κώδικα sniffing, linting και την αυτοματοποιημένη ανάλυση κώδικα για βελτιστοποίηση.
- Γιατί χρειάζεστε πρότυπα κωδικοποίησης
- Κωδικός μυρίζει από τον Jeff Atwood
- PHP Code Sniffer: Εγκατάσταση & Διαμόρφωση
- Εισαγωγή στο CodeSniffer (Μέρος 1)
- Παρουσίαση GitHub: Γραμματοκιβώτια καθαρού κώδικα