Πρότυπα κωδικοποίησης για το WordPress [Οδηγός]
Ο λόγος που έχουμε κώδικα πρότυπα σε όλα (όχι μόνο για WordPress) είναι να δημιουργήστε ένα οικείο περιβάλλον για τους προγραμματιστές εργάζονται σε ένα έργο. Το WordPress περιλαμβάνει συγκεκριμένα μια μεγάλη ποικιλία προϊόντων. Από τον ίδιο τον πυρήνα σε θέματα και plugins, υπάρχουν πολλά που πρέπει να δούμε - και πολλά για να μπερδευτούν.
Εάν όλοι διαμορφώνουν τον κώδικα τους με τον ίδιο τρόπο, χρησιμοποιούν σχόλια, το ίδιο στυλ τεκμηρίωσης και ούτω καθεξής, η συνεργασία γίνεται πολύ πιο εύκολη και η καμπύλη μάθησης για τη συμμετοχή σε ένα νέο έργο δεν θα είναι τόσο απότομη.
Η ανάγκη για συνοχή στο WordPress μεγεθύνεται από την κατάσταση στην οποία είναι ο κώδικας. Το WordPress δεν ακολουθεί αυστηρά αντικειμενοστρεφή προσέγγιση και δεν χρησιμοποιεί πρότυπο MVC. Τα έργα που ακολουθούν τις κατευθυντήριες γραμμές OOP και MVC χωρίς εξαίρεση (όπως το Laravel) έχουν συνέπεια και βέλτιστες πρακτικές “ψημένο στο” λόγω της δομής τους.
Το WordPress είναι δυστυχώς ώριμο για κωδικοποίηση σπαγγέτι, γνωστός και ως κάνοντας ό, τι θέλετε. Οι βέλτιστες πρακτικές είναι δύσκολο να εφαρμοστούν απλά επειδή τα προϊόντα που χρησιμοποιούν κακό κώδικα μπορούν να λειτουργήσουν εξίσου καλά (στην επιφάνεια).
Ακολουθώντας τα πρότυπα κωδικοποίησης WordPress μπορείτε να μάθετε λίγα για το ήθος κωδικοποίησης του WordPress, για να δημιουργήσετε περισσότερα συμβατά με το WordPress προϊόντα. δείξτε την κοινότητα που σας ενδιαφέρει και διαφωνείτε με τον κώδικα υψηλής ποιότητας.
Περισσότερα για το Hongkiat.com:
- 10 χειρότεροι εφιάλτες για προγραμματιστές Web
- 5 λόγοι για τους οποίους το CSS θα μπορούσε να είναι η πιο δύσκολη γλώσσα όλων
- 30 κοινές προγραμματιστές αντιδράσεων έχουν όταν τα πράγματα καταλήγουν σε λάθος
Ορισμένες σημειώσεις σχετικά με τα πρότυπα
Τα πρότυπα δεν καθορίζουν το σωστό και το λάθος. Μπορεί να διαφωνείτε με έναν κανόνα, για παράδειγμα, θα πρέπει πάντα να χρησιμοποιείτε τιράντες, ακόμα και αν δεν χρειάζονται. Ο σκοπός των προτύπων κωδικοποίησης WordPress δεν είναι να αποφασίσετε αν έχετε δίκιο ή λάθος, είναι να αποφασίσετε πώς πρέπει να γίνει στο WordPress.
Τα πρότυπα δεν αποτελούν αντικείμενο συζήτησης. Η χρήση των προτύπων δεν είναι το μέρος για να πάρετε μια στάση ενάντια σε ένα στυλ χαραγής που δεν σας αρέσει. Εάν υπάρχει κάτι στα πρότυπα κωδικοποίησης, τότε το κάνετε έτσι. Οι προγραμματιστές του WordPress θα σας αγαπήσουν γι 'αυτό! Τούτου λεχθέντος, αν δεν συμφωνείτε με κάτι εκεί, αυξάνετε τη φωνή σας και ενημερώνετε τους ανθρώπους. Είναι πάντα δυνατό να κάνουμε καλύτερα τα πράγματα, αλλά θα πρέπει να αλλάξετε μόνο το στυλ κωδικοποίησης αν το επιτρέπουν τα πρότυπα.
Συνέπεια σε σχέση με την πρωκτική συγκράτηση. Εάν βρίσκεστε στο τελευταίο 10% του έργου σας και μόλις ανακαλύψετε ότι χρησιμοποιείτε τη λανθασμένη σύμβαση ονοματοθεσίας για τάξεις, μην μεταβείτε στο μέσο. Κατά την προσωπική μου άποψη, θα ήθελα να διαβάσω κάτι με συνέπεια λανθασμένο από κάτι που είναι μερικές φορές σωστό και μερικές φορές όχι. Μπορείτε πάντα να γράψετε ένα σενάριο για να αλλάξετε τα πράγματα με ένα πάτημα, ή να διαβάσετε τον κωδικό σας στο τέλος.
Η τήρηση των προτύπων είναι δύσκολη! Τοποθετώντας ένα στήριγμα στην ίδια γραμμή με τη λειτουργία αντί της γραμμής που ακολουθεί είναι αρκετά εύκολη, ακόμα κι αν είστε συνηθισμένοι να πατήσετε προηγουμένως. Ωστόσο, όταν πρέπει να σκεφτείτε περίπου 100 μικρούς κανόνες, η όλη διαδικασία γίνεται λίγο επιρρεπής στο σφάλμα. Παρά την σκληρή στάση μου σχετικά με τα ακόλουθα πρότυπα, είμαι τόσο ένοχος όσο και οποιοσδήποτε άλλος που κάνει λάθη. Στο τέλος της ημέρας, η λανθασμένη απόκλιση δεν είναι μια αμετάκλητη αμαρτία. Δοκιμάστε το καλύτερο για να ακολουθήσετε όλους τους κανόνες, θα μάθετε τα πάντα εγκαίρως.
Πρότυπα κωδικοποίησης WordPress
Αυτήν τη στιγμή το WordPress έχει τέσσερις οδηγούς, έναν για κάθε κύρια γλώσσα που χρησιμοποιείται: PHP, HTML, Javascript και CSS. Αποτελούν μέρος ενός μεγαλύτερου σώματος γνώσεων, του Core Contributor Handbook. Πηγαίνοντας από τα πάντα θα χρειαστεί λίγος χρόνος, γι 'αυτό έχω επισημάνει μερικά αποσπάσματα από τις τέσσερις γλώσσες που συχνά βλέπω να κάνουν λάθος οι άνθρωποι.
PHP
Η PHP είναι η κύρια γλώσσα του WordPress και είναι μια πολύ χαλαρά πληκτρολογημένη γλώσσα, η οποία την καθιστά ώριμη για ρύθμιση.
Στυλ Brace
Οι πλάκες εκκίνησης πρέπει πάντα να τοποθετούνται στο τέλος των γραμμών. Σχετικές δηλώσεις πρέπει να τοποθετηθούν στην ίδια γραμμή με το προηγούμενο στήριγμα κλεισίματος. Αυτό αποδεικνύεται καλύτερα με ένα παράδειγμα κώδικα:
αν (προϋπόθεση) // Κάνε κάτι elseif (προϋπόθεση) // Κάνε κάτι άλλο // Κάνε κάτι
Μεγάλη χρήση χώρου
Δεν είμαι οπαδός του τσαλακωμένου κώδικα (έχω κακή όραση) γι 'αυτό είναι αυτό που θέλω ιδιαίτερα να επιβάλω. Τοποθετήστε τα κενά μετά κόμματα, και στις δύο πλευρές του λογικός, σύγκριση, σειρά και εκχωρητές, μετά αν, elseif, Για, για κάθε και διακόπτης δηλώσεις και ούτω καθεξής.
Είναι ευκολότερο να πούμε πού δεν πρέπει να προστεθούν χώροι! Οι μοναδικές φορές που δεν πρέπει να προσθέσετε κενά είναι όταν τύπουcastcasting ή συστοιχίες αναφοράς.
Μια μάλλον συγκεχυμένη εξαίρεση στην εξαίρεση είναι οι πίνακες όπου το το κλειδί πίνακα είναι μια μεταβλητή, σε αυτή την περίπτωση, χρησιμοποιήστε ένα κενό. Αυτό το παράδειγμα θα πρέπει να το καταστήσει σαφές:
($ full_array = null, $ key_1 = 4, $ key_2 = 'bar') if null == $ complete_array) $ final_array = $ complete_array; else $ key_1 = (ακέραιο) $ κλειδί_1; $ final_array [0] = 'αυτό'; $ final_array [$ key_1] = 'είναι'; $ final_array [$ key_2] = 'ένα'; $ final_array ['last'] = 'παράδειγμα'; επιστροφή $ final_array;
Συμβάσεις ονοματολογίας
Αυτός μπορεί να είναι δύσκολος για να συνηθίσετε, ειδικά αν προέρχεστε από διαφορετικά περιβάλλοντα. Με λίγα λόγια:
- Μεταβλητά ονόματα πρέπει να είναι όλα τα πεζά, λέξεις που χωρίζονται με υπογράμμιση
- Ονόματα κλάσεων πρέπει να χρησιμοποιούν κεφαλαιοποιημένες λέξεις διαχωρίζονται με υπογράμμιση. Ακρωνύμια πρέπει να είναι όλα κεφαλαία
- Σταθερά πρέπει να είναι όλα τα κεφαλαία, με την υπογράμμιση
- Ονόματα αρχείων πρέπει να είναι όλα τα πεζά, χωρισμένα με παύλες
Συνθήκες Yoda
Η σύνταξη συνθηκών με τον άλλο τρόπο από ό, τι συνηθίζετε θα αποτρέψει τα σφάλματα ανάλυσης. Φαίνεται λίγο περίεργο αλλά είναι καλύτερο κώδικα.
αν ('Daniel' === $ name) echo 'Γράψτε άρθρο που θα';
HTML
Το HTML δεν έχει πολλούς κανόνες που συνδέονται με αυτό, θα μπορούσα να βρω αρκετά για να καταστήσω τα πράγματα πιο αρθρωτά. Υπάρχουν μόνο πέντε κανόνες που πρέπει να γνωρίζετε κατά την εγγραφή HTML:
- Ο κωδικός σας πρέπει να επικυρωθεί έναντι του W3C validator.
- Οι αυτοκόλλητες ετικέτες HTML πρέπει να έχουν ακριβώς ένα χώρο πριν από την εμπρός κάθετο (αυτό είναι το πρόσωπο που μισώ προσωπικά, αλλά είναι μια προδιαγραφή του W3C, όχι μόνο ένα WordPress pet peeve)
- Τα χαρακτηριστικά και οι ετικέτες πρέπει να είναι πεζά. Η μόνη εξαίρεση είναι όταν οι τιμές χαρακτηριστικών προορίζονται για κατανάλωση από τον άνθρωπο, οπότε θα πρέπει να πληκτρολογηθούν φυσικά.
- Όλα τα χαρακτηριστικά πρέπει να έχουν μια τιμή και πρέπει να αναφέρονται (γράφοντας
δεν είναι σωστό)
- Η εσοχή θα πρέπει να επιτυγχάνεται με χρήση καρτελών και θα πρέπει να ακολουθεί λογική δομή.
CSS
Το CSS είναι μια άλλη χαλαρά πληκτρολογημένη γλώσσα, οπότε υπάρχει μεγάλη δουλειά και εδώ. Παρόλα αυτά, τα πρότυπα καθίστανται αρκετά εύκολες στους κωδικοποιητές.
Επιλογείς
Οι επιλογείς θα πρέπει να είναι εξειδικευμένοι όσο χρειάζεται, να είναι αναγνώσιμοι από άνθρωπο, να είναι πεζά με λέξεις που χωρίζονται με παύλες και οι επιλογείς των χαρακτηριστικών πρέπει να χρησιμοποιούν διπλά εισαγωγικά. Ακολουθεί ένα σύντομο παράδειγμα:
εισαγωγή [type = "text"], εισαγωγή [type = "password"], .name-field background: # f1f1f1;
Ταξινόμηση Ακινήτων
Τα πρότυπα αναγνωρίζουν την ανάγκη για κάποιο προσωπικό χώρο, καθώς δεν προδιαγράφουν συγκεκριμένη εντολή για τους κανόνες CSS. Τι αυτοί κάνω είναι ότι πρέπει να ακολουθήσετε μια σημασιολογική δομή που βγάζει νόημα. Ομαδοποιήστε τις ιδιότητες από τις σχέσεις τους ή τις ομαδοποιήστε αλφαβητικά, απλά μην τις γράψετε τυχαία.
Η μεγαλύτερη αιτία τυχαίας είναι η “oh Πρέπει επίσης να προσθέσω ένα περιθώριο” και έπειτα συνεχίζουμε να το προσθέτουμε στο κάτω μέρος. Πάρτε τα επιπλέον .3 δευτερόλεπτα και προσθέστε τον κανόνα στη λογική θέση.
- Απεικόνιση
- Θέση
- Μοντέλο κουτιού
- Χρώματα και τυπογραφία
- Αλλα
.προφίλ-τρόπων εμφάνιση: μπλοκ; θέση: απόλυτη; αριστερά: 100px; κορυφή: 90px; background: # ff9900; χρώμα: #fff;
Μορφοποίηση τιμής
Αυτό είναι ένα μέρος όπου ιδιαίτερα μισώ να βλέπω ασυνέπειες. Αν δεν ακολουθήσετε τις οδηγίες, αυτό είναι ακόμα καλύτερο από ότι μερικές φορές βλέπουμε ένα διάστημα πριν από την αξία? μερικές φορές χρησιμοποιώντας στενογραφία, μερικές φορές όχι? μερικές φορές χρησιμοποιώντας μονάδες σε τιμές 0, μερικές φορές όχι, κλπ.
Η μορφοποίηση τιμής είναι αρκετά περίπλοκη, αλλά έρχεται φυσικά με κάποια πρακτική. Ρίξτε μια ματιά στον ακριβή οδηγό του Codex για τη μορφοποίηση των τιμών σας.
Javascript
Κατά την εμπειρία μου το Javascript είναι πιο επιρρεπές στο να πάει σε όλο τον χώρο. Ενώ πολλοί προγραμματιστές γνωρίζουν ένα σημαντικό ποσό Javascript, μαθαίνεται σταδιακά, ως μια επιπλέον σκέψη για HTML, CSS και PHP. Όταν ξεκινάτε απλά με μια νέα γλώσσα, κάνετε πολλά περισσότερα λάθη και αν τα λάθη αυτά δεν προκαλούν θανατηφόρα λάθη, μπορούν να γίνουν ριζωμένα σε σας.
Σε πολλές περιπτώσεις τα πρότυπα αναφέρονται σε όριο ή κατάσταση γραμμής “αν μια γραμμή δεν είναι πολύ μεγάλη”. Αυτό αναφέρεται στον οδηγό στυλ jQuery που επιβάλλει ένα Όριο 100 χαρακτήρων στις γραμμές. Ο οδηγός WordPress βασίζεται στον οδηγό jQuery, οπότε είναι καλή ιδέα να δοθεί και αυτή μια ανάγνωση.
Μεσημβρινούς
Αυτός είναι ο απλούστερος κανόνας, αλλά είναι αυτός που συχνά παραβλέπεται. Ποτέ, ποτέ, παραλείψτε ένα ερωτηματικό μόνο και μόνο επειδή ο κωδικός σας θα λειτουργήσει χωρίς αυτό. Είναι απλώς πλαστά.
Εσοχή
Οι καρτέλες θα πρέπει πάντα να χρησιμοποιούνται για εσοχές. Θα πρέπει επίσης να περιγράψετε τα περιεχόμενα ενός κλεισίματος ακόμα και αν το περιεχόμενο ενός ολόκληρου αρχείου περιέχεται σε ένα. Δεν είμαι σίγουρος για ποιο λόγο, αλλά το αδιάφορο κλείσιμο του ανώτατου επιπέδου μου προειδοποίησε πριν καν διαβάσω τα πρότυπα.
Γραμμές διακοπής
Όταν σπάζετε μεγάλες χορδές, πάντα σπάστε τη γραμμή μετά από έναν χειριστή, μην αφήνετε μια μεταβλητή να κρέμεται. Αυτό κάνει προφανές με την πρώτη ματιά ότι η γραμμή είναι σπασμένη και δεν έχετε ξεχάσει ακριβώς ένα ερωτηματικό.
Επίσης, αν μια κατάσταση είναι μεγάλη, σπάστε την σε πολλές γραμμές και προσθέστε μια επιπλέον καρτέλα πριν από αυτήν. Αυτό φαίνεται πολύ περίεργο στα μάτια μου, αλλά ο διαχωρισμός που προσθέτει μεταξύ της κατάστασης και του σώματος είναι πολύ ορατός.
if (firstCondition () && secondCondition () && thirdCondition ()) var html = 'Αυτή η γραμμή αποτελείται από λέξεις' + n + ', οπότε θα πρέπει να κατανεμηθεί μετά από' + '
jQuery επανάληψη
Σύμφωνα με την πρότυπη jQuery επανάληψη (jQuery.each ())
θα πρέπει να χρησιμοποιείται μόνο σε αντικείμενα jQuery. Θα πρέπει να χρησιμοποιήσετε βασικές Για, για μεσα, ενώ βρόχους σε Javascript για την αλλαγή σε άλλες συλλογές.
συμπέρασμα
Υπάρχουν πολλά που πρέπει να σημειώσετε και να παρακολουθήσετε και δεν υπάρχει κανένας τρόπος που κάποιος μπορεί να εφαρμόσει όλα αυτά με μία κίνηση. Θα πρέπει να πάρετε τον κωδικό σας όσο το δυνατόν πιο κοντά στα πρότυπα και να εργαστείτε για να τα ακολουθήσετε επακριβώς.
Κατά τη γνώμη μου η συνέπεια είναι ο πιο σημαντικός κανόνας. Είναι προτιμότερο να κάνετε κάτι με λάθος τρόπο από το να μεταβείτε στη μέση. Αυτό ισχύει ιδιαίτερα για τις πρακτικές μορφοποίησης, αφού αυτές δεν επηρεάζουν τη λειτουργικότητα του κώδικα και - ως επί το πλείστον - μπορεί εύκολα να αλλάξει παρτίδα αργότερα.
Μισείτε ένα στοιχείο των προτύπων κωδικοποίησης, νομίζετε ότι πρέπει να προστεθεί κάτι; Ενημερώστε μας στα σχόλια!