Schönheit im Auge des Betrachters

Ich habe lange Zeit Webanwendungen entwickelt. Sehr lange her. Ich habe meine ersten Webanwendungen in der Lotus Domino- Umgebung zu einer Zeit erstellt, als das Wort "Google" noch kein Verb war und die Leute Yahoo! verwendeten, um im Internet nach Informationen zu suchen. und Rambler. Ich habe Infoseek verwendet - sie hatten eine engere Suche und eine nicht so hässliche überladene Oberfläche wie Yahoo!


Das Entwickeln von Anwendungen, alle Anwendungen, nicht nur für das Web, ist eine kreative Arbeit. Es ist unwahrscheinlich, dass sich jemand mit dieser Aussage auseinandersetzt. Und Schönheit in der Kreativität ist wie eine Praxis in wissenschaftlichen Erkenntnissen - ein Kriterium der Wahrheit. Aber wenn die wissenschaftliche Praxis objektiv ist und auf Messungen basiert, dann ist Schönheit ein subjektives Thema, es hängt davon ab, wer schaut. Also habe ich mich gefragt, aber was ist eine schöne Webanwendung für mich persönlich?



(Das Auge auf KDPV ist nicht meins, das Auge ist weiblich, aber meiner Meinung nach ist das weibliche Auge auf KDPV geeigneter als das männliche Auge, weil dies KDPV ist !)


Unter dem Schnitt meine eigenen Kriterien, für die Webanwendungen im Moment als schön angesehen werden können. Sehr subjektive Darstellung aufgrund meiner persönlichen Erfahrung. Vielleicht sieht jemand meine Kriterien für Schönheit als Hässlichkeitskriterien. Seien Sie nicht überrascht, Sie haben nur eine andere Erfahrung.


Und da Sie unter den Schnitt gegangen sind, seien Sie bitte in den Kommentaren vorsichtig. Wenn Sie aufhören können, einen Artikel zu lesen, sobald Ihnen das, was darin steht, hässlich oder sogar hässlich erscheint, muss ich als Autor alle Kommentare lesen.


Lebensraum


Protokolle


Ich weiß nicht einmal, ob dieses Kriterium separat betrachtet werden sollte. Webanwendungen leben im Web und sind gezwungen, die Gesetze des Web (Protokolle) einzuhalten. Die Hauptprotokolle im Web sind TCP und IP . Viele andere Protokolle basieren auf ihnen, aber für Webanwendungen halte ich HTTP für das wichtigste (oder vielmehr für die TLS- basierte HTTPS- Erweiterung). Das heißt, eine schöne Webanwendung ist über HTTPS / TLS verfügbar (optional - über HTTP), und andere Protokolle (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) machen sie mit jedem weniger schön optional unterstütztes Protokoll. Die Anwendung selbst kann mithilfe dieser zusätzlichen Protokolle externe Ressourcen verwenden.


Bei WebSocket habe ich nicht genügend Erfahrung mit diesem Protokoll für Webanwendungen. Es sieht wunderschön und vielversprechend aus, aber ich kann nicht sagen, wie stabil und praktisch es ist.


Browser


Eine Webanwendung mit nur einem Fuß steht auf der Serverseite, der andere auf der Clientseite. Die Client-Seite ist der Browser. Ein moderner Browser bietet viele Dinge , die eine moderne Webanwendung zu ihrem Vorteil nutzen kann und sollte. Eine schöne Webanwendung nutzt die modernen Funktionen von Browsern und ist nicht erforderlich, um in Browsern zu arbeiten, die keine modernen Funktionen bieten. Ich verstehe, dass Polyphile eine notwendige Maßnahme sind, aber das ist hässlich. Letztendlich sollten nicht nur Entwickler mit modernen Technologien Schritt halten, sondern auch Benutzer und Unternehmen.


YaP


Mit den Programmiersprachen, die zum Erstellen von Webanwendungen verwendet werden, ist alles sehr verwirrend. Es gibt eine Vielzahl von Technologien für die Client-Seite von Webanwendungen, mit denen der Entwickler die Erstellung der HTML / CSS / JS-Triade erleichtern kann (etwas, das alle modernen Browser verstehen). Aber ich hatte einmal einen engen Kontakt zu GWT und finde es schön, wenn ein Entwickler den Originalcode in einem Browser sieht und nicht das Ergebnis der Kompilierung oder Transpilation. Daher ist es hässlich, Webpack und ähnliche Produkte zu verwenden, um Client-Code (IMHO) zu generieren. Je ähnlicher der im Browser ausgeführte Code dem vom Entwickler erstellten Quellcode ist, desto besser. Glaubst du nicht? Versuchen Sie, den von GWT erstellten Code in der Produktion abzulenken.


