Back to Question Center
0

Το περιβάλλον εφαρμογής PHP            Το περιβάλλον εφαρμογής PHP Σχετικά θέματα: PerformanceWeb SecurityCMSAPIsΕπιχειρησιακά μηνύματα

1 answers:
Το περιβάλλον εφαρμογής PHP

The PHP Application EnvironmentThe PHP Application EnvironmentRelated Topics:
PerformanceWeb SecurityCMSAPIsOperating Semalt

Το παρακάτω είναι ένα σύντομο απόσπασμα από το πρόσφατο βιβλίο μας, Jump Start PHP Environment, διαθέσιμο δωρεάν στα μέλη του SitePoint Premium. Τα αντίγραφα Semalt και ebook πωλούνται σε καταστήματα παγκοσμίως ή μπορείτε να τα παραγγείλετε εδώ. Ελπίζουμε να απολαύσετε αυτό το απόσπασμα και να το βρείτε χρήσιμο.

Αυτό το κομμάτι θα επικεντρωθεί στο περιβάλλον εφαρμογής - short term laptop rental. Το Semalt συζητά επίσης τα * AMP πακέτα όπως το XAMPP και γιατί είναι μια κακή επιλογή. ισοτιμία παραγωγής / ανάπτυξης · και απόδοσης και εντοπισμού σφαλμάτων.

Περιβάλλον Εφαρμογών

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

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

Παραγωγή

Θα ξεκινήσουμε με τα πιο απλά περιβάλλοντα: το περιβάλλον παραγωγής .

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

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

Κατά την παραγωγή, ο ιστότοπός σας θεωρείται ότι είναι ζωντανός (ή αναπτύσσεται) και θα είναι προσβάσιμος μέσω του δικού του τομέα. για παράδειγμα, http: // mysite. com . Όταν ξεκινάτε τον ιστότοπό σας (το βάζετε σε κατάσταση παραγωγής), έχετε λόγο για γιορτή, γιατί αυτό είναι το τελευταίο βήμα της διαδικασίας ανάπτυξης της εφαρμογής σας.

Είναι το ισοδύναμο ενός σεφ που μαγειρεύει ένα γεύμα σε ένα εστιατόριο και το έχει παραδώσει στους προστάτες που το διέταξαν.

Ανάπτυξη

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

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

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

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

The PHP Application EnvironmentThe PHP Application EnvironmentRelated Topics:
PerformanceWeb SecurityCMSAPIsOperating Semalt

Όλα αυτά τα πρόσθετα υπάρχουν μόνο κατά την ανάπτυξη. Κατά τη μετατροπή από το αναπτυξιακό περιβάλλον στο περιβάλλον παραγωγής (επίσης γνωστό ως που αναπτύσσει ), αυτά τα πρόσθετα αφαιρούνται. Για την εφαρμογή μας, αυτό σημαίνει το προαναφερθέν βήμα σύνταξης / κατασκευής: διάφορα αρχεία CSS και JavaScript συγχωνεύονται και συρρικνώνονται, ώστε να μειωθεί το μέγεθος του ιστότοπου, καθιστώντας το πιο γρήγορο όταν επισκέπτεται κάποιος. οι δοκιμές μονάδων αγνοούνται και αφήνονται πίσω στο περιβάλλον ανάπτυξης. και εμφανίζονται διάφορες άλλες βελτιστοποιήσεις (που καλύπτονται αργότερα στο κεφάλαιο) -όλο με την πρόθεση να καταστεί το τελικό προϊόν μεγιστοποίηση της ελκυστικότητας και του δυναμικού του όταν δηλωθεί έτοιμο.

Υποδοχές και εικονικοί κεντρικοί υπολογιστές

