Heim > Backend-Entwicklung > PHP-Tutorial > 18 kritische Fehler, auf die Sie bei der Webentwicklung achten sollten

18 kritische Fehler, auf die Sie bei der Webentwicklung achten sollten

巴扎黑
Freigeben: 2016-11-11 15:31:01
Original
939 Leute haben es durchsucht

In den letzten Jahren hatte ich die Gelegenheit, an einigen interessanten Projekten mitzuwirken und eigenständig Entwicklungen, Upgrades, Refactorings und die Entwicklung neuer Funktionen durchzuführen.

Dieser Artikel fasst einige wichtige Fehler zusammen, die PHP-Programmierer bei der Webentwicklung häufig übersehen, insbesondere bei der Arbeit mit mittleren und großen Projekten. Zu den typischen Fehlern gehört die Unfähigkeit, zwischen verschiedenen Entwicklungsumgebungen zu unterscheiden und die Nichtverwendung von Cache und Backup.

Im Folgenden wird PHP als Beispiel verwendet, seine Kernideen sind jedoch auf jeden Webprogrammierer anwendbar.

Fehler auf Anwendungsebene

Die Fehlerberichterstattung ist während der Entwicklungsphase deaktiviert

  Warum? Warum sollten Sie die Fehlerberichterstattung während der Entwicklung deaktivieren?

PHP verfügt über viele Ebenen der Fehlerberichterstattung, und wir müssen sie alle während der Entwicklungsphase aktivieren.

Wenn Sie glauben, dass Fehler nicht passieren, idealisieren Sie das Programm. In der realen Welt sind Fehler unvermeidlich. error_reporting und display_error sind zwei völlig unterschiedliche Methoden. error_reporting() legt die Fehlerstufe fest, während display_errors festlegt, ob Fehlerinformationen ausgegeben werden sollen.

Während der Entwicklungsphase sollte die Fehlerberichtsebene auf die höchste Ebene eingestellt werden, beispielsweise die folgenden Einstellungen: error_reporting (E_ALL);

2. Fehler unterdrücken

Sie wussten nicht, dass in Zukunft noch schwerwiegendere Fehler passieren würden.

3. Es gibt nirgendwo im Code ein Nutzungsprotokoll. Sie müssen das Nutzungsprotokoll zu Beginn der Softwareentwicklung im Auge behalten Funktion bis zum Ende des Projekts. Viele Programmierer verwenden die eine oder andere Methode zum Aufzeichnen von Protokollen, aber nur wenige Menschen können Protokolle tatsächlich zum Aufzeichnen abnormaler Informationen verwenden. Welchen Nutzen hat ein Protokollsystem, das niemand überprüft?

4. Es wird kein Cache verwendet

Im Anwendungssystem können wir Cache auf mehreren Systemebenen verwenden, z. B. auf der Serverseite, der Anwendungsseite und der Datenbankseite. Warten. Ebenso wie die Protokollierung sollte das Caching von Anfang an auf das System angewendet werden. Sie können das Caching während der Entwicklung deaktivieren und das Caching nach der Produktveröffentlichung aktivieren.

5. Aufgeben von Best Practices und Designmustern

Es tut mir leid, Ihnen sagen zu müssen, dass es viele davon gibt, weil sie denken, sie würden es besser wissen.

Die Best Practices und Designmuster wurden von Vorgängern erstellt. Dies ist oft einfacher und effektiver, als das Rad selbst neu zu erfinden. Wenden Sie es einfach im Projekt an, beispielsweise einige Verschlüsselungsalgorithmen.

6. Es werden keine automatisierten Tests verwendet. Tests werden in jedem Webprojekt verwendet, genau wie Protokolle. Wenn niemand sie verwaltet und verwendet, sind die Tests auch nutzlos .

Ein Testprojekt durchzuführen ist eine mühsame Aufgabe. Glücklicherweise gibt es eine Reihe von Tools, die uns dabei helfen, automatisierte Tests durchzuführen. In der PHP-Entwicklung gibt es ein gutes Testtool namens Jenkins, das sehr benutzerfreundlich ist.

7. Keine Codeüberprüfung

Die Arbeit in einem Team ist eine sehr große Herausforderung, da jedes Mitglied seine eigenen unterschiedlichen Arbeitsgewohnheiten und -methoden hat wird viele Umwege nehmen.

Jedes Mitglied des Teams sollte den Code des anderen überprüfen, genau wie Unit-Tests, was dazu beitragen kann, dass das Projekt sauberer und konsistenter wird.

8. Bei der Programmierung werden nur Idealsituationen berücksichtigt

Sind Sie nach der Übergabe an den Kunden schon einmal auf Probleme oder gar Chaos in Ihrem eigenen oder fremden Code gestoßen? Natürlich habe ich das nicht getan.