Auf der Serverseite gibt es mehr Freiheit (Java, PHP, Perl, Python, C #, Ruby, ...), aber es scheint mir schön, wenn sowohl die Serverseite als auch der Browser eine Programmiersprache verwenden - JavaScript. Dennoch bestimmt die Sprache das Denken , und gleichgesinnte Teams sind produktiver.


Menschlichkeit


Eine schöne Webanwendung sollte nützlich sein. Vor allem für eine Person als Endbenutzer nützlich. Daher kann ich Webdienste nicht als schöne Webanwendung bezeichnen. Für einen normalen Menschen (keinen Webentwickler) ist es schwierig, dies zu tun. Webdienste sind auf ihre Weise schön,


Eine schöne Webanwendung sollte eine intuitive Benutzeroberfläche haben. Sie können über Benutzeroberflächen streiten - dies ist eine eher subjektive Sache. Mit UX ist jedoch alles viel einfacher, wenn der Benutzer die Anwendung ohne das begehrte RTFM nicht verwenden kann - eine schlechte UX, eine hässliche Webanwendung. Die schönsten Webanwendungen in Bezug auf dieses Kriterium können leicht von Kindern verwendet werden, die immer noch nicht lesen können.


Reverse Scalability


Früher konnten Programme auf Disketten, jetzt auf Flash-Laufwerken übertragen oder sofort aus dem Internet heruntergeladen werden. Das Kopieren und Ausführen einer regulären Anwendung auf einem anderen Computer ist eine triviale Aufgabe. Bei Webanwendungen ist die Situation etwas Besonderes. Ein Netzwerk ist eine globale Umgebung, in der keine Klone derselben Webanwendung erforderlich sind. Ein Facebook, Twitter, Instagram, Mail.ru oder Yandex reicht im Web aus. Sie können verschiedene Webanwendungen in derselben thematischen Nische haben, jedoch mit unterschiedlichen Zielgruppen (wie Facebook und Vkontakte, Mail.ru und Gmail, Google Maps und Azure Maps). Hardwareressourcen, um die globale Verfügbarkeit solcher Webanwendungen sicherzustellen, werden beispielsweise nicht trivial benötigt .


Ich habe als Entwickler noch nie mit Webanwendungen auf einem solchen Niveau gearbeitet und kann mir nicht vorstellen, wie sie darin angeordnet sind. Um die Funktionsfähigkeit solcher Webanwendungen sicherzustellen, sind Teams relevanter Spezialisten und separate Rechenzentren erforderlich. Ich bewundere die Fähigkeit der Menschen, in einem solchen Maßstab zusammenzuarbeiten und ähnliche Produkte zu entwickeln, aber mein Schönheitsstandard ist eine Webanwendung, die auf einem separaten Laptop ausgeführt werden kann.


Eine schöne Webanwendung lässt sich nicht nur (für Benutzer), sondern auch (für Entwickler) skalieren.


"Amphibienhaftigkeit"


Für den Zugriff auf moderne Webanwendungen werden zwei Arten von Geräten verwendet:


  • Computer (Laptops, Desktops);
  • mobile Geräte (Smartphones und Tablets);

Irgendwo am Horizont taucht ein weiteres " Internet der Dinge " auf, aber bisher.


Computer von Mobilgeräten unterscheiden sich ebenso wie Landbewohner von Wasservögeln. Dies sind unterschiedliche Umgebungen und sie stellen unterschiedliche Anforderungen an die Kreaturen (Programme), die in ihnen leben. Schöne Webanwendungen sind nicht solche, die wie Amphibien aussehen, sondern solche, die wie Fische im Wasser, wie Tiere an Land und wie Vögel in der Luft ( SEO ) sind.


Ich halte hässlichen Amphibianismus für hässlich. Es ist, als würde man versuchen, auf zwei (mit SEO - drei) Stühlen zu sitzen. Besser als Fiona aus Shrek - eine tagsüber und eine nachts. Ja, teurer. Aber besser.


Cross-Sharing


Ich habe bereits im Abschnitt "Reverse Scalability" festgestellt, dass die globale Natur des Netzwerks es ermöglicht, eine Webanwendung auf dem Planeten zu haben. Daher muss sich jede Webanwendung zumindest etwas von den anderen unterscheiden, um ihr Überleben zu sichern. Meine langjährige Erfahrung mit Magento (dem Framework für den Aufbau von E-Commerce-Geschäften) zeigt jedoch, dass einzelne Webanwendungen mehr gemeinsam haben können als Unterschiede. Eine schöne Webanwendung sollte nicht nur modular aufgebaut sein, sondern auch ihre Module mit anderen Webanwendungen teilen. Bis zu einem gewissen Grad spiegelt sich diese Idee in den Spezifikationen von JSR 168 und JSR 286 sowie in Frameworks wie WordPress , Django und demselben Magento wider. Je mehr Webanwendungsmodule von anderen Webanwendungen verwendet werden, desto schöner ist es aus meiner Sicht. Mit Cross-Sharing können Sie bessere Module und damit stabilere Webanwendungen erstellen.


Mit Modul meine ich nicht Bibliotheken wie jQuery oder RequireJS, sondern größere Formationen wie Plugins in WordPress und Django . Für Bibliotheken gilt jedoch auch die These, dass die weite Verbreitung der Bibliothek es ermöglicht, sie besser und stabiler zu machen.


Harvard-Architektur


Die Harvard-Architektur beinhaltet im Gegensatz zum derzeit herrschenden Princeton- Ball die Trennung von Code und Daten. Die Architektur ist nicht aufgegangen, aber die Idee selbst scheint mir schön. Speziell für Webanwendungen. Jede Statik (HTML / CSS / JS / Images / ...) ist Code. Es kann und sollte zumindest auf der Serverseite, zumindest auf der Clientseite zwischengespeichert werden. Und die Daten sind REST / JSON (schön) oder SOAP / XML (etwas weniger schön). Oder WebSockets / JSON (möglicherweise die beste Option, aber ich habe es nicht versucht).


Lokalisierung


Bei der Entwicklung von Webanwendungen sind mir zwei Dinge besonders wichtig: eine mehrsprachige Benutzeroberfläche und Zeitzonen. Ich selbst komme aus Lettland, wir verwenden drei Sprachen: LV, RU, EN. Eine schöne Webanwendung sollte die Möglichkeit bieten, nicht nur mehrere Sprachen in der Anwendung selbst zu verwenden, sondern auch die Anzahl der Sprachen zu erweitern, die mit externen Ressourcen wie Crowdin verwendet werden . Gleiches gilt für die Module, aus denen die Webanwendung erstellt wird.


Mit Zeitzonen ist alles einfach. In allen Fällen, in denen nicht klar ist, wie die Uhrzeit verarbeitet werden soll, gehen Sie folgendermaßen vor: Alles, was sich auf dem Server befindet, wird an den Server gesendet und kommt vom Server - UTC, alles, was auf dem Client angezeigt wird - entsprechend der Zeitzone von Benutzerprofil. Das ist schön.


Schmieden statt Todessterne


Es war einmal, jede mehr oder weniger große Stadt hatte ihre eigene Schmiede. Vielleicht nicht einer. Einige sind besser, andere schlechter. Es gab Schmiedemeister auf der ganzen Welt, und es gab diejenigen, die aus keiner Alternative kamen. Kriege, Epidemien, Naturkatastrophen fegten durch. Einige Städte verschwanden zusammen mit der Bevölkerung. Aber die Schmiedekunst blieb zu leben. Anstelle der verschwundenen Städte wurden neue errichtet und es entstanden auch Schmieden.


Schauen Sie sich jetzt einen Dienst wie DNS an . Wenn sich die Root-Server hinlegen, hat die ganze Welt Fieber .


Meiner Meinung nach kann eine schöne Webanwendung nicht so groß sein wie Facebook oder Mail.ru. Dies ist näher am Todesstern , sowohl in Bezug auf die für den Bau erforderlichen Ressourcen als auch in Bezug auf die für die Aufrechterhaltung der Funktionsfähigkeit erforderlichen Ressourcen. Ja, falls Facebook zerstört wird, wird die Menschheit nicht verschwinden, ihre Funktionen werden schnell von anderen Anwendungen übernommen (die gleiche VK in der Russischen Föderation und angrenzend, Instagram, Twitter, ...). Trotzdem ist es hässlich, einen bedeutenden Teil der Weltbevölkerung an eine Anwendung zu binden. Darüber hinaus in Gegenwart von viel stabileren Alternativen (zum Beispiel Torrents ).


Zusammenfassung


Wenn Sie bis zum Ende gelesen haben und ratlos sind - „ Was war das? “, Dann drücke ich Ihnen mein aufrichtiges Mitgefühl aus. Ich habe dich nicht dazu gebracht, das zu lesen. Ich habe nur versucht, meine Gedanken in Worte zu fassen, um diejenigen zu finden, die das Gleiche denken. Vielleicht kann ich mit ihnen einige Aspekte der Erstellung schöner Webanwendungen diskutieren und die Antworten auf meine Fragen herausfinden. Und ich habe viele davon.


Danke fürs Lesen.

Source: https://habr.com/ru/post/de461749/


All Articles