Τι είναι το boilerplate και γιατί το χρησιμοποιούμε; Αναγκαιότητα οδηγού στυλ κωδικοποίησης

Στην Πληροφορική, ένα boilerplate είναι μια μονάδα γραφής που μπορεί να επαναχρησιμοποιηθεί ξανά και ξανά χωρίς αλλαγή. Κατ 'επέκταση, η ιδέα εφαρμόζεται μερικές φορές στον επαναχρησιμοποιήσιμο προγραμματισμό, όπως στον «boilerplate code».

Οι νομικές συμφωνίες, συμπεριλαμβανομένων όρων και προϋποθέσεων λογισμικού και υλικού, κάνουν άφθονη χρήση πλακών boiler.

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

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

Για παράδειγμα, στην ανάπτυξη ιστού, το απλό boilerplate για HTML θα μοιάζει με αυτό:

Hello world! This is HTML5 Boilerplate.

Μπορείτε να δείτε ολόκληρο το αποθετήριο εδώ:

h5bp / html5-boilerplate

html5-boilerplate - Ένα επαγγελματικό πρότυπο front-end για τη δημιουργία γρήγορων, ισχυρών και προσαρμόσιμων εφαρμογών ιστού ή ιστότοπων. github.com

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

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

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

Αυτό δεν περιορίζεται μόνο στην ανάπτυξη ιστού. Χρησιμοποιείται πέρα ​​από το AI / ML καθώς υπάρχουν περισσότερα αναπτυσσόμενα πλαίσια και βιβλιοθήκες.

Απαραίτητα χαρακτηριστικά της πλάκας boiler για μεγάλα έργα (έτοιμη για παραγωγή)

  • Καλή και αναγνώσιμη τεκμηρίωση;
  • Δομή κώδικα με βαθύτερο επίπεδο αφαίρεσης
  • Ακολουθεί το σωστό πρότυπο κωδικοποίησης
  • Διαθέτει εργαλείο CLI (για γρήγορο πρωτότυπο και ρύθμιση)
  • Κλιμακούμενος ?
  • Εύκολα εργαλεία δοκιμών
  • Απαραίτητες ενότητες API
  • Υποστήριξη για διεθνοποίηση και τοπική προσαρμογή;
  • Διαχωρισμός κώδικα
  • Κωδικός διακομιστή και πελάτη για ρύθμιση
  • Σωστή πλοήγηση και δομή δρομολόγησης;

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

Υπάρχουν μερικές μεγάλες εταιρείες τεχνολογίας που κατασκευάζουν ακόμη και το δικό τους boilerplate. Το χρησιμοποιούν για αντίστοιχα και παρόμοια έργα καθ 'όλη τη διάρκεια του χρόνου.

Ένα τέλειο παράδειγμα για αυτό θα ήταν το boilerplate react.js:

αντιδραστήρα αντίδρασης / αντλία λέβητα αντίδρασης

react-boilerplate -: fire: Ένα εξαιρετικά επεκτάσιμο, χωρίς σύνδεση πρώτο θεμέλιο με την καλύτερη εμπειρία προγραμματιστή και εστίαση… github.com

Πλάκα Boiler για μικρότερα έργα (Σκαλωσιές)

Αυτοί οι τύποι πλακών λέβητα είναι γενικά είδος "Κιτ εκκίνησης" ή με επαγγελματικό τρόπο ονομάζεται "Σκαλωσιές". Οι κύριοι χρήστες στόχου τους είναι αρχάριοι προγραμματιστές ή νέοι πρώτοι υιοθέτες.

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

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

Το απλούστερο παράδειγμα είναι το boilerplate της εφαρμογής-react-app του Facebook:

facebookincubator / create-react-app

create-react-app - Δημιουργία εφαρμογών React χωρίς διαμόρφωση build. github.com

Ποια είναι η διαφορά μεταξύ μιας λέβητας και ενός προτύπου;

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

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

Σε αντίθεση με τα boilerplates, τα πρότυπα είναι προσαρμοσμένα για συγκεκριμένη χρήση. Το πρόβλημα προέκυψε όταν οι μαθητές χρησιμοποίησαν πρότυπα Word για τα βιογραφικά τους και όλοι κατέληξαν να φαίνονται το ίδιο.

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

Οδηγός στυλ για τη σύνταξη κώδικα

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

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

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

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

Αυτές είναι μερικές κοινές συζητήσεις όπως: Tabs v Spaces Holy war , επιλέγοντας τον τέλειο κώδικα IDE και ούτω καθεξής. Το ενδιαφέρον είναι ότι μπορείτε να εμπλακείτε σε αυτές τις συζητήσεις που συμβαίνουν κυρίως στο Reddit . Μπορείτε επίσης να συμμετάσχετε σε μερικές από τις ερωτήσεις ερωτήσεων στο stackoverflow .

Για προγραμματιστές ιστού, ο πιο κοινός οδηγός στυλ για το JS είναι ο οδηγός στυλ javascript της Airbnb. Είναι ανοιχτού κώδικα και όλοι μπορούν να συνεισφέρουν.

airbnb / javascript

javascript - Οδηγός στυλ JavaScript github.com

Εάν κάποιος αμφιβάλλει για το γιατί το Javascript χρειάζεται έναν οδηγό στυλ, διαβάστε τη δεύτερη απάντηση αυτού του τεύχους από τον Harrison Shoff, ο οποίος είναι προγραμματιστής της Airbnb .

Γιατί η JavaScript χρειάζεται έναν οδηγό στυλ; · Τεύχος # 102 · airbnb / javascript

Ένα από τα αγαπημένα μου μέρη για την κοινότητα JavaScript είναι ότι οι άνθρωποι επιλέγουν να το γράψουν με πολλούς διαφορετικούς τρόπους… github.com

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

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

Java: Μορφή Google-Java

Τυπικό στυλ Javascript (διαφορετικό από το javascript του airbnb)

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

Python: YAPF της Google

Ruby: Rubocop

Περισσότερα από το Boilerplate: Concept για OOP

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

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

Για παράδειγμα, στην ακόλουθη κλάση Java που αντιπροσωπεύει ένα κατοικίδιο, σχεδόν ολόκληρος ο κωδικός είναι boilerplate εκτός από τις δηλώσεις του Pet , του ονόματος και του κατόχου :

public class Pet { private String name; private Person owner;
public Pet(String name, Person owner) { this.name = name; this.owner = owner; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Person getOwner() { return owner; }
public void setOwner(Person owner) { this.owner = owner; }}

Ο ορισμός του Boilerplate γίνεται πλέον παγκόσμιος σε πολλές άλλες γλώσσες προγραμματισμού στις μέρες μας. Προέρχεται από OOP και υβριδικές γλώσσες που κάποτε ήταν διαδικαστικές αλλά έγιναν OOP. Τώρα έχουν τον ίδιο στόχο να επαναλάβουν τον κώδικα που δημιουργείτε με ένα μοντέλο / πρότυπο / κλάση / αντικείμενο, οπότε υιοθετούν αυτόν τον όρο. Δημιουργείτε ένα πρότυπο και τα μόνα πράγματα που κάνετε για κάθε παρουσία ενός προτύπου είναι οι μεμονωμένες παράμετροι.

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

Boilerplate ως API

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

συμπέρασμα

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

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

Οποιοσδήποτε τύπος ανατροφοδότησης θα εκτιμηθεί! Πήγαινε!