2009-07-13 14 views
5

Ein weiteres Kapitel aus den „Argumenten zwischen mir und dem anderen Senior-Entwickler“ -Serie: PCodierung für IE vs Coding für W3C Standards

Meine Position ist, dass, wenn Web-Entwicklung zu tun, sollte Browser Code in erster Linie geschrieben werden sich an die W3C-Webstandards halten, obwohl Internet Exploder den größeren Marktanteil hat (irgendwo zwischen 51% und 79%, je nachdem, wer das Tracking durchführt). Meine Argumentation ist:

  • Die Standards sind gesperrt in und alle Browsern-Entwickler zu bewegen auf einem Minimum, 100% fehlerfreie Unterstützung für all festgelegten Standards. Daher sollte der Code rund um Firefox/Chrome/Safari geschrieben und getestet werden, da diese näher an der Standardunterstützung als IE8 liegen. Daher sollten bedingte Tags im IE verwendet werden, um die Fehler zu umgehen. Dies ist besonders der Fall, da Sie bedingte Tags verwenden können, um IE-Bugs zu umgehen, aber wenn Sie umgekehrt Code schreiben, ist es viel schwieriger, Hacks zu schreiben, um Firefox/Safari/etc zu zwingen, das codierte HTML/CSS korrekt anzuzeigen .

  • Sie sind zukunftssicher für Ihre Webanwendungen, wenn Sie Standards entwickeln, da alle Browser auf den gleichen Platz zielen, was bedeutet, dass Sie nicht zu den Leuten gehören, die dann reparieren müssen ihre Anwendung jedes Mal, wenn eine neue Browser-Version erscheint, die näher an den Web-Standards liegt, wodurch einige Ihrer ersten Hacks jetzt das Layout durchbrechen.

  • Coding etwas gebrochen, um den größeren Marktanteil zu unterstützen, dann "unbreaking" für den kleineren Marktanteil, wenn Sie Zeit haben, scheint wie ein unvorsichtiger Weg, einen Job zu nähern und schlägt vor, dass Sie glauben, dass 20% Marktanteil ist unbedeutend, was meiner Meinung nach sehr weit von der Wahrheit entfernt ist.

Mein Co-Entwickler argumentiert:

  • Die verschiedenen Browser Unternehmen auf ihre eigenen Tangenten gehen möchten und nicht wirklich kümmern sich um die Standards sowieso, also versucht, für Standards zu codieren ist Zeitverschwendung.

  • Codierung, die eine Minorität von ~ 20% Marktanteil unterstützt, ist den Aufwand nicht wert, solange die Seite in diesen Browsern in einer Weise angezeigt wird, die noch verwendbar ist.

  • Ein Browser ist ein Browser ist ein Browser. Es ist nur ein Ansichtsfenster zum Rendern von Text und ich sollte mir nicht so viele Gedanken über Dinge machen, die genau nach aussehen.

  • Es ist ein Schmerz, in Firefox zu entwickeln, wenn er IE8 sowieso bevorzugt.

Ich bin der Verantwortliche und natürlich kann ich nur sagen: „Das ist so, wie es geht“, aber ich hasse es, ein nazi und sagen: „Mein Freund, der Autobahn“ zu sein; Ich denke, es ist besser, wenn die anderen verstehen, warum wir etwas auf eine bestimmte Art und Weise tun, so dass wir uns einig sind, wenn wir fortfahren, und deshalb bleiben die Konventionen, denen wir folgen, hängen, weil der Grund hinter ihnen eher geschätzt als missbilligend ist gefolgt.

Kann ich etwas in dieses Argument eingeben?

+6

Sie sollten dies zu einem Community-Wiki machen, da es auf Meinungen basiert. – MitMaro

+0

Es ist jetzt ein Community-Wiki. –

+0

Die einzige Lösung liegt in der Biografie auf meiner Profilseite. –

Antwort

11

Entwickeln Sie nach W3C-Standards und lassen Sie es in IE gut aussehen. Sie schließen sich nicht gegenseitig aus.

+1

Nur W3C all-the-way. Wenn wir keine Standards haben, was haben wir? –

+7

@Aiden: Arbeitende Webseiten? – Will

+0

@Will - "funktioniert" in welchem ​​Browser? –

1

Entwickeln Sie nach W3C-Standards und lassen Sie es in IE gut aussehen. Sie schließen sich nicht gegenseitig aus.

Manchmal sind sie. Wenn sie es sind, ist die Entwicklung zu W3C-Standards normalerweise die vernünftige Wahl. Ein größeres Problem ist natürlich die Entwicklung für mehrere Versionen von IE; es ist wahrscheinlich eine gute Idee, eine harte untere Grenze bei 7 zu setzen, aber das hängt vom jeweiligen Editor ab.

Indem Sie grundlegend gebrochene, aber selektiv ungebrochene Designs erstellen, tun Sie nichts anderes, als sich selbst zum Scheitern zu bringen.

0

Ich weise mein Team immer an, mit Firefox zu arbeiten (lies 'W3C-Standards') und fülle erst später die skurrilen Lücken, wenn es um IE geht. Ich könnte Ihrer Meinung mehr nicht zustimmen, weil das so viel Sinn macht.

MS hat angeblich versucht, den IE für immer kompatibler zu machen, aber sie sind immer noch eine große Sache ... während andere Browser wie Firefox und Chrome den Vorteil haben, aus MS Fehlern zu lernen. Da ein großer Teil der Internetnutzer immer noch IE 6 verwendet, müssen Sie immer spezielle bedingte Prüfungen hinzufügen, um diese "fehlenden Links" zu berücksichtigen.

Ich sehe nicht, wie es ist ein Schmerz für Firefox zu entwickeln, angesichts der fantastischen Add-Ins wie FireBug und Web Developer.

+0

-1 für die Verwendung von "M $" –

+0

@mgroves: Ich bin auch kein Fan der "M $" Phrase, aber das macht seine Antwort nicht ungültig. Obwohl, ich gebe Ihnen zu, seine Antwort ist ziemlich Fan-Boy-esque. – DevinB

+0

(-1) Wenn Ihr Team mit Firefox anfängt, wird es eine Menge Zeit haben, es anderswo zum Laufen zu bringen. Firefox hat gute Werkzeuge, aber sie ermutigen Sie, sich auf diese Werkzeuge zu verlassen, was Ihre Fähigkeit, ohne sie zu arbeiten, stumpf macht. Wenn Sie damit beginnen, dass es im IE funktioniert, werden Sie feststellen, dass die Portierung auf FF einfacher ist, da die Tools zur Verfügung stehen, um herauszufinden, was schief läuft. Wenn Sie in FF beginnen, müssen Sie hacken und Schrägstrich, um es in IE zu arbeiten. Wenn Sie Ihre IE-Zielgruppe entfremden wollen, ist Ihre Lösung bei weitem die einfachste. – DevinB

1

Ich habe keine Liebe für das W3C, da die "Standards", die daraus entstanden sind, ziemlich schrecklich sind und der Grund, warum jeder auf die eine oder andere Weise alles anders macht.

IE unterstützt conditional CSS statements, mit dem Sie die CSS-Eigenheiten des IE, die in den meisten Browsern funktionieren, optimieren können.

Also ich denke, das beste, was zu tun ist HTML zu schreiben, das gut aussieht und funktioniert wie erwartet (Standards schmandards), und wenn Sie mit etwas hässlich tun müssen, um es im IE arbeiten dann verwenden bedingte CSS .


Klarstellung zu meiner zynischen W3C Meinung: Groß. Ball. Von. Schlamm.

+1

+1 für die Angabe der harten (und vor allem richtigen) Antwort. – Welbog

+0

Wie finden Sie heraus, was gut aussieht, wenn es keine Standards gibt, um zu definieren, wie es aussehen soll? – jcollum

+0

@jcollum: Wie finden Sie heraus, was gut aussieht, wenn keine Browser das Ergebnis anzeigen? – Welbog

2

Ich bin mir nicht sicher, welche Version von IE Sie wirklich streiten, aber diese digg blog post zeigt, dass mehr als die Hälfte der IE6-Benutzer nicht IE6 nach Wahl verwenden.

Ein religiöses Argument gegenüber Browsern ändert nichts an der Tatsache, dass viele Ihrer Benutzer keine Kontrolle darüber haben, wie sie Ihre Website sehen. Es kommt also auf eine geschäftliche Entscheidung an, und das Kosten-Nutzen-Verhältnis für diejenigen, die vielleicht etwas hinter der Kurve liegen.

1

In Wirklichkeit muss ein Unternehmen seine Benutzer zufriedenstellen. Ideologie ist nicht genug. Entwickeln zu Standards, aber dann funktioniert es in IE. Kommentiere Code und erkläre, wo Hacks eingeführt werden. Wenn Sie über IE8 sprechen, ist es nicht so schlimm. Wenn Sie IE7 oder sogar 6 unterstützen müssen, haben Sie mehr Arbeit.

4

Kennen Sie Ihre Zielgruppe?: Ist es Ihnen wichtig, ob Ihre Website standardkonform ist? Wahrscheinlich nicht, es sei denn, Sie schreiben eine Website für Webentwickler-Eiferer. Es ist wahrscheinlicher, dass sie sich nicht darum kümmern oder nicht einmal wissen, was W3C ist.

Hat Ihr Publikum eine höhere Tendenz, einen bestimmten Browser auszuwählen? Beachten Sie, dass nicht alle Websites die gleiche Anzahl an Browsern erhalten. Tech-Sites erhalten weniger IE-Treffer als allgemeine Sites.

Seien Sie praktisch: Die meisten Websites erhalten die meisten ihrer Treffer von IE. Insbesondere IE 6 und 7. Es ignoriert die Realität, um die Eigenheiten des IE zu ignorieren. Sie werden viele Benutzer darüber beschweren, wie Ihre Website nicht funktioniert, wenn Sie nicht die Zeit verbringen, damit es in IE 6 und 7 funktioniert. IE 6 ist immer noch ein großer Browser, der von den meisten Microsoft-zentrierten Unternehmen verwendet wird.

Seien Sie realistisch: Standards-compliant HTML ist nicht wirklich praktisch, außer an Fanatiker zu appellieren. Im Idealfall implementieren alle Browser den Standard. Aber sie nicht. Es ist unrealistisch, einen Standard zu implementieren, den niemand vollständig implementiert.

Die Quintessenz ist eine Website zu implementieren, die in allen Browsern IE6 und höher funktioniert. Wenn Sie mit älteren Browsern fehlerfrei arbeiten müssen, tun Sie es. Aber ignorieren sie nicht. Sie existieren und Benutzer verwenden keine Websites, die nicht funktionieren. Oft werden sie von ihren Unternehmen beauftragt, keine verschiedenen Browser zu verwenden, weshalb sie vorschlagen, dass das Upgrade keine Option ist.

+0

An keinem Punkt befürwortete ich, sie zu ignorieren, eher schlug ich vor, dass, um zur höchsten Stufe, dem ungebrochenen Standard zu entwickeln, dann Patches für jede nachfolgende Version von IE unten den Baum zur Verfügung stellend, jeden Satz von Fehlern getrennt arbeitend. –

+1

Ich denke, Sie sollten mit dem Ansatz beginnen, damit es für alle gängigen Browser richtig aussieht. Geh nicht später zurück oder setze bedingte Hacks/Codes ein, lass es einfach von Anfang an richtig aussehen. Einfacher gesagt als getan, aber es kann getan werden. –

+0

stimme ich zu, jedoch ist manchmal bedingter Code erforderlich, um es richtig aussehen zu lassen. Die beiden schließen sich oft gegenseitig ein. –

1

Code an den Browser, der einen Marktanteil hat und dem ACID-Test am nächsten kommt. Arbeiten Sie für andere Browser und entscheiden Sie, für welche Browser Sie sich keine Sorgen machen.

