window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Διατήρηση ενός έργου στο PHP: 5 λάθη που πρέπει να αποφύγετε - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2022-06-10
Ανάπτυξη λογισμικού

Διατήρηση ενός έργου στο PHP: 5 λάθη που πρέπει να αποφύγετε

The Codest

Sebastian Luczak

PHP Αρχηγός μονάδας

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

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

Παρακάτω θα βρείτε μια λίστα με αυτά, μαζί με συμβουλές για το πώς να τα αποφύγετε.

1. Μη τήρηση των συστάσεων των προτύπων PHP

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

Ακροατής - Ένας ακροατής είναι κάθε PHP callable που περιμένει να του περάσει ένα Event. Το ίδιο συμβάν μπορεί να περάσει σε μηδέν ή περισσότερους ακροατές. Ένας ακροατής ΜΠΟΡΕΙ να αναβάλει κάποια άλλη ασύγχρονη συμπεριφορά αν το επιλέξει.

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

Πώς μπορώ να το αποφύγω;

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

2. Δεν κλειδώνετε τις εκδόσεις των εξαρτήσεων composer.json

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

Πώς μπορώ να το αποφύγω;

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

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

3. Κακή συλλογή απαιτήσεων

> Είναι απλά ένα CRUD, γιατί να ασχοληθούμε;

> Υπάρχει μια βιβλιοθήκη που κάνει ακριβώς αυτό!

Στο PHP τομέα, είναι εύκολο να πέσει κανείς στη δίνη της λήθης κατά την υλοποίηση της επιχειρηματικής λογικής του προϊόντος. Με την πάροδο των ετών έχουν υπάρξει εκατοντάδες έργα που [δημιουργούν διαχειριστικούς πίνακες για τη διαχείριση μοντέλων δεδομένων](https://backpackforlaravel.com/), [δημιουργούν προβολές που μοιάζουν με τις προβολές του Google Analytics](https://github.com/Kunstmaan/KunstmaanDashboardBundle) ή [λύνουν τα προβλήματα ασύγχρονης λειτουργίας του PHP](https://laravel.com/docs/9.x/octane) με το άγγιγμα ενός μαγικού ραβδιού (εντάξει, με ένα μόνο ερώτημα στη γραμμή εντολών).
Ο κόσμος του PHP είναι γεμάτος από έτοιμες υλοποιήσεις που λειτουργούν στο 99,9% του χρόνου.
Αυτό το 0.1% είναι το σημείο όπου η επιχειρησιακή λογική συγκρούεται με τους λειτουργικούς περιορισμούς των χρησιμοποιούμενων βιβλιοθηκών.
Αυτές οι λεγόμενες "προσθήκες" είναι οι πιο δύσκολες στην εφαρμογή τους στο τέλος του έργου.

Πώς μπορώ να το αποφύγω;

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

4. Μείωση του κόστους αποφεύγοντας τη συγγραφή δοκιμών

PHP δεν είναι τέλειο, αυτό είναι σίγουρο. Οι ελλείψεις της όσον αφορά τη στατική τυποποίηση, την έλλειψη υποστήριξης γενικής χρήσης και τη συνεχή υποστήριξη αρχαϊκών μεθόδων αποτελούν ακόμα πηγή αστεϊσμού μεταξύ των προγραμματιστών. Ωστόσο, εδώ και αρκετό καιρό PHP προγραμματιστές έχουν αποκτήσει όλο και πιο ισχυρά εργαλεία, όπως PHPStan, Xdebug, PHP-CS-Fixer που τους επιτρέπουν να διατηρούν συνέπεια και στατική τυποποίηση - αποφεύγοντας έτσι πολλά σφάλματα. Παρόλα αυτά, πολύ λίγη προσοχή δίνεται στις δοκιμές και αυτές, όταν υλοποιούνται σωστά, οδηγούν σε μια γρήγορη απόδοση της επένδυσης με τη μορφή
- μείωση των σφαλμάτων παλινδρόμησης
- αυξημένη επίγνωση των δυνατοτήτων του προϊόντος
- αύξηση της αίσθησης ιδιοκτησίας του κώδικα από τους προγραμματιστές

Πώς μπορώ να το αποφύγω;

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

5. Μη εξέταση των σύγχρονων προτύπων αρχιτεκτονικής

Το Γλώσσα PHP και τα δύο πιο ισχυρά της πλαίσια Laravel και Symfony είναι πλήρως κατάλληλες για τη δημιουργία μιας σύγχρονης, λειτουργικής και κυρίως υψηλής απόδοσης αρχιτεκτονικής. Η υποστήριξη για διάφορα συστήματα ουρών αναμονής μηνυμάτων και η ολοένα και ταχύτερη PHP οι βελτιώσεις των επιδόσεων από έκδοση σε έκδοση μας επιτρέπουν να δημιουργούμε εύκολα μικρουπηρεσίες που βασίζονται σε μικροπλαίσια. Ως επί το πλείστον, ωστόσο, εξακολουθούμε να βασιζόμαστε σε μονολιθικά συστήματα. Δεν υπάρχει τίποτα κακό σε αυτό, αλλά όταν εξετάζουμε την ανάπτυξη τέτοιων συστημάτων πρέπει να δίνουμε μεγάλη προσοχή στα όρια του τομέα και να καθορίζουμε το σημείο διασύνδεσης μεταξύ των νέων λύσεων και των παλαιότερων τμημάτων του συστήματος.

Πώς μπορώ να το αποφύγω;

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

Σχετικά άρθρα

Ανάπτυξη λογισμικού

PHP Ανάπτυξη. Symfony Console Component - Συμβουλές και κόλπα

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

The Codest
Sebastian Luczak PHP Αρχηγός μονάδας
E-commerce

Διλήμματα ασφάλειας στον κυβερνοχώρο: Διαρροές δεδομένων

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

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής
Ανάπτυξη λογισμικού

Πρόσληψη εσωτερικών έναντι εξωτερικών προγραμματιστών

Πρόσληψη εσωτερικά ή εξωτερικά; Είναι ένα απόλυτο δίλημμα! Μάθετε τα πλεονεκτήματα της outsourcing ή της δημιουργίας μιας εσωτερικής ομάδας στο ακόλουθο άρθρο.

The Codest
Grzegorz Rozmus Επικεφαλής μονάδας Java
Λύσεις Enterprise & Scaleups

Ο σωστός τρόπος για να βρείτε κορυφαίους προγραμματιστές Java

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

The Codest
Grzegorz Rozmus Επικεφαλής μονάδας Java

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

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek