Ξεκινώντας με την ανάπτυξη ιστού Fullstack
Αυτές τις μέρες, μοντέρνες πλήρη ανάπτυξη στοίβας είναι πολύ δημοφιλής τόσο σε μικρές εταιρείες όσο και σε μεγαλύτερες εταιρείες με ειδική τεχνική ομάδα. Πλήρης στοίβα μηχανικοί ιστού εργάζονται σε μια ολόκληρη στοίβα τεχνολογιών ιστού συμπεριλαμβανομένου του προεντεταμένου, του backend, και διαχείριση διακομιστή.
Πολλοί άνθρωποι υποστηρίζουν ότι η πλήρης στοίβα οδηγεί μόνο στο να είναι ένας "γρύλος όλων των συναλλαγών, κύριος κανένας". Από μια συγκεκριμένη άποψη αυτό μπορεί να είναι αληθινό, ωστόσο η δεξιότητα είναι εξίσου σημαντική με ό, τι μπορεί να επιτευχθεί με αυτήν. Πολλοί full stack devs προσφέρουν αξία επειδή μπορούν να πάρουν μια ιδέα από τη σύλληψη έως την εκτόξευση, και να κατανοήσετε πλήρως κάθε βήμα της διαδικασίας.
Αν σκέφτεστε πηγαίνοντας στη διαδρομή πλήρους στοίβας, τότε αυτό το άρθρο είναι για σας. Θα εξηγήσω τις γενικές απαιτήσεις ενός προγραμματιστή πλήρους στοίβας, τον ρόλο που συνεπάγεται και πώς η ομάδα ικανοτήτων μπορεί να είναι χρήσιμη για τους ελεύθερους επαγγελματίες / εργολάβους που επιθυμούν να εργαστούν άμεσα είτε για τους πελάτες είτε για τα δικά τους έργα.
Βασικές θεμελιώσεις πλήρους στοιβασίας
Η σύγχρονη ανάπτυξη πλήρους στοίβας έχει προχωρήσει πολύ, καθώς η τεχνολογία ιστού έχει αλλάξει πολύ. Απαιτήσεις πλήρους στοίβας θα πρέπει να χρησιμοποιούνται ως κατευθυντήριες γραμμές για να εξεταστεί η συνέχεια. Σε γενικές γραμμές, μια "στοίβα" αντιπροσωπεύει τις τεχνολογίες που λειτουργούν από κοινού για να κάνετε μια εργασία στο διαδίκτυο. Αυτό σημαίνει κωδικό frontend, κώδικα backend, σύστημα βάσης δεδομένων και πλατφόρμα διακομιστή ιστού + λειτουργικό σύστημα για το διακομιστή.
Η βασική αρχή της πλήρους ανάπτυξης στοίβων είναι να κατανοήσουμε όλες τις πτυχές της κατασκευής ενός ιστοτόπου. Αυτό δεν σημαίνει γνώση του σχεδιασμού ή της εργασίας UI / UX, αν και αυτό μπορεί να βελτιώσει σημαντικά τη βιωσιμότητά σας και την ποιότητα της εργασίας σας.
- Οι βασικές αρχές του frontend περιλαμβάνουν HTML / CSS και JavaScript, πιθανότατα με ένα δομή, όπως η γωνιακή ή η αντιδραστική.
- Για μια γλώσσα backend θα θελήσετε να διαλέξετε κάτι που μπορεί να συνδυαστεί με ένα σύστημα βάσης δεδομένων. PHP / MySQL είναι το πιο κοινό και πιο εύκολο να μάθει γιατί εξουσιάζει πολλές μηχανές CMS όπως το WordPress. Επίσης το ΛΑΜΠΑ stack είναι αναμφισβήτητα η πιο δημοφιλής στοίβα web σήμερα.
- Η γνώση του διακομιστή θα μπορούσε να είναι τόσο απλή όσο και λεπτομερής όπως θέλετε. Τα απόλυτα βασικά θα ήταν η γνώση ενός προγράμματος διακομιστή όπως Απάχης σε συνδυασμό με μια βάση δεδομένων όπως MySQL ή PostgreSQL.
- Ενδεχομένως να προχωρήσετε ακόμα περισσότερο στην ενσωμάτωση των γνώσεων σχετικά με την εγκατάσταση διακομιστών αλληλογραφίας ή σε εργαλεία απόδοσης, όπως memcached ή βερνίκι.
Μια πλήρης στοίβα dev θα πρέπει να διαβάζει και στις τρεις περιοχές με αρκετή γνώση ξεκινήστε μια ιστοσελίδα ανεξάρτητα, και χωρίς μεγάλη βοήθεια από κανέναν άλλο.
Τεχνικό βάθος γνώσης
Μια μεγάλη ερώτηση για την ανάπτυξη πλήρους στοίβας είναι πόσο βαθιά μπορείς να μπεις σε κάθε περιοχή. Είναι ένας πλήρης μηχανικός στοίβα πραγματικά κύριος οτιδήποτε; Ορισμένοι υποστηρίζουν ότι είναι δυνατό, αλλά αυτό μπορεί να μην είναι ο σκοπός της πλήρους στοίβας.
Οι περισσότερες εταιρείες θέλουν να προσλάβουν πλήρεις μηχανικούς στοίβας που έχουν κάποιες γνώσεις παντού. Αυτοί οι μηχανικοί μπορεί να ειδικευτούν σε μια περιοχή, αλλά είναι σε θέση να καλύψουν οποιοδήποτε ρόλο όταν χρειάζεται.
Devs που μόλις ξεκινούν αυτή τη διαδρομή πρέπει παιχνίδι γύρω από όλους τους τομείς που μαθαίνουν "αρκετά" για να λύσουν τα προβλήματα που προκύπτουν. Αυτό δίνει μια πραγματική ερμηνεία στις τεχνολογίες για να δούμε πόσο διαφορετικά προβλήματα ισχύουν για πραγματικά έργα.
Το μεγαλύτερο πλεονέκτημα της κωδικοποίησης πλήρους στοίβας είναι η δυνατότητα δημιουργήστε τις δικές σας εφαρμογές χωρίς να εργάζονται για κανέναν άλλον.
Αν μάθετε κάθε στάδιο της διαδικασίας ανάπτυξης, τότε μπορείτε να κάνετε τα πάντα μόνοι σας. Δεν χρειάζεται να είστε κύριος της PHP για να δημιουργήσετε μια προσαρμοσμένη εφαρμογή Laravel. Και δεν χρειάζεται να είστε γκουρού JavaScript για να δημιουργήσετε μια ευέλικτη πλοήγηση dropdown, ειδικά τώρα που διαθέτουμε στον ιστό τόσα πολλά ανοικτά πηγαία κώδικα.
Πόσο βαθύ θα έπρεπε λοιπόν να πάτε σε κάποια από αυτές τις περιοχές; Αυτό εξαρτάται αποκλειστικά από εσάς και η απάντησή σας πιθανότατα θα αλλάξει με την πάροδο του χρόνου.
Αλλά όταν ξεκινήσατε πρώτα, απλά πηγαίνετε αρκετά βαθιά για να εφαρμόσετε όσα έχετε μάθει σε ένα πραγματικό έργο. Όταν χτυπάς σε κάτι που δεν καταλαβαίνεις, χρησιμοποιήστε την ως ευκαιρία για να πάτε βαθύτερα, και μάθετε περισσότερα σχετικά με το συγκεκριμένο θέμα.
Επιλογή Γλωσσών
Είναι λίγο αίνιγμα για τον νέο προγραμματιστή να επιλέξει ποιες τεχνολογίες θα μάθουν. Να πάρει τις ανάγκες από το δρόμο, HTML και CSS είναι απολύτως απαραίτητα. Η JavaScript είναι επίσης μια αναγκαιότητα, αλλά δεν χρειάζεται να θεωρείτε τον εαυτό σας JS Master. Ωστόσο, θα πρέπει να μάθετε περισσότερα από απλά JavaScript.
Οι περισσότεροι devs μαθαίνουν επίσης το jQuery, αλλά πλαίσια όπως το React, το Ember, το Angular, το Vue ή το Backbone προσφέρουν μια απλούστερη διαδικασία για την κατασκευή εφαρμογών ιστού πλήρους κλίμακας.
Είναι δυνατό να βουτήξετε ακόμα βαθύτερη μάθηση φανταχτερά εφέ JavaScript, όπως κινούμενα σχέδια, αλλά είναι εντελώς προαιρετικά. Ένας πλήρης προγραμματιστής στοίβα θα πρέπει να γνωρίζει αρκετά για να κάνει τη δουλειά και να προχωρήσει από εκεί.
Η επιλογή της γλώσσας backend είναι λιγότερο για το τεχνικό πλεονέκτημα και περισσότερο για την άνεση. Οι περισσότεροι προγραμματιστές το συνειδητοποιούν Η Python είναι μια πιο ευέλικτη γλώσσα από την PHP, Ωστόσο, η πλειοψηφία των ιστότοπων τρέχει σε διακομιστές PHP. Αυτό κάνει PHP μια πολύτιμη γλώσσα σε περισσότερες εταιρείες.
Επιλέξτε οποιαδήποτε γλώσσα ταιριάζει στις ανάγκες σας ή σας προσφέρει τις μεγαλύτερες προοπτικές. Έχετε επίσης κατά νου ότι δεν είστε κολλημένοι με μια γλώσσα backend για πάντα. Αν ξεκινήσετε με τον Ruby αλλά αλλάζετε Python, δεν χάνετε τίποτα στη διαδικασία.
Ωστόσο, συνιστώ, όταν βρεθεί μια γλώσσα backend που σας αρέσει, να εμβαθύνετε με αυτή τη γλώσσα, και να πάρει ένα σχετικό πλαίσιο. Η PHP έχει Laravel, Ruby έχει Rails, και Python έχει Django - μεταξύ πολλών άλλων επιλογών. Αυτά τα πλαίσια θα επιταχύνουν τη διαδικασία ανάπτυξης και θα σας βοηθήσουν να διαρθρώσετε σωστά τις εφαρμογές σας.
Βάσεις δεδομένων & διακομιστές
Η επιλογή μιας μηχανής βάσης δεδομένων ακολουθεί τις απαιτήσεις του έργου και τη στοίβα διακομιστών. Η PHP συχνά συνεργάζεται με τη MySQL, γι 'αυτό είναι η πιο προτιμώμενη επιλογή. ο δύο μεγαλύτερες στοίβες ιστού σήμερα είναι ΛΑΜΠΑ (Linux-Apache-MySQL-PHP) και ΣΗΜΑΙΝΩ (MongoDB-ExpressJS-AngularJS-Node.js).
Οι περισσότερες εταιρείες φιλοξενίας προσφέρουν LAMP από την αρχή, χωρίς να απαιτείται εγκατάσταση. Αλλά προσαρμοσμένες λύσεις όπως το Digital Ocean σας επιτρέπουν να τρέχετε σχεδόν οτιδήποτε με λίγη αγκώνα. Μπορείτε να βρείτε περισσότερες στοίβες ιστού σε αυτήν τη λίστα ή αναζητώντας online.
Η βάση δεδομένων της επιλογής σας θα είναι συχνά συνδεδεμένη με τη γλώσσα της ομιλίας σας. Η Python έρχεται με την υποστήριξη SQLite από προεπιλογή, και RoR οι devs μπορούν συνήθως να λειτουργούν με οτιδήποτε. Και ειλικρινά, κάθε γλώσσα μπορεί συνήθως να λειτουργεί με οποιαδήποτε βάση δεδομένων.
Αλλά θέλετε να επιλέξετε κάτι που είναι αρκετά κοινό για να χρησιμοποιήσετε στην πλειοψηφία των web projects. Η SQL είναι μια γενική γλώσσα και χρησιμοποιεί ως επί το πλείστον την ίδια σύνταξη σε όλες τις μηχανές βάσεων δεδομένων. Θα βρείτε διαφορές στη ρύθμιση του πίνακα και τη διαχείριση, αλλά αυτές είναι συνήθως μικρές.
Πέρα από τις βάσεις δεδομένων, μπορείτε να μάθετε ορισμένα τεχνικά θέματα που αφορούν το διακομιστή.
- CDN και φιλοξενία περιεχομένου
- Εγκατάσταση και ενημερώσεις λογισμικού διακομιστή
- Οι καλύτερες παραμέτρους διακομιστή για την αύξηση της κυκλοφορίας και τους χρόνους φόρτωσης
- Λύσεις προσωρινής αποθήκευσης τόσο για ερωτήματα βάσης δεδομένων όσο και για αποθήκευση συστημάτων αρχείων
- Αυτόματη δημιουργία αντιγράφων ασφαλείας βάσεων δεδομένων και επίπεδων αρχείων ή δημιουργίας αντιγράφων ασφαλείας εικόνων δίσκου
- Ρύθμιση HTTPS με διαχείριση τομέα (διακομιστές DNS, εγγραφές CNAME κ.λπ.)
- Λεπτομερέστερα θέματα, όπως το ηλεκτρονικό ταχυδρομείο, οι μικροεπιχειρήσεις και η εξισορρόπηση φορτίου
Ένας από τους καλύτερους τρόπους μάθησης είναι με τους διακομιστές καθώς χτίζετε έργα. Πιάσε ένα βασικό VPS λογαριασμού και προσπαθήστε να ρυθμίσετε τις δικές σας στοίβες. Αυτά τα VPS είναι πλήρη περιβάλλοντα εικονικών διακομιστών όπου έχετε τον πλήρη έλεγχο για να ρυθμίσετε (ή να καταστρέψετε) τα πάντα. Επίσης, η παραπάνω λίστα δεν είναι ένας απαιτούμενος χάρτης πορείας για όλους τους προγραμματιστές πλήρους στοίβα.
Η μόνη γνώση που πραγματικά χρειάζεστε είναι ό, τι απαιτείται για να δημιουργήσετε ένα κενό περιβάλλον διακομιστή και να εγκαταστήσετε το λογισμικό που απαιτείται για την εκτέλεση ενός ιστότοπου. Από εκεί, οτιδήποτε άλλο είναι απλώς βελτιωμένη γνώση. Εάν έχετε ποτέ ερωτήσεις ή θέλετε να μάθετε από επαγγελματίες, ελέγξτε την κοινότητα του Reddit / r / SysAdmin.
Ο δρόμος μπροστά
Εάν θέλετε πραγματικά να μάθετε την πλήρη ανάπτυξη στοίβας, κάντε μια λίστα με όλες τις τεχνολογίες που θέλετε να μάθετε. Από εκεί, μπορείτε να τους αντιμετωπίσετε ένα-ένα -ένα από τα δικά σας προγράμματα πρακτικής για να ελέγξετε τι μαθαίνετε.
Η ανάπτυξη του ιστού είναι μια συνεχώς μεταβαλλόμενη βιομηχανία, οπότε πρέπει πάντα να είστε διατεθειμένοι να μάθετε περισσότερα. Δοκιμάστε διάφορες στοίβες και γλώσσες μέχρι να βρείτε αυτό που σας αρέσει. Αλλά πάντα να είστε πρόθυμοι να πάτε βαθύτεροι και να γίνετε καλύτεροι!
Είναι η πλήρης ανάπτυξη στοίβας αξίζει τον κόπο; Αυτό είναι για εσάς να αποφασίσετε. Αλλά εδώ είναι μερικές σχετικές θέσεις που μπορεί να σας βοηθήσουν να το καταλάβετε.
- Σχετικά με τη νομιμότητα του "Full-Stack" (heapsortjobs.com)
- Έτσι θέλετε να γίνετε πλήρης προγραμματιστής (rubysteps.com)
- 7 Συμβουλές για το πώς να γίνετε πλήρης προγραμματιστής στοίβας (usersnap.com)