für mich zu diesem Zeitpunkt, das heißt:

Code firefox, für IE umgehen, stellen Sie sicher, dass es die gleiche Art und Weise in Chrome und Safari arbeitet und den Rest ignorieren.

+0

genau meine Prozesse (FF, zwicken im IE, check Chrome und Safari). Manchmal besuche ich auch Opera. Ich würde gern Konqueror zu der Mischung hinzufügen, aber es ist in den meisten Fällen zu begrenzt, so dass es für eine gute "degrade anmutig" -Kontrolle – Javier

+0

Chrome, IE, dann FF (ich hasse ff Fanbois). Und wovon sprichst du von dieser Safari? – Will

-1

Sein Argument leidet unter einem großen Fehler: Auf welche Version von IE zielen Sie?

Eine Seite kann gut aussehen in IE6 und saugen schrecklich in IE7 und 8. Oder gut aussehen in IE6 und 7, aber saugen schrecklich in IE8 Standard (mehr Standards-konform) Render-Modus.

IE6-Unterstützung fällt; Die IE7-Nutzung hat die IE6-Nutzung vor einiger Zeit überholt, und IE8 gewinnt langsam an Zugkraft.

Im Web ist das Entwerfen für einen 8 Jahre alten Browser ein Fehler. Entwerfen Sie zuerst neuere Browser und fügen Sie dann etwas hinzu, was Sie für ältere Browser benötigen.

+1

Außer dass der "8-jährige" Browser immer noch 20% Marktanteil hat. Sie können es einfach nicht ignorieren. – cdm9002

+0

Ja, aber wenn du einmal für die anderen 80% entworfen hast, kommst du zurück und machst Korrekturen, damit es in den letzten 20% funktioniert. – Powerlord

1

Es gibt einige interessante Behauptungen in den obigen Argumenten. Lieferanten interessieren sich nicht für Standards. Zukunftssichere Anwendungen durch Einhaltung von Standards. Non-IE repräsentiert ~ 20% des Marktanteils. Wenn es einige empirische Beweise für oder gegen diese geben würde, könnte es helfen. In meinen Augen ist es wichtig zu sagen, dass man bedingte Tags verwenden kann, um IE-Bugs zu umgehen, aber wenn man umgekehrt Code eingibt, ist es viel schwieriger, Hacks zu schreiben, um Firefox/Safari/etc zu erzwingen um das codierte HTML/CSS korrekt anzuzeigen. " Diese Behauptung mangelnder Symmetrie ist für meine Augen nicht intuitiv, aber wenn es wahr ist, ist das ein ziemlich starkes Argument.

Wenn jemand wirklich sagte "ungefähr richtig ist in Ordnung" und "mach dir keine Sorgen um ... genau", dann hätte ich Schwierigkeiten, diese Argumente ernst zu nehmen.

Warum ist die Entwicklung in/für Firefox ein Schmerz?

+0

"es ist viel schwieriger, Hacks zu schreiben, um Firefox/Safari/etc dazu zu zwingen, das codierte HTML/CSS korrekt anzuzeigen" direkt am Punkt. – Javier

3

Ich liebe Standards so sehr wie der nächste Typ, aber ehrlich gesagt ist dies etwas von einem religiösen Krieg/Schlag Junge geworden.

Das Hauptproblem ich gesehen habe, ist dies Patern:

  • Browser Unternehmen ‚X‘ macht Browser fehlertolerante und versucht, Anzeigeseiten, die schlecht ausgebildet sind. Sie weicht auch von Standards entlang der Weg entweder zufällig oder in einem Versuch, ihren eigenen neuen Standard zu erstellen.
  • Unerfahrene Web Developer verwendet Browser 'X', um ihr Design als zu testen sie gehen entlang, so dass Fehler in ihre Markup unbemerkt bleiben.
  • Browser Company 'X' ist jetzt gefangen in die Position entweder bestehenden Websites zu brechen oder die bekannten Defekte in neuen Versionen ihres Browsers zu pflegen.

Nicht Teil dieses Zyklus sein.