Diese Situation tritt häufig auf, weil Entwickler faul sind und nur ideale Situationen berücksichtigen, was zu Datenbankabstürzen, schwerwiegenden PHP-Fehlern oder sogar zu gehackten Servern führen kann. Beim Schreiben von Code müssen Programmierer nicht nur das Best-Case-Szenario berücksichtigen, sondern auch das Worst-Case-Szenario. Nur durch umfassendes Denken kann der Code alle Situationen abdecken.

9. Fehler bei der korrekten Anwendung objektorientierter Programmierideen

Die meisten PHP-Anfänger werden objektorientierte Ideen nicht in ihrem Code verwenden, da dieses Konzept schwierig ist Zu Beginn verstehen

Das Konzept der Objektorientierung besteht natürlich nicht einfach darin, einige Klassen zusammenzufassen.

Objekte, Eigenschaften, Methoden, Vererbung und Kapselung usw. Dies sind die grundlegendsten Konzepte in OOP. Nachdem Entwickler das objektorientierte Entwurfsmuster korrekt verwendet haben, können sie saubereren und skalierbareren Code schreiben.

10. „On-the-fly“-Programmierung

ASAP“, also fügen Sie dem Quellcode einige neue Funktionen hinzu und laden diese dann direkt auf den laufenden Server hoch. Diese Programmiermethode wird „On-the-fly“-Programmierung genannt.

Wenn wir Software entwickeln, insbesondere bei mittelgroßen und großen Projekten, müssen wir sie entsprechend dem Workflow analysieren, programmieren und veröffentlichen, was zukünftige Softwarefehler erheblich reduzieren wird. Von diesem „Flugmodus“ ist abzuraten.

Fehler auf Datenbankebene

Fehler beim Lesen und Schreiben der Datenbank

Jeder Programmierer sollte die Skalierbarkeit des Systems berücksichtigen. In 99 % der Fälle muss das System nicht über eine Erweiterung nachdenken, da nicht so viel Datenverkehr vorhanden ist.

Warum müssen wir das Lesen und Schreiben der Datenbank trennen?

In jedem System wird die Datenbank der erste Engpass sein, der auftritt. Bei starkem Datenverkehr ist es wahrscheinlich, dass die Datenbank als erstes stirbt. Daher verwenden wir in den meisten Fällen mehrere Datenbanken, um den Datenverkehr zu verteilen, und Entwickler verwenden häufig den Master-Slave-Modus oder den Master-Master-Modus. Master-Slave ist der beliebteste Datenbankdruck-Sharing-Modus. Er leitet die angegebene Select-Anweisung an jeden Slave-Server weiter, wodurch der Druck auf den Master-Server erheblich verringert wird.

Der Code kann nur eine Verbindung zu einer Datenbank herstellen

Dies ist dem vorherigen Fehler sehr ähnlich, aber aus bestimmten Gründen müssen Entwickler manchmal eine Verbindung herstellen. Sie werden beispielsweise hochbelastete Daten wie Benutzerprotokolle, Aktivitätsinformationsströme und Echtzeit-Datenanalysen in verschiedene Datenbanken einfügen, um die Hauptdatenbank zu entlasten.

13. Das Versäumnis, Datenbankschwachstellen zu erkennen

Unter den vielen Schwachstellen sind Datenbankschwachstellen die anfälligsten, und die häufigste ist die SQL-Injection. Daher ist es weiterhin erforderlich, regelmäßig eine Datenbank-Schwachstellenerkennung durchzuführen.

14. Datentabellen haben keine Indizes

Geeignete Indizes können die Leistung jeder Tabelle verbessern In diesem Artikel erfahren Sie, wie Sie einen Index erstellen und wann Sie einen Index erstellen.

15. Es wird kein Transaktionsmechanismus verwendet. Die Datenintegrität ist für das Websystem sehr wichtig. Wenn ein Fehler in der Datenkonsistenz auftritt, bricht das gesamte System zusammen reparieren. Durch die ordnungsgemäße Verwendung des Datenbanktransaktionsmechanismus wird dieses Problem effektiv gelöst. Wenn Sie beispielsweise Benutzerdaten speichern möchten, befinden sich in Tabelle 1 E-Mail, Benutzername und Passwort sowie in Tabelle 2 Vorname, Nachname und Geschlecht. Wir können Transaktionen verwenden, um sicherzustellen, dass die Daten beim Aktualisieren von zwei Tabellen gleichzeitig oder nicht gleichzeitig aktualisiert werden.

16. Sensible Daten werden nicht verschlüsselt

 

  PHP5.5 bietet eine Hash-Verschlüsselungsmethode, die wie folgt verwendet wird:  

$hash = passwort_hash ( $password, PASSWORD_BCRYPT );

  17. Kein Backup

Wenn Sie auf eine solche Situation stoßen, ist alles vorbei.

 

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage