Ich frage mich, wie reaktionsschnelles Design mit dem Prinzip der Trennung von Bedenken zusammenarbeitet, wenn es darum geht, wie sich eine einzelne Implementierung für mehrere Präsentationsgeräte (Mobilgeräte, Tablets, Browsergrößen usw.) verhält. Verstößt es gegen das Prinzip?
Wenn ich Änderungen an einer Webseite vornehme, von der ich weiß, dass sie sich reaktionsschnell verhält und beispielsweise auf 5 Geräten funktionieren sollte, mache ich die Entwicklung dann nicht extrem schwierig, da möglicherweise eine Regression an einer einzelnen Stelle in der Software auftreten kann?
Sicher, es bringt mich dazu, weniger Code zu schreiben und auf mehreren Geräten viel schneller zu arbeiten, aber jetzt erfordert jede meiner Seiten möglicherweise viel gründlichere Tests. Dies sind die Kosten, die ich verursachen könnte, wenn ich kein responsives Webframework verwende und separate Implementierungen von a Seite.
quelle
Antworten:
Wie Sie derzeit die Reaktionsfähigkeit betrachten, widerspricht dem Prinzip der Trennung von Bedenken. Ihre Frage setzt voraus, dass Reaktionsfähigkeit eine einzelne Verantwortung ist, die nur zu einer Komponente gehört.
Ich würde vorschlagen, dass Reaktionsfähigkeit ein Attribut / eine Verantwortung ist, die auf mehrere Komponenten angewendet werden kann. Für mein Beispiel gehe ich von einer generischen MVC | aus MVP | MVVM-Muster.
Die Ansicht hat mit Sicherheit einen Einfluss auf die Reaktionsfähigkeit der Anwendung. Die von Ihnen verwendeten UI-Elemente und -Logiken bestimmen die Leistung der Ansicht. Die Ansicht ist also für die Reaktionsfähigkeit der UI-Elemente verantwortlich.
Der Controller ist auch an der Reaktionsfähigkeit der Anwendung beteiligt. Die Arten von Datenstrukturen und die Art und Weise, wie die Geschäftslogik erstellt wird, wirken sich auf die Leistung aus. Also hier der Controller | Moderator | ViewModel ist auch für die Reaktionsfähigkeit verantwortlich. Diese Verantwortung betrifft jedoch andere Elemente als die, für die die Ansicht verantwortlich ist.
Schließlich ist das Modell für den Datenzugriff / die Serviceaufrufe verantwortlich. Es gibt offensichtliche Leistungsaspekte beim Abrufen und Präsentieren der Daten für die mittlere Schicht. Aber auch dies ist ein anderes Element, das ebenfalls reagieren muss.
Responsiveness
als Eigentum liegt nicht die alleinige Verantwortung einer Komponente. Alle Komponenten müssen für ihre eigene Herstellung verantwortlich sein, um zur Gesamtanwendung beizutragen. Eine großartige Benutzeroberfläche und ein Controller können durch scheinbar endlose Datenanforderungen unbrauchbar werden.In Bezug auf das Testen wirkt sich die Verwendung eines abgestuften Ansatzes in Bezug auf den Gesamtaufwand und die Reaktionsfähigkeit immer noch zu Ihren Gunsten aus. Wenn Sie 5 Geräte haben und einzelne Ebenen für jedes Gerät geschrieben haben, müssen Sie 15 Komponenten testen. Mit dem MVC * -Muster können Sie 8 Komponenten aus dem Test entfernen, da Sie ein gemeinsames Modell und einen gemeinsamen Controller haben. Wenn diese beiden Ebenen ihren Teil der Arbeit als reaktionsschnell ausführen, müssen Sie sie nur einmal testen. Sie können dann Ihre verbleibenden Anstrengungen auf die 5 Ansichten konzentrieren.
quelle
Ich glaube nicht, dass dies die Trennung von Bedenken verletzt, da das CSS Medienabfragen verwendet, um den Stil für eine bestimmte Bildschirmgröße zu trennen. Die Medienabfragen kapseln den Code für eine bestimmte Bildschirmgröße.
Ich denke, anstatt an Responsive Design für X Geräte zu denken, sollte Responsive Design für alle Bildschirmgrößen funktionieren. Es ist dieselbe Webseite, die nur auf die Bildschirmgröße zugeschnitten ist.
quelle