Flexibilität ist für Sie in der Regel Flexibilität. Alle Best Practices, die Sie befolgen, sind Gewinne auf beiden Seiten der App.
Ein kritischer und oft übersehener Punkt ist jedoch das Schreiben einer robusten Benutzeroberfläche. Viel zu viele UI-Komponenten sind zu stark in einem Kontext oder einem zu anspruchsvollen HTML-Satz verankert, und CSS ist so eingerichtet, dass es fehlschlägt.
Wenn Sie beispielsweise ein Dropdown-Menü haben, ist es weitaus weniger JS-Arbeit, eine absolut positionierte Drop-Komponente in einem relativ angeordneten (keine Koordinaten erforderlich) angeklickten Container zu verankern, als den JQuery-Hammer herauszuziehen und die Koordinaten zum Schweben zu bringen über das Element und kleben Sie es einfach an Ort und Stelle. Es ist auch viel weniger wahrscheinlich, dass es in Fällen, in denen sich die Seite verschiebt oder eine neue Browserfunktion Positionsinformationen abwirft, kaputt geht. Je mehr Sie sich auf HTML / CSS-Kenntnisse verlassen, um JS-Arbeit zu vermeiden, desto robuster ist Ihre Benutzeroberfläche normalerweise.
In der Regel versuche ich sicherzustellen, dass meine UI-Komponenten nur ein HTML-Tag mit einer geeigneten ID oder Klasse benötigen. Je mehr Dinge Sie mit diesem Container tun können, ohne dass die Benutzeroberfläche im Inneren beschädigt wird oder wenn der Container tatsächlich angepasst wird, z. B. erweitert / verkleinert, um ihn an die sich ändernden Containerabmessungen anzupassen, desto einfacher kann er auf jedem Teil der App implementiert werden, ohne dass eine Clientseite erforderlich ist Experte. Alles was sie tun müssen, ist eine Klasse darauf zu kleben.
Ziehen Sie die Ereignisdelegierung in UI-Containern der direkten Zuweisung von Listenern zu Endpunktknoten wie Schaltflächen vor. Diese UI-Komponente funktioniert jetzt möglicherweise mit statischem HTML, aber Sie wissen nie, wann jemand in der Lage sein möchte, den HTML-Code mit innerHTML oder Ähnlichem herauszureißen und neu zu schreiben. Wenn der Container intakt ist und alle Ereignisse delegiert sind (siehe die jquery-Methode 'on'), müssen Sie sich darüber keine Sorgen machen, und sie werden möglicherweise nie lernen, wie schwierig es ist, HTML-Listener durch das Ersetzen von HTML zu unterbrechen.
Verwenden Sie stopPropagate nur als Endpunktknoten, um die Delegierung als Option beizubehalten, und senden Sie Hass-Mails an Entwickler von idiotischen Frameworks, die sie überall als Spam versenden.
Halten Sie das HTML in Bezug auf das Layout minimal, semantisch und vermeiden Sie Div-Wrapper. Je weniger HTML vorhanden ist, desto einfacher sind Layoutprobleme für Layout-Neulinge zu diagnostizieren.
Verwenden Sie selbsterklärende Klassennamen für das Dienstprogramm CSS. Eine "Zeilen" -Klasse ist für CSS-Noobs wahrscheinlich klarer als "Clearfix".
Geben Sie immer eindeutige Schnittelemente und eindeutige IDs an. Es macht es viel einfacher zu identifizieren, wo bestimmte Dinge in einem Abschnitt geschehen, es ist einfacher, Dinge zu überschreiben, und es kann auch ein Lesbarkeits- und Leistungsgewinn für JS sein.
Natürlich ist es eine schlechte Nachricht, mit einem Klassenschema übertrieben zu werden, aber je mehr ein Back-End-Entwickler durch einfaches Hinzufügen der richtigen Klassen zu den Dingen festlegen kann, desto einfacher wird es für ihn, Änderungen an der vorhandenen Seite vorzunehmen.
Und natürlich sollten sie sich zu Beginn des Projekts zumindest auf eines einigen: Back- und Front-End-Verbindung nur über HTML und JSON. Lassen Sie sie nicht Dinge verwenden, die "das JavaScript für Sie schreiben!" Es ist eine blutige Sauerei und ein Alptraum für die Instandhaltung.
Wie bei allen entwicklungsbezogenen Dingen bevorzugen Sie TROCKEN und Minimalismus.