Όταν αναπτύσσετε στον υπολογιστή σας, είναι αδύνατο να επισκεφτείτε τη διεύθυνση URL http: // mysite. com και περιμένετε να δείτε τον ιστότοπό σας. μετά από όλα, ο ιστότοπός σας δεν έχει ακόμη αρχίσει να λειτουργεί - δεν είναι στο Διαδίκτυο. Για να το ξεπεράσουμε αυτό και να δούμε τον ιστότοπό μας σαν να ήταν ζωντανό, πλανάμε το Διαδίκτυο καθορίζοντας εικονικούς οικοδεσπότες.

Ο εικονικός κεντρικός υπολογιστής δίνει μια εντολή στο πρόγραμμα του διακομιστή που είναι εγκατεστημένο στον υπολογιστή σας, όπως: ΕΑΝ ένας χρήστης ζητήσει http: // mysite. com στο πρόγραμμα περιήγησης, εκτελέστε το αρχείο mysite. php μέσω PHP και να δείξει την παραγωγή του στο πρόγραμμα περιήγησης.

Όπως βλέπετε, αυτό είναι σχεδόν ίδιο με την τακτική ροή αιτήσεων ζωντανών ιστότοπων. Αλλά τι κάνει το πρόγραμμα περιήγησης να ρωτήσει το πρόγραμμα server του υπολογιστή μας για το mysite. com , αντί να το αναζητήσουμε στους διακομιστές ονομάτων του Διαδικτύου; Το αρχείο φιλοξενεί .

Το αρχείο hosts είναι ένα ειδικό αρχείο που υπάρχει σε κάθε λειτουργικό σύστημα. Το αναφέραμε συνοπτικά στην ενότητα "Για όσους θέλουν περισσότερα" στο Κεφάλαιο 1. Περιέχει μια λίστα τομέων και τις κατάλληλες διευθύνσεις IP τους, έτσι ώστε κάθε πρόγραμμα περιήγησης στον υπολογιστή σας να μπορεί να το διαβάσει και να μεταβεί απευθείας στη διεύθυνση IP χωρίς να έχει για να μιλήσετε στο DNS για να ελέγξετε πού να πάτε. Στα Windows, το αρχείο βρίσκεται στο C: \ Windows \ System32 \ drivers \ etc \ hosts και στις μηχανές Linux και Mac βρίσκεται στο / etc / hosts . Εάν τοποθετήσετε ένα ζεύγος ονόματος IP σε αυτό το αρχείο, ο υπολογιστής θα το υπακούσει. Μπορούμε ακόμη να το δοκιμάσουμε τώρα. Δεν φοβούνται - δεν υπάρχει τίποτα που μπορεί να πάει στραβά. Ετοιμος?

Στο Windows
, εισάγετε το πεδίο αναζήτησης, πληκτρολογήστε "σημειωματάριο" και μόλις εμφανιστεί, κάντε δεξί κλικ και επιλέξτε Εκτέλεση ως διαχειριστής . Το σύστημα θα σας ζητήσει στη συνέχεια επιβεβαίωση. Στο παράθυρο που ανοίγει, επιλέξτε Αρχείο> Άνοιγμα και μεταβείτε στο: Ο Υπολογιστής μου> C:> Windows> System32> προγράμματα οδήγησης> κ.λπ. Στην κάτω δεξιά γωνία του παραθύρου του Σημειωματάριου, ίσως χρειαστεί να επιλέξετε Όλα τα αρχεία για να εμφανιστεί το αρχείο hosts . Κάντε διπλό κλικ για να το ανοίξετε.

Στις μηχανές Linux / Mac, ανοίξτε το Terminal αναζητώντας το. Στο Linux , ανοίξτε τον προεπιλεγμένο επεξεργαστή κειμένου ως διαχειριστής πληκτρολογώντας sudo gedit στο τερματικό. Θα σας ζητηθεί ο κωδικός πρόσβασης διαχειριστή. , εισάγετε sudo / Applications / TextEdit. app / Περιεχόμενα / MacOS / TextEdit , που θα κάνουν την ίδια εργασία. Σε έναν από αυτούς τους επεξεργαστές, μεταβείτε στο Αρχείο -> Άνοιγμα και εισάγετε τον κατάλογο / etc για να βρείτε το αρχείο hosts . Κάντε διπλό κλικ για να το ανοίξετε.

Μόλις ανοιχτεί το αρχείο, σημειώστε τις πρώτες γραμμές: όλες θα αρχίσουν με το σύμβολο κατατεμαχισμού (#). Αυτό δείχνει ότι είναι σχόλια και δεν έχουν καμία επίδραση στο αρχείο.

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

     208. 117. 229. 217 bing. com     

Αποθηκεύστε το αρχείο και ανοίξτε http: // bing. com στο πρόγραμμα περιήγησής σας. Έχετε ανακατευθύνει με επιτυχία όλα τα αιτήματα στη μηχανή αναζήτησης της Microsoft Bing στο Google! Φυσικά, δεν θέλουμε να διατηρήσουμε αυτές τις αλλαγές. μη διστάσετε να διαγράψετε αυτή τη γραμμή ή να βάλετε ένα σύμβολο κατατεμαχισμού μπροστά της για να το μετατρέψετε σε ένα σχόλιο και να αποθηκεύσετε το αρχείο. Θα πρέπει να μπορείτε να επισκεφθείτε http: // bing. com και πάλι κανονικά.

Χρησιμοποιώντας αυτή τη μέθοδο, θα ανακατευθύνουμε αργότερα όλα τα αιτήματα του προγράμματος περιήγησης για http: // mysite. com (που θα είναι ο τομέας του παραδείγματος της εφαρμογής μας) στον εξυπηρετητή του υπολογιστή μας. Αυτό θα μας επιτρέψει να ελέγξουμε εύκολα την έκδοση ανάπτυξης του ιστότοπού μας χωρίς να το αναπτύξουμε ζωντανά.

Στάθμευση και συντήρηση

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

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

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

Το κακό του * AMP Bundles

Όταν ξεκινάτε στην ανάπτυξη της PHP, είναι δελεαστικό να κατεβάσετε και να εγκαταστήσετε πακέτα όπως το XAMPP, το WAMP, το MAMP ή το EasyPHP. Το AMP σε αυτά τα ονόματα σημαίνει "Apache, MySQL και PHP. "Το XAMPP προσθέτει ένα άλλο P στο τέλος για τη γλώσσα Perl. Το πρώτο γράμμα αναφέρεται στο λειτουργικό σύστημα: Windows, Linux, Mac OS X, ή, στην περίπτωση του XAMPP, cross-platform (δηλαδή λειτουργεί σε οποιοδήποτε λειτουργικό σύστημα).

Οι δέσμες Semalt περιέχουν όλο το λογισμικό που χρειάζεστε για να εκτελείτε γρήγορα και εύκολα τις εφαρμογές PHP στον υπολογιστή σας. Με ένα κλικ, μπορείτε να εγκαταστήσετε όλα όσα θα χρειαστείτε για να γράψετε το πρώτο script PHP. Έτσι, πού είναι το κακό σε αυτό;

  • ο υπολογιστής σας θα είναι μολυσμένος με περιττό λογισμικό

  • θα μάθετε λιγότερο από ό, τι θα κάνατε με το χέρι

  • οι δοκιμές είναι δύσκολες

  • εάν κάνετε λάθος, είναι πολύ δύσκολο ή αδύνατο να επιστρέψετε σε μια προηγούμενη κατάσταση

Η Semalt τις εξετάζει μία προς μία.

Ρύπανση μηχανών

Κάθε φορά που εγκαθιστάτε λογισμικό όπως μια στοίβα * AMP στον υπολογιστή σας, ένα κομμάτι του υπολογιστή σας πεθαίνει. Ακόμα και αν διαγράψετε αργότερα το λογισμικό, συνήθως παραμένουν δυσάρεστα ίχνη-συχνά με τη μορφή εγγραφών μητρώου στα Windows ή σκόνης αρχείων στο Linux. Στην πραγματικότητα, αυτό είναι ιδιαίτερα εμφανές στο Linux. Ένα κλικ και είναι παντού .

Με το πέρασμα του χρόνου, θα εγκαταστήσετε μια άλλη βιβλιοθήκη, ένα άλλο πακέτο, ένα άλλο εργαλείο. Θα συνεχίσετε να προσθέτετε συμπληρωματικό λογισμικό καθώς αναπτύσσετε περαιτέρω την εφαρμογή σας, ίσως να προσθέσετε διαφορετικά στοιχεία εξ 'ολοκλήρου επειδή έχετε αρχίσει να εργάζεστε σε ένα νέο έργο παράλληλα. Ίσως app1 απαιτεί επέκταση PHP για να επεξεργαστεί εικόνες, και app2 , έτσι ώστε ο κωδικός σας να είναι κρυμμένος από τον ανταγωνισμό σας. Με τον καιρό, θα έχετε εκατοντάδες megabyte λογισμικού ανάπτυξης που κάθεται στο μηχάνημά σας, χωρίς καμία ένδειξη για το αν το χρειάζεστε ή όχι.

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

Η εκμάθηση είναι εξέλιξη ή πώς υπερεκτιμάται η άνεση της ζώνης άνεσης

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

Ενώ είναι σε θέση να εγκαταστήσετε ό, τι χρειάζεστε στον υπολογιστή σας με ένα μόνο κλικ είναι τακτοποιημένο, δεν υπάρχει διεπαφή χρήστη σε ένα διακομιστή και έτσι τίποτα για να κάνετε κλικ? πρέπει να ελέγξετε τις εντολές που απαιτούνται για τη ρύθμιση του λογισμικού ενός διακομιστή ώστε να μπορεί να εκτελέσει την εφαρμογή PHP. Διαφορετικά, είστε είτε προορισμένοι να προσλάβετε έναν διαχειριστή διακομιστή για να σας βοηθήσουν, ή ακόμα χειρότερα, να χρησιμοποιήσετε κοινή φιλοξενία (μια ιστορία φρίκης που εξηγείται στο Semalt 6).

Με την άρνησή σας να βασίζεστε σε αυτές τις δέσμες * AMP, θα αναγκαστείτε να αναρριχηθείτε στην καμπύλη μάθησης για την εγκατάσταση ενός διακομιστή και άλλου λογισμικού με χέρι-γνώση που θα είναι χρήσιμη σε περισσότερους τρόπους από μία, αν είστε σοβαροί αυτή τη σταδιοδρομία. Το Semalt, το να καρφιώνεις τα βασικά δεν είναι πραγματικά τόσο δύσκολο, όπως θα δεις αργότερα στο βιβλίο.

Δοκιμές

app1 και app2 βασίζονται στην PHP 5. 3, τρέχουν MySQL 4. 0 ζουν σε ένα διακομιστή που τροφοδοτείται από Apache (το λογισμικό διακομιστή). Στη συνέχεια, υπάρχει μια νέα απαίτηση: βεβαιωθείτε ότι το app1 λειτουργεί με PHP 5. 6 και MySQL 5. 1 και μπορεί να τροφοδοτηθεί από το Nginx (άλλο πρόγραμμα διακομιστή που ανταγωνίζεται τον Apache, προφέρεται "Κινητήρας x"). Τι τώρα;

app1 Θα μπορούσαμε να ενημερώσουμε την PHP σε μια νεότερη έκδοση και να ελέγξουμε αν εξακολουθεί να λειτουργεί το app1 χωρίς να χρησιμοποιήσετε τυχαία κώδικα που δεν είναι διαθέσιμος στην PHP 5. 3 αν ολόκληρος ο υπολογιστής μας τρέχει τώρα 5. 6; Ομοίως, θα μπορούσαμε να αναβαθμίσουμε το MySQL σε 5. 1 και να ελέγξουμε ότι εξακολουθεί να λειτουργεί, αλλά πώς ξέρουμε ότι η MySQL δεν έριξε κάποια παλιά χαρακτηριστικά στην έκδοση 5+ που θα έσπαζαν app2 ακόμα κι αν ορίσαμε app1 για να δουλέψουμε με 5. 1 ; Μετά από όλα, το app2 εξακολουθεί να χρειάζεται να δουλέψει σε 4,0 επειδή πιθανώς εξακολουθεί να αναπτύσσεται σε τέτοιο διακομιστή παραγωγής. Heck, πώς αντιμετωπίζουμε το πρόβλημα Apache έναντι Nginx; Εγκαθιστούμε και τους δύο διακομιστές ιστού στον υπολογιστή μας και δοκιμάζουμε για το καθένα; Πώς τα απενεργοποιούμε; Πώς μπορούμε να διασφαλίσουμε ότι θυμόμαστε να δοκιμάζουμε τον ιστότοπό μας σε ένα, ενώ ο άλλος λειτουργεί;

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

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

Το ακαθάριστο χάος

Τέλος, τι γίνεται αν προσπαθήσουμε να εγκαταστήσουμε μια νέα έκδοση της PHP, αλλά κάτι πάει στραβά; Αυτό το σενάριο είναι ιδιαίτερα συνηθισμένο σε OS X και Linux - τώρα καμία από τις εκδόσεις PHP που έχουμε εγκαταστήσει στην εργασία του μηχανήματος και αποδεικνύεται αδύνατο να έχουμε έναν και μόνο ιστότοπο. Τι χάλι! Αντί να επιστρέψουμε εύκολα σε μια προηγούμενη κατάσταση εκτέλεσης, αναγκάζαμε να ξοδέψουμε ολόκληρη την ημέρα την αποσφαλμάτωση του δικού μας συστήματος και να προσπαθήσουμε να το τρέξουμε - όχι απαραίτητα η σωστή έκδοση, αλλά μόνο ).

