Schönheit liegt im Auge des Betrachters

Ich beschĂ€ftige mich schon lange mit der Entwicklung von Webanwendungen. Sehr lange. Meine ersten Webanwendungen in der Umgebung Lotus Domino habe ich in den Zeiten erstellt, als das Wort „google“ noch kein Verb war und die Menschen fĂŒr die Informationssuche im Internet Yahoo! und Rambler verwendeten. Ich nutzte jedoch Infoseek– sie hatten eine eingrenzende Suche und kein so ĂŒberladenes Interface wie Yahoo!

Die Entwicklung von Anwendungen, von jeglichen Anwendungen, nicht nur fĂŒr das Netz – das ist kreative Arbeit. Kaum jemand wird dieser Aussage widersprechen. Und die Schönheit im kreativen Schaffen ist wie die Praxis im wissenschaftlichen Erkenntnisprozess – das Kriterium der Wahrheit. Aber wĂ€hrend die wissenschaftliche Praxis objektiv ist und auf Messungen basiert, ist die Schönheit ein subjektives Thema, das davon abhĂ€ngt, wer schaut. Also stellte ich mir die Frage, was fĂŒr mich persönlich eine schöne Webanwendung ausmacht?

Schönheit liegt im Auge des Betrachters

(an KDPV mein Blick, weiblicher Blick, aber, IMHO, ist der weibliche Blick auf KDPV angemessener als der mĂ€nnliche, schließlich ist das – KDPV!)

Unter dem Artikel sind meine eigenen Kriterien, was eine Webanwendung derzeit als schön erscheinen lĂ€sst. Eine sehr subjektive Darstellung, die auf meiner persönlichen Erfahrung basiert. Vielleicht erscheinen einigen meine Kriterien des Schönen als Kriterien des HĂ€sslichen. Seien Sie nicht ĂŒberrascht, Sie haben einfach eine andere Erfahrung.

Und da Sie bereits unter dem Artikel sind, bitte seien Sie vorsichtig mit Kommentaren. Denn wenn Sie die Artikel lesen können und sie Ihnen als unattraktiv oder sogar hÀsslich erscheinen, bin ich als Autor gezwungen, alle Kommentare zu lesen.

Lebensraum

Protokolle

Ich weiß nicht einmal, ob es sinnvoll ist, dieses Kriterium gesondert anzufĂŒhren. Webanwendungen leben im Netz und sind gezwungen, sich an die Gesetze des Netzes (Protokolle) zu halten. Die Hauptprotokolle im Netz sind TCP und IP. Viele andere Protokolle basieren darauf, aber fĂŒr Webanwendungen halte ich fĂŒr das wichtigste HTTP (besser gesagt, dessen Erweiterung HTTPS basierend auf TLS). Das heißt, eine schöne Webanwendung ist ĂŒber HTTPS/TLS zugĂ€nglich (als Alternative – ĂŒber HTTP), wĂ€hrend andere Protokolle (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, 
) sie mit jedem zusĂ€tzlich unterstĂŒtzten Protokoll weniger attraktiv machen. Die Anwendung selbst kann mit Hilfe dieser zusĂ€tzlichen Protokolle externe Ressourcen nutzen.

Was das betrifft WebSocket, dann habe ich nicht genĂŒgend Erfahrung mit der Verwendung dieses Protokolls bei Webanwendungen. Es sieht schön und vielversprechend aus, aber wie stabil und praktisch das ist – kann ich nicht sagen.

Browser

Webanwendungen stehen nur mit einem Bein auf der Serverseite, das andere – auf der Clientseite. Die Clientseite ist der Browser. Moderne Browser bieten eine Menge an, was moderne Webanwendungen zu ihrem Vorteil nutzen können und sollten. Eine ansprechende Webanwendung nutzt die modernen Möglichkeiten der Browser und muss nicht in den Browsern funktionieren, die diese modernen Möglichkeiten nicht bieten. Ich verstehe, dass Polyfills eine Notwendigkeit sind, aber das ist nicht schön. Schließlich sollten nicht nur Entwickler mit den modernen Technologien Schritt halten, sondern auch Benutzer und Unternehmen.

PL

Die Programmiersprachen, die zur Erstellung von Webanwendungen verwendet werden, sind sehr verworren. FĂŒr den Clientteil von Webanwendungen gibt es zahlreiche Technologien, die es dem Entwickler erleichtern, die Triade aus HTML/CSS/JS zu erstellen (das, was alle modernen Browser verstehen). Aber ich habe mich damals intensiv mit GWT beschĂ€ftigt und finde es schön, wenn der Entwickler im Browser den Originalcode sieht und nicht das Ergebnis einer Kompilierung oder Transpilierung. Daher ist die Verwendung von Webpackund Ă€hnlichen Produkten zur Generierung von Clientcode, IMHO, nicht schön. Je mehr der im Browser ausfĂŒhrbare Code dem vom Entwickler erstellten Quellcode Ă€hnelt, desto besser. Glauben Sie nicht? Versuchen Sie, den im Produktionsumfeld generierten Code, der mit GWT erstellt wurde, zu debuggen.

Auf der Serverseite gibt es mehr FreirĂ€ume (Java, PHP, Perl, Python, C#, Ruby,
), aber ich finde es schön, wenn sowohl auf der Serverseite als auch im Browser dieselbe Programmiersprache verwendet wird – JavaScript. Schließlich bestimmt die Sprache das Denken, und die Teams von Gleichgesinnten sind produktiver.

Menschlichkeit

Eine ansprechende Webanwendung sollte nĂŒtzlich sein. NĂŒtzlich, in erster Linie, fĂŒr den Menschen als Endverbraucher. Daher kann ich eine Webanwendung nicht als schön betrachten, Webdienste. FĂŒr den durchschnittlichen Menschen (nicht Webentwickler) sind sie schwierig. Webdienste haben auf ihre Weise ihren Reiz,

Eine ansprechende Webanwendung sollte eine intuitive BenutzeroberflĂ€che haben. Es kann ĂŒber UI‘Schönheit’ – das ist eine ziemlich subjektive Angelegenheit. Aber bei UX ist alles viel einfacher, wenn der Benutzer die Anwendung nicht ohne das begehrte Ziel nutzen kann. RTFM — schlechtes UX, unattraktive Webanwendung. Die schönsten Webanwendungen in Bezug auf dieses Kriterium können problemlos von Kindern genutzt werden, die noch nicht lesen können.

RĂŒckwĂ€rtige Skalierbarkeit

FrĂŒher konnten Programme auf Disketten ĂŒbertragen werden, heute – auf USB-Sticks oder direkt aus dem Netz heruntergeladen werden. Ein normales Programm zu kopieren und auf einem anderen Rechner zu starten, ist eine triviale Aufgabe. Bei Webanwendungen ist die Situation jedoch etwas anders. Das Netz ist eine globale Umgebung, in der es nicht notwendig ist, Klone derselben Webanwendung zu haben. Es genĂŒgt ein Facebook, Twitter, Instagram, Mail.ru oder Yandex. Man kann verschiedene Webanwendungen in derselben thematischen Nische haben, jedoch mit unterschiedlichen Zielgruppen (wie Facebook und VKontakte, Mail.ru und Gmail, Google Maps und Azure Maps). Die Hardware-Ressourcen fĂŒr die globale VerfĂŒgbarkeit solcher Webanwendungen sind, sagen wir mal, nicht trivial.

Ich habe nie mit Webanwendungen solcher Art als Entwickler gearbeitet und kann mir nicht vorstellen, wie sie dort innen aufgebaut sind. Um die FunktionalitĂ€t solcher Webanwendungen zu gewĂ€hrleisten, sind Teams von entsprechenden Spezialisten und separate Rechenzentren notwendig. Ich bewundere die FĂ€higkeit der Menschen zur Kooperation in solch großem Maßstab und zur Schaffung solcher Produkte, aber mein Schönheitsideal ist eine Webanwendung, die auf einem einzelnen Laptop gestartet werden kann.

Eine schöne Webanwendung skaliert nicht nur nach oben und außen (fĂŒr Benutzer), sondern auch nach unten und nach innen (fĂŒr Entwickler).

„Amphibie“

FĂŒr den Zugriff auf moderne Webanwendungen werden GerĂ€te von zwei Typen verwendet:

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

Irgendwo am Horizont blitzt noch das „Internet der Dinge“, aber das ist es auch schon.

Computer unterscheiden sich von mobilen GerĂ€ten so stark wie Landtiere von Wasserlebewesen. Es sind verschiedene Umgebungen, und sie stellen unterschiedliche Anforderungen an die Lebewesen (Programme), die darin leben. Schöne Webanwendungen sind nicht die, die wie Amphibien, sondern die, die im Wasser – wie Fische, an Land – wie Tiere und in der Luft (SEO) – wie Vögel sind.

Ich halte „Amphibie“ fĂŒr unattraktiv, das ist wie der Versuch, auf zwei (mit SEO – drei) StĂŒhlen zu sitzen. Besser wie Fiona aus Shrek – tagsĂŒber eine, nachts eine andere. Ja, das kostet mehr. Aber es ist besser.

Cross-sharing

Ich habe bereits im Punkt „RĂŒckwĂ€rtige Skalierbarkeit“ erwĂ€hnt, dass die GlobalitĂ€t des Netzwerks die Möglichkeit bietet, eine einzige Webanwendung fĂŒr den gesamten Planeten zu haben. Daher sollte jede Webanwendung sich in irgendeiner Weise von anderen unterscheiden, um ihr Überleben zu sichern. Dennoch sagt meine jahrelange Erfahrung mit Magento (Framework fĂŒr Online-Shops) aus, dass zwischen einzelnen Webanwendungen oft mehr Gemeinsamkeiten als Unterschiede bestehen. Eine ansprechende Webanwendung sollte nicht nur modular sein, sondern auch ihre Module mit anderen Webanwendungen teilen. In gewissem Maße wird diese Idee in Spezifikationen JSR 168 und JSR 286 und in Frameworks wie WordPress, Django und dem gleichen Magento reflektiert. Je mehr Module der Webanwendung von anderen Webanwendungen verwendet werden, desto ansprechender ist sie meiner Meinung nach. Cross-Sharing ermöglicht es, qualitativ hochwertigere Module zu erstellen und damit stabilere Webanwendungen.

Unter einem Modul verstehe ich nicht Bibliotheken wie jQuery oder RequireJS – eher grĂ¶ĂŸere EntitĂ€ten, wie z. B. Plugins in WordPress und Django. Aber auch fĂŒr Bibliotheken gilt, dass eine breite Nutzung die QualitĂ€t und Robustheit gewĂ€hrleistet.

Die Harvard-Architektur

Die Harvard-Architektur, im Gegensatz zur derzeit dominierenden Princeton-Architektur,beinhaltet eine Trennung von Code und Daten. Die Architektur ist nicht durchgedrungen, aber die Idee selbst erscheint mir schön. Besonders fĂŒr Webanwendungen. Jede Statik (HTML/CSS/JS/Bilder/
) ist Code. Man kann und sollte ihn sowohl serverseitig als auch clientseitig cachen. Und Daten sind REST/JSON (schön) oder SOAP/XML (etwas weniger schön). Oder WebSockets/JSON (vielleicht die beste Lösung, aber ich habe es nicht ausprobiert).

Lokalisierung

Es gibt zwei Dinge, die mich bei der Entwicklung von Webanwendungen besonders beschĂ€ftigen – die mehrsprachige BenutzeroberflĂ€che und Zeitzonen. Ich komme aus Lettland, wo drei Sprachen im Umlauf sind: LV, RU, EN. Eine ansprechende Webanwendung sollte nicht nur die Verwendung mehrerer Sprachen innerhalb der Anwendung ermöglichen, sondern auch die Erweiterung der verfĂŒgbaren Sprachen durch externe Ressourcen, wie Crowdin. Das gilt auch fĂŒr die Module, aus denen die Webanwendung besteht.

Mit den Zeitzonen ist alles einfach: In allen FĂ€llen, in denen unklar ist, wie mit Datum und Uhrzeit umzugehen ist, machen Sie Folgendes: Alles, was sich auf dem Server befindet, wird auf den Server gesendet und vom Server empfangen – UTC, alles, was auf der Client-Seite angezeigt wird – gemĂ€ĂŸ der Zeitzone im Benutzerprofil. Das ist schön.

Schmieden anstelle von „Sternen des Todes“

Vor langer Zeit hatte jede mehr oder weniger große Stadt ihre eigene Schmiede. Vielleicht sogar mehr als eine. Einige waren besser, andere schlechter. Es gab Schmiedemeister, die weltweit bekannt waren, und es gab solche, zu denen man aus Alternativlosigkeit ging. Kriege, Epidemien, Naturkatastrophen zogen durch das Land. Einige StĂ€dte verschwanden zusammen mit ihren Einwohnern. Aber das Schmiedehandwerk lebte weiter. Anstelle der verschwundenen StĂ€dte wurden neue erbaut, und auch dort erschienen Schmieden.

Und jetzt schauen Sie sich einen Dienst wie DNSan. Wenn die Root-Server ausfallen, zittert die ganze Welt.

Meiner Meinung nach kann eine schöne Webanwendung nicht so groß sein wie Facebook oder Mail.ru. Das kommt schon nĂ€her an ein „Stern des Todes“ sowohl hinsichtlich der Ressourcen, die fĂŒr den Bau benötigt werden, als auch hinsichtlich der Ressourcen, die fĂŒr den Betrieb erforderlich sind. Ja, im Falle der Zerstörung von Facebook wird die Menschheit nicht aussterben, seine Funktionen werden relativ schnell von anderen Anwendungen ĂŒbernommen (von dergleichen wie VK im Gebiet der RF und angrenzend, Instagram, Twitter, 
). Dennoch ist es nicht schön, wenn ein wesentlicher Teil der Bevölkerung des Planeten an eine einzige Anwendung gebunden ist. Umso mehr gibt es weitaus stabilere Alternativen (zum Beispiel, Torrents).

Zusammenfassung

Wenn Sie bis zum Ende durchgelesen haben und verwirrt sind – „was war das?“, dann drĂŒcke ich Ihnen mein aufrichtiges MitgefĂŒhl aus. Ich habe Sie nicht gezwungen, das zu lesen. Ich habe nur versucht, meine Gedanken in Worte zu fassen, um diejenigen zu finden, die Ă€hnlich denken. Vielleicht kann ich mit ihnen einige Aspekte der Erstellung schöner Webanwendungen besprechen und Antworten auf meine Fragen finden. Und davon habe ich viele.

Vielen Dank fĂŒrs Lesen.

Quelle: habr.com

60GB SSD 8Gb DDR4