Frage

Ich bin ein Student der Web-Entwicklung (und Hochschule), so dass meine Entschuldigung, wenn dies klingt kommt aus naiv und offensiv, ich es sicherlich nicht sagen, dass Art und Weise. Meine Erfahrung ist, mit PHP und mit einem kleineren Projekt am Horizont (eine glorifizierte Schichtkalender) Ich hoffte, dass einer der höheren Ebene Rahmenbedingungen zu lernen, den Code Last zu erleichtern. Bisher sah ich auf CakePHP Symfony Django und Rails.

Mit PHP, kartiert die URLs sehr einfach auf die Dateien und es „funktionierte“. Es war schnell für den Server und intuitiv. Aber mit all diesen Rahmenbedingungen gibt es diese Neigung zu „ziemlich hoch“ die URLs, indem sie auf verschiedene Funktionen Karte und Route der Parameter auf verschiedene Variablen in verschiedenen Dateien.

„The Rails Way“ Buch, das ich lese gibt zu, dass dieser Hund langsam und ist die Ursache für die meisten Leistungs Schmerzen auf largish Projekten. Meine Frage ist: „Warum haben sie in erster Linie?“? Gibt es einen bestimmten Punkt in der URL-Karten-to-a-Datei Paradigma (oder mod_rewrite in einer einzigen Datei), die reguläre Ausdrücke und komplizierte Routing-Schemata erforderlich macht? Bin ich auf etwas fehlt, indem sie nicht mit?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

  • URLs sollte leicht zu merken und sagen sein. Und sollte der Benutzer wissen, was sie erwartet, wenn sie diese URL zu sehen. Mapping-URL direkt in Datei nicht erlaubt immer.
  • Sie möchten vielleicht diffrent URLs für die gleiche verwenden, oder zumindest ähnliche Informationen angezeigt. Wenn Ihr Server zwingt Sie 1 URL verwenden <-> 1 Dateizuordnung, müssen Sie ihre Funktion noch weitere Dateien mit allen schaffen, um andere Datei umleiten zu sein. Oder Sie Sachen wie mod_rewrite verwenden, die dann nicht einfacher ist, Rails' URL-Zuordnungen.
  • In einem meiner Anwendungen verwende ich URL, die wie http://www.example.com/ aussieht username / einige zusätzliche Sachen /. Dies kann auch mit mod_rewrite gemacht werden, aber zumindest für mich ist es einfacher, Urls in django Projekt konfiguriert dann in jeder Apache-Instanz Ich betreiben Anwendung bei.

nur meine 2 Cent ...

Andere Tipps

Das meiste davon wird bereits abgedeckt worden, aber niemand hat SEO noch erwähnt. Google bringt eine Menge Gewicht auf die URL selbst, wenn die URL widgets.com/browse.php?17 ist, dass nicht sehr SEO freundlich ist. Wenn Ihre URL widgets.com/products/buttons/ das ist für Tasten, um einen positiven Einfluss auf Ihre Page Rank

Speichern von Anwendungscode im Dokumentenbaum des Web-Servers ist ein Sicherheitsproblem.

  • eine Fehlkonfiguration versehentlich Quellcode Besucher offenbaren könnte
  • Dateien über eine Sicherheitslücke injiziert werden sofort ausführbar durch HTTP-Anfragen
  • Backup-Dateien (zum Beispiel durch Texteditoren erstellt) Code zeigen können oder im Fall von Fehlkonfiguration ausführbar sein
  • alte Dateien, die der Administrator versäumt hat, kann unbeabsichtigte Funktionalität offenbaren löschen
  • Anfragen zu Bibliotheksdateien müssen explizit verweigert werden
  • URLs zeigen Implementierungsdetails (welche Sprache / Framework verwendet wurde)

Beachten Sie, dass alle der oben genannten sind kein Problem, solange andere Dinge nicht falsch gehen (und einige dieser Fehler schwerwiegend wäre auch allein). Aber immer etwas schief geht und zusätzliche Verteidigungslinien sind gut zu haben.

Django URLs sind auch sehr anpassbar. Mit PHP-Frameworks wie Code Igniter (Ich bin nicht sicher über Rails) Ihre gezwungen, in die / Klasse / Methode / extra / URL-Struktur. Während dies für kleine Projekte und Anwendungen gut sein kann, sobald Sie versuchen, und es größer machen / dynamischere Sie Probleme und einige des Framework-Code neu schreiben müssen, um sie zu behandeln.

Auch Router sind wie mod_rewrite, aber viel flexibler. Sie sind nicht die reguläre Ausdruck gebunden ist, und somit haben mehr Optionen für verschiedene Arten von Routen.

Abhängig von, wie groß Ihre Anwendung ist. Wir haben eine ziemlich große app (50+ Modelle) bekommen und es verursacht uns keine Probleme. Wenn es der Fall ist, werden wir darüber keine Sorgen dann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top