Wie man ein System entwirft
Schritt 1: Beschreiben Sie Nutzungsszenarien, Einschränkungen und Annahmen (Empfohlenes Lernen: PHP-Video-Tutorial)
Sammeln Sie alle benötigten Dinge und untersuchen Sie das Problem. Stellen Sie weiterhin Fragen, damit wir Nutzungsszenarien und Einschränkungen klar verstehen können. Besprechen Sie Annahmen.
Wer wird es nutzen?
Wie werden sie es nutzen?
Wie viele Benutzer gibt es?
Was ist die Funktion des Systems?
Was sind die Eingaben und Ausgaben des Systems?
Wie viele Daten wollen wir verarbeiten?
Was ist unser gewünschtes Lese-/Schreibverhältnis?
Schritt 2: Erstellen Sie ein High-Level-Design
Verwenden Sie alle wichtigen Komponenten, um ein High-Level-Design zu skizzieren
Zeichnen Sie die Hauptkomponenten und Zusammenhänge
Beweisen Sie Ihre Idee
Schritt 3: Kernkomponenten entwerfen
Für jede Kernkomponente ausführlich und ausführlich vorgehen Analyse. Wenn Sie beispielsweise gebeten werden, einen URL-Abkürzungsdienst zu entwerfen, beginnen Sie die Diskussion:
Erzeugen und speichern Sie einen Hash der vollständigen URL
MD5 und Base62
Hash-Kollision
SQL oder NoSQL
Datenbankmodell
Übersetzen Sie eine gehashte URL in eine vollständige URL
Datenbanksuche
API und objektorientiert Design
Schritt 4: Messdesign
Engpässe und Einschränkungen identifizieren und bewältigen.
Benötigen Sie beispielsweise Folgendes, um ein erweitertes Thema zu vervollständigen?
Lastverteilung
Horizontale Skalierung
Caching
Datenbank-Sharding
Besprechen Sie mögliche Lösungen und Kosten. Alles erfordert Kompromisse.
Engpässe können mithilfe skalierbarer Systemdesignprinzipien behoben werden.
Geschätzte geschätzte Beträge
Möglicherweise werden Sie gebeten, einige Schätzungen durch Handberechnungen vorzunehmen.
Die beteiligten Anhänge umfassen die folgenden Ressourcen:
Verwendung geschätzter Berechnungen
Potenz von 2-Tabelle
Verzögerungszahlen, die jeder Programmierer verwendet sollte es wissen
Weitere PHP-bezogene technische Artikel finden Sie in der Spalte PHP-Grafik-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonWie man ein System entwirft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!