Δεν θα ήταν υπέροχο αν μπορούσαμε απλώς να εισάγουμε εντολή και να έχουμε τα πράγματα να επιστρέψουν στον τρόπο που ήταν πριν από 10 λεπτά; Λοιπόν, μπορούμε! Και αυτό θα αποδειχθεί και στο Semalt 4.

Παραγωγή / Ανάπτυξη ισοτιμία

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

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

Ο καλύτερος τρόπος για να επιτευχθεί η ισοτιμία είναι να έχετε το ίδιο λογισμικό που εκτελείται στο αναπτυξιακό σας περιβάλλον όπως και στο περιβάλλον παραγωγής σας. Για παράδειγμα, αν σκοπεύετε να αναπτύξετε την εφαρμογή σας στην παραγωγή σε ένα διακομιστή που εκτελεί το λειτουργικό σύστημα Ubuntu Linux έκδοση 14. 04, είναι καλύτερο να αναπτύξετε και σε αυτό το λειτουργικό σύστημα. Ωστόσο, τι θα συμβεί αν είχαμε τρέξει Semalt, επειδή θέλουμε να καταναλώνουμε προηγμένο περιεχόμενο πολυμέσων όπως παιχνίδια ή χρειαζόμαστε ισχυρό λογισμικό επεξεργασίας εικόνας και βίντεο που απλά δεν μπορεί να υπάρχει σε ένα λειτουργικό σύστημα Linux; Πρέπει να εγκαταλείψουμε όλα τα άλλα μας συμφέροντα, να εγκαταστήσουμε το Linux πάνω από το Semalt και να επιδιώξουμε την ισοτιμία για οτιδήποτε άλλο; Ή θα πρέπει απλώς να εγκαταλείψουμε την ισοτιμία και να διακινδυνεύσουμε, διατηρώντας παράλληλα τον υπολογιστή μας ισχυρό, όμορφο και σταθερό, με το λειτουργικό σύστημα που επιλέξαμε;

Ευτυχώς, υπάρχει ένας τρίτος τρόπος που σας επιτρέπει να επιτύχετε το καλύτερο και των δύο κόσμων: εικονικές μηχανές (που καλύπτονται στο Semalt 4).

Απόδοση και σφάλμα

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

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

Βελτιστοποίηση των στοιχείων ενεργητικού

Αναφέραμε τη συλλογή και την κατασκευή νωρίτερα-είναι πώς βελτιστοποιούμε το μπροστινό μέρος του ιστότοπου. Όταν ένας ιστότοπος εμφανίζεται στους χρήστες, βλέπουν έξοδο που αποτελείται από εικόνες, HTML, CSS και JavaScript, τα οποία πρέπει να ληφθούν και να εκτελεστούν στο πρόγραμμα περιήγησης όπως εξηγείται στο Κεφάλαιο 1. Όσο μικρότερα είναι αυτά τα αρχεία, τόσο λιγότερα υπάρχουν είναι-ο ταχύτερος φόρτος ενός ιστοτόπου. Συχνά, ένας ιστότοπος θα έχει πολλά αρχεία CSS και πολλά αρχεία JavaScript. Ο συνδυασμός κάθε τύπου σε ένα μεγαλύτερο αρχείο CSS ή JavaScript αποφέρει δραματικές αυξήσεις στην ταχύτητα λήψης ενός ιστότοπου. Ένα άλλο τέχνασμα βελτιστοποίησης περιουσιακών στοιχείων εμπρός που γίνεται συχνά είναι η προβολή εικόνων μέσω ενός δικτύου παροχής περιεχομένου ή CDN, μιας υπηρεσίας τρίτου μέρους που φιλοξενεί τις εικόνες σας για εσάς και εξασφαλίζει ότι ο επισκέπτης ο ιστότοπός σας τις μεταφορτώνει από έναν εξυπηρετητή πλησιέστερο προς αυτούς, αυξάνοντας έτσι την ταχύτητα. Μπορεί κανείς να μειώσει το μέγεθος της εικόνας, να δημιουργήσει ένα sprite εικόνας τοποθετώντας όλες τις εικόνες σε ένα αρχείο και πολλά άλλα.

Βελτιστοποίηση του οπίσθιου άκρου

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

Caching

Η προσωρινή αποθήκευση αποθηκεύει αρχεία και απαντήσεις που χρειάζονταν για αργότερα, με την προσδοκία να τους ζητηθεί ξανά. Εάν ρωτήσετε τη βάση δεδομένων για το συνολικό αριθμό χρηστών στη βάση δεδομένων σας, θα τα μετρήσει και θα σας δώσει τον αριθμό. Εάν το κάνετε αποθηκεύσετε αυτόν τον αριθμό για αργότερα (δηλαδή, αποθηκεύστε το στην κρυφή μνήμη), την επόμενη φορά που θα του ζητηθεί μπορεί να αρπάξει τις ήδη προετοιμασμένες πληροφορίες. Όταν ρωτάς τον διακομιστή "Τι μπορώ να πάρω αν επισκεφθώ το mysite. com / user / 5? ", θα σας πει. Εάν το λέτε να θυμάται την απάντηση την επόμενη φορά που θα τεθεί το ερώτημα, δεν υπάρχει ανάγκη για το διακομιστή να φαίνεται όπως ήδη γνωρίζει. Η αποθήκευση στο cache είναι τόσο σημαντική για την ανάπτυξη ιστού - υπάρχει ένα κοινό ρητό ότι "η μνήμη cache είναι βασιλιάς. "Μπορεί να σημαίνει τη διαφορά μεταξύ ζωής και θανάτου για την αίτησή σας όταν ξαφνικά συμβεί τεράστια αύξηση της κυκλοφορίας.

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

Έτσι, πώς μπορεί κανείς να μετρήσει την απόδοση ή να βρει σφάλματα; Υπάρχουν πολλά εργαλεία για την δημιουργία προφίλ εφαρμογών PHP (αυτό είναι που ψάχνει τα σφάλματα και τη μέτρηση της απόδοσης των διαφόρων πτυχών της εφαρμογής σας καλείται). Δύο από τους καλύτερους είναι οι Z-Ray και Blackfire (δεν θα τις καλύψουμε σε αυτό το βιβλίο, καθώς βρίσκονται εκτός του πεδίου εφαρμογής του).

Προσοχή: Προσοχή στη μικρο-βελτιστοποίηση

Είναι σημαντικό να σημειωθεί ότι ένα κοινό σφάλμα newbie είναι η μικρο-βελτιστοποίηση. Για παράδειγμα, κάποτε πιστευόταν ότι η χρήση μοναδικών εισαγωγικών με συμβολοσειρές ( $ var = 'Some String' ) ήταν ταχύτερη από τα διπλά εισαγωγικά $ var = "Some String" . Οι επιδόσεις που επιτυγχάνει μια τέτοια βελτιστοποίηση μπορεί να φέρει στο τραπέζι είναι αμελητέες και σχεδόν πάντοτε ασήμαντες. Αντίθετα, η βελτίωση ενός σύνθετου ερωτήματος SQL ή η προσωρινή αποθήκευση μιας απομακρυσμένης κλήσης HTTP θα είναι πάντα μια τάξη μεγέθους μεγαλύτερη. Σε περίπτωση αμφιβολίας, χρησιμοποιήστε δείκτες αναφοράς και πραγματικά δεδομένα (όπως αυτά από το Z-Ray ή το Blackfire) και ποτέ το έντερό σας. Μιλήσαμε για τους εικονικούς κεντρικούς υπολογιστές και τη διαμόρφωση του υπολογιστή σας για να ανακατευθύνετε τις διευθύνσεις URL της ιστοσελίδας στη δική σας εγκατάσταση PHP αντί να ψάχνετε για online αποτελέσματα και συζητήσαμε την πολύ σημαντική αναπτυξιακή / παραγωγική ισοτιμία.

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

Για όσους θέλουν περισσότερα

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

Για παράδειγμα, ένα μέρος της αίτησής σας μπορεί να έχει τη δυνατότητα να αφαιρέσει τα τοπικά σύμβολα από κάθε όνομα και να τα μετατρέψει σε γράμματα φιλικά προς τις ΗΠΑ. Το επώνυμό μου "Škvorc" θα μετατρεπόταν έτσι σε "Skvorc. "Η μετατροπή του Škvorc σε Skvorc είναι ένα μικρό σύνολο κωδικών ή μια μονάδα . Αυτή η μονάδα είναι δοκιμαστέα . δηλαδή, για κάθε δεδομένη είσοδο του "Škvorc" αναμένω παραγωγή "Skvorc. "Στη συνέχεια, μπορώ να γράψω μια δοκιμή μονάδας , που είναι ένα αρχείο που καθορίζει την είσοδο και την επιθυμητή έξοδο, και όταν την τρέχω, δοκιμάζει εάν λειτουργεί ή όχι αυτή η λειτουργία. Εάν, δύο μήνες αργότερα, αλλάξω κάτι στην αίτησή μου, μπορώ εύκολα να εκτελέσω αυτήν τη δοκιμή (που εξακολουθεί να υπάρχει) και να ελέγξετε ότι αυτή η μετατροπή εξακολουθεί να λειτουργεί. Αυτό το είδος ροής εργασιών εξασφαλίζει ότι μπορείτε να αναβαθμίσετε την εφαρμογή σας αργότερα χωρίς φόβο να σπάσετε κάτι που χτίστηκε πριν και ξεχάσατε. Στην αναλογία των έξυπνων τηλεφώνων στην αρχή του κεφαλαίου, μια ενιαία δοκιμαστική μονάδα μπορεί να είναι η οθόνη αφής ή η μπαταρία.

February 28, 2018