Frage

Ich scheine jetzt verwickelt werden in einer Debatte mit einem anderen Programmierer auf dieses Projekt wer denkt, dass die Ansichten haben keine Vorzüge.Er schlägt vor, ein system, das PHP sieht so etwas wie dieses:

$draw = new Draw;
$nav = $draw->wideHeaderBox().
$draw->left().
    $draw->image().
        Image::get($image,60,array('id'=>'header_image')).
    $draw->imageEnd().
$draw->leftEnd().
$draw->left(10).
    '<div id="header_text">'.
        self::defaultSectionText().
    '</div>'.
$draw->leftEnd().

und so weiter (dies wird in den controller btw).Jetzt seine Argumente für diese tatsächlich Sinn macht, behauptet er, dass, wenn es ist ein Umbau alles, was wir tun müssen, ist, ändern Sie den HTML-Code in einem Ort und es ändert sich überall automatisch.Für einige Grund, jedoch, diese Methode noch reibt mich in die falsche Richtung, ist es ein Verdienst um die Ansichten über diese Methode?Ich meine, außer dass Sie nicht mit Abtippen HTML von hand.

War es hilfreich?

Lösung

HTML-Zeit-Sparer sind nützlich, aber Sie sind nur nützlich, wenn Sie sind intuitiv und leicht zu verstehen.Haben Sie zum instanziieren eines new Draw nur klingt nicht sehr natürlich.Darüber hinaus wideHeaderBox und left wird nur eine Bedeutung für jemanden, der innig kennt das system.Und was, wenn es ist eine Neugestaltung, wie Sie Ihre co-Arbeiter Musen?Was ist, wenn der wideHeaderBox wird sehr schmal?Wird, ändern Sie das markup und styles, vermutlich), erzeugt durch die PHP-Methode lassen aber eine sehr ungenaue Methode, Namen zu nennen, den code?

Wenn Sie Jungs, die gerade haben HTML-generation verwenden, sollten Sie es durchsetzt, die in Dateien anzeigen, und Sie sollten es verwenden, wo es wirklich notwendig/sinnvoll, wie so etwas wie dieses:

HTML::link("Wikipedia", "http://en.wikipedia.org");
HTML::bulleted_list(array(
    HTML::list_item("Dogs"),
    HTML::list_item("Cats"),
    HTML::list_item("Armadillos")
));

Im obigen Beispiel, den Methodennamen tatsächlich Sinn macht, Menschen, die sind nicht vertraut mit dem system.Sie werden auch mehr Sinn machen Jungs, wenn Sie zurück, die in einem selten besuchten Datei und Frage mich, was zum Teufel Sie Taten.

Andere Tipps

Das argument, die er verwendet, das ist das argument, die Sie brauchen, um haben Ansichten.Beide führen nur zu verändern, es in einem Ort.Doch in seiner version mischen Sie Ansicht-markup mit business-code.

Ich würde vorschlagen, mit mehr von einem Vorlagen-design.Machen alle Ihre business-Logik in die PHP -, setup-alle Variablen, die erforderlich sind, durch Ihre Seite.Dann müssen nur Ihr page-markup auf diese Variablen verweisen (und mit dem umzugehen, keine business-Logik auch immer).

Haben Sie sich smarty? http://smarty.php.net

Ich habe etwas getan, was so in der Vergangenheit, und es war eine Verschwendung von Zeit.Zum Beispiel, Sie haben im Grunde schreiben Wrapper für alles, was Sie schon können mit HTML-und Sie vergessen einige Dinge.Wenn Sie etwas ändern müssen in der layout-denken Sie, dass "Schießen Sie, ich vergaß, dass..jetzt muss ich code einer anderen Methode oder fügen Sie einen weiteren parameter".

Letztlich, Sie haben eine riesige Sammlung von Funktionen/Klassen zum generieren von HTML, die niemand wissen oder sich daran zu erinnern, wie Sie verwenden Monate ab jetzt.Neue Entwickler verfluchen Sie für die Verwendung dieses Systems, da Sie lernen müssen, bevor Sie etwas verändern.Im Gegensatz dazu, mehr Menschen wissen wahrscheinlich, HTML als Ihre abstrakte HTML-Zeichnung-Klassen...und manchmal muss man Holen Sie sich Ihre Hände schmutzig mit reinem HTML!

Es sieht ziemlich ausführlich und schwer zu Folgen, ehrlich zu sein und einige der code aussieht, ist es sehr viel layout-Informationen.

Wir immer versuchen, teilen Sie die Logik von der Ausgabe, so viel wie möglich.Allerdings ist es oft der Fall, dass die anzeigen, und die Daten sind sehr eng verknüpft mit sowohl Teil diktieren, wie der andere sein sollte (z.B. eine einfache e-commerce-Website, können Sie entscheiden, dass Sie möchten, starten Sie die Anzeige der Lagerbestände neben jedem Produkt, das wäre natürlich einbeziehen, ändern Sie die Ansicht, um fügen Sie entsprechende html-Code für diese und die business-Logik zu gehen und herauszufinden, einen Wert für die Aktie).

Wenn der Gedanke an die Erhaltung 2-Dateien zu tun, das ist zu viel zu handhaben sind, teilen Sie die Dinge in einer "Daten Sammeln" Teil "Display-Anzeigen" - Teil, bekommen Sie die meisten Vorteile, ohne die Erhöhung der Anzahl der Dateien, die Sie verwalten müssen.

Ich finde es immer sehr viel leichter, direkt mit html.Theres eine weniger abstraction layer (html -> tatsächliche Webseiten / php-Funktion -> html -> eigentliche Webseite) zu behandeln, dann können Sie einfach funktionieren in HTML.

Ich glaube wirklich, die "nur müssen ändern es in einem Ort', was nicht funktioniert in diesem Fall.Dies ist, weil Sie dich so viele Male, wenn Sie möchten ändern Sie die Ausgabe einer Funktion, sondern nur an nur einem Ort.Sicher, Sie können die Argumente verwenden, aber Sie werden bald enden mit einigen Funktionen haben wie ein Dutzend Argumente.Igitt.

Bear in mind templating-Sprachen / Systeme oft können Sie sub-templates, so dass Sie einige wiederverwendbare Blöcke von html.

Die Quintessenz ist, wenn ich hatte gerade begonnen, auf Ihr Unternehmen und sahen code überall so, mein Erster Gedanke wäre, 'Damn it!Brauchen Sie einen neuen job wieder."

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