Schönheit liegt im Auge des Betrachters

Ich beschäftige mich schon lange mit der Entwicklung von Webanwendungen. Sehr lange. Meine ersten Webanwendungen habe ich in der Umgebung Lotus Domino entwickelt, als das Wort „google“ noch kein Verb war und die Menschen zur Informationssuche im Internet Yahoo! und Rambler verwendeten. Ich nutzte Infoseek– sie hatten eine fokussierte Suchfunktion und eine nicht so überladenen Interface wie Yahoo!

Die Entwicklung von Anwendungen, egal welche, nicht nur für das Web, ist ein kreativer Prozess. Kaum jemand wird dieser Aussage widersprechen. Die Schönheit in der Kreativität ist wie die Praxis im wissenschaftlichen Erkenntnisprozess – ein Kriterium der Wahrheit. Während die wissenschaftliche Praxis objektiv und messbar ist, ist Schönheit subjektiv und hängt davon ab, wer schaut. Daher habe ich mich gefragt, was für mich persönlich eine schöne Webanwendung ausmacht?

Schönheit liegt im Auge des Betrachters

(beim KDPV, mein Blick ist nicht männlich, sondern weiblich, aber IMHO ist der weibliche Blick auf KDPV passender als der männliche, schließlich ist das – KDPV!)

Unter dem Cut finden Sie meine persönlichen Kriterien dafür, welches Webanwendung derzeit als ansprechend gelten kann. Eine sehr subjektive Darstellung, geprägt von meinen persönlichen Erfahrungen. Möglicherweise erscheinen meinen Kriterien der Schönheit die Kriterien der Hässlichkeit. Seien Sie nicht überrascht, denn Ihr Erfahrungshorizont könnte anders sein.

Und da Sie unter den Cut gegangen sind, seien Sie bitte vorsichtig mit Ihren Kommentaren. Denn wenn Sie das Lesen des Artikels sofort einstellen können, sobald Ihnen der Inhalt unattraktiv oder sogar hässlich erscheint, muss ich als Autor alle Kommentare lesen.

Lebensraum

Protokolle

Ich bin mir nicht einmal sicher, ob es sinnvoll ist, dieses Kriterium gesondert zu erwähnen. Webanwendungen leben im Netz und müssen den Gesetzen des Netzes (Protokollen) entsprechen. Die wichtigsten Protokolle im Netz sind TCP und IP. Darauf basieren viele andere Protokolle, aber für Webanwendungen halte ich es für am wichtigsten, HTTP (oder besser gesagt, seine Erweiterung HTTPS basierend auf TLS). Das heißt, eine ansprechende Webanwendung ist über HTTPS/TLS (alternativ auch über HTTP) verfügbar, während andere Protokolle (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, …) sie mit jedem weiteren unterstützten Protokoll weniger attraktiv machen. Die Anwendung selbst kann mit Hilfe dieser zusätzlichen Protokolle auf externe Ressourcen zugreifen.

Was WebSocket, ich habe allerdings nicht genug Erfahrung mit der Nutzung dieses Protokolls bei Webanwendungen. Es sieht ansprechend und vielversprechend aus, aber wie stabil und praktisch es ist, kann ich nicht sagen.

Browser

Eine Webanwendung steht nur mit einem Bein auf der Serverseite, das andere Bein steht auf der Clientseite. Die Clientseite ist der Browser. Ein moderner Browser bietet eine Vielzahl von Funktionen, die eine moderne Webanwendung nutzen sollte und nutzen muss. Eine ansprechende Webanwendung nutzt die modernen Möglichkeiten von Browsern und ist nicht gezwungen, in denen zu funktionieren, die diese modernen Möglichkeiten nicht bieten. Ich verstehe, dass Polyfills eine Notlösung sind, aber das ist unattraktiv. Schließlich sollten nicht nur Entwickler mit den modernen Technologien Schritt halten, sondern auch Nutzer und Unternehmen.

Programmiersprache

Die Welt der Programmiersprachen, die für die Erstellung von Webanwendungen verwendet werden, ist sehr komplex. Für die Client-Seite von Webanwendungen stehen eine Vielzahl von Technologien zur Verfügung, die es Entwicklern erleichtern, die Triade HTML/CSS/JS zu erstellen (die von allen modernen Browsern verstanden wird). Ich habe mich früher intensiv mit GWT beschäftigt und finde es ansprechend, wenn der Entwickler im Browser den Originalcode sieht und nicht das Ergebnis einer Kompilierung oder Transpilierung. Deshalb halte ich den Einsatz von webpackund ähnlichen Produkten zur Generierung von Client-Code für wenig gelungen. Je mehr der im Browser ausgeführte Code dem ursprünglichen Code des Entwicklers ähnelt, desto besser. Glauben Sie mir nicht? Versuchen Sie, in der Produktion den von GWT erzeugten Code zu debuggen.

Auf der Serverseite gibt es mehr Freiräume (Java, PHP, Perl, Python, C#, Ruby, …), aber ich finde es ebenfalls angenehm, wenn auf der Serverseite und im Browser eine einheitliche Programmiersprache - JavaScript - verwendet wird. Schließlich bestimmt die Sprache das Denken, und Teams von Gleichgesinnten sind produktiver.

Menschlichkeit

Eine ansprechende Webanwendung muss vor allem nützlich sein – für die Menschen als Endverbraucher. Daher kann ich eine ästhetisch ansprechende Webanwendung nicht einfach als schön bezeichnen. Webdienste. Für gewöhnliche Nutzer (nicht Webentwickler) sind sie oft schwierig zu verstehen. Webdienste sind auf ihre eigene Weise attraktiv,

Eine schöne Webanwendung sollte eine intuitive Benutzeroberfläche bieten. Man kann darüber streiten, UISchönheit ist eine recht subjektive Angelegenheit. Doch beim UX ist es viel einfacher: Wenn ein Nutzer die Anwendung ohne das begehrte 2. Wie schreibt man? nicht nutzen kann, handelt es sich um schlechtes UX und eine unattraktive Webanwendung. Die schönsten Webanwendungen in diesem Sinne können problemlos von Kindern verwendet werden, die noch nicht lesen können.

Rückschrittliche Skalierbarkeit

Früher konnten Programme auf Disketten übertragen werden, heutzutage geschieht dies mit USB-Sticks oder man lädt sie direkt aus dem Internet herunter. Ein normales Anwendung zu kopieren und auf einem anderen Rechner zu starten, ist eine banale Aufgabe. Bei Webanwendungen sieht die Situation etwas anders aus. Das Internet ist eine globale Umgebung, in der es nicht notwendig ist, Klone derselben Webanwendung zu haben. Es gibt ausreichend Facebook, Twitter, Instagram, Mail.ru oder Yandex. Verschiedene Webanwendungen können im selben Themenbereich existieren, aber mit unterschiedlichen Zielgruppen (wie Facebook und Vkontakte, Mail.ru und Gmail, Google Maps und Azure Maps). Um die globale Verfügbarkeit solcher Webanwendungen sicherzustellen, sind, sagen wir mal, nicht trivial.

Ich habe nie mit Webanwendungen auf diesem Niveau als Entwickler gearbeitet und kann mir nicht vorstellen, wie sie intern aufgebaut sind. Für den Betrieb solcher Webanwendungen sind Teams von entsprechenden Fachleuten und separate Rechenzentren erforderlich. Ich bewundere die Fähigkeit der Menschen zur Kooperation in solchen Maßstäben und zur Schaffung ähnlicher Produkte, aber mein Ideal von Schönheit ist eine Webanwendung, die man auf einem einzelnen Laptop starten kann.

Eine ansprechende Webanwendung kann nicht nur für Nutzer skaliert werden, sondern auch für Entwickler, und zwar sowohl nach oben als auch nach unten.

Amphibien

Um auf moderne Webanwendungen zuzugreifen, werden zwei Arten von Geräten verwendet:

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

Irgendwo am Horizont taucht auch noch das „Internet der Dinge“, aber das ist noch Zukunftsmusik.

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

Ich halte die „Amphibie“ für wenig ansprechend, das ist wie der Versuch, auf zwei (mit SEO sogar drei) Stühlen zu sitzen. Besser wie Fiona aus Shrek — tagsüber eine, und nachts eine andere. Ja, es kostet mehr. Aber es ist besser.

Cross-Sharing

Ich habe bereits im Punkt „Rückwärts-Skalierbarkeit“ erwähnt, dass die Globalität des Internets die Möglichkeit bietet, eine einzige Webanwendung für den ganzen Planeten zu haben. Daher sollte sich jede Webanwendung in gewisser Weise von anderen abheben, um ihr Überleben zu sichern. Dennoch zeigt meine langjährige Erfahrung, dass zwischen verschiedenen Webanwendungen oft mehr Gemeinsamkeiten als Unterschiede bestehen. Magento Die Grundlage für den Aufbau von E-Commerce-Shops deutet darauf hin, dass eine schöne Webanwendung nicht nur modular sein sollte, sondern auch ihre Module mit anderen Webanwendungen teilen muss. In gewissem Maße spiegelt diese Idee die Spezifikationen JSR 168 und JSR 286 sowie Frameworks wie und das gleiche Magento wider. Je mehr Module einer Webanwendung von anderen Webanwendungen verwendet werden, desto ansprechender erscheint sie mir. Cross-Sharing ermöglicht die Erstellung qualitativ hochwertigerer Module und folglich stabilerer Webanwendungen. WordPress, Django Unter einem Modul verstehe ich nicht Bibliotheken wie jQuery oder RequireJS – eher größere Einheiten, wie Plugins in

. Aber auch für Bibliotheken gilt die Aussage, dass eine weit verbreitete Bibliothek dazu beiträgt, sie qualitativ hochwertiger und stabiler zu machen. WordPress und Django. Но для библиотек также справедлив тезис, что широкое распространение библиотеки позволяет сделать её более качественной и устойчивой.

Harvard-Architektur

Harvard-Architektur, im Gegensatz zur derzeit dominierenden Princeton-Architektur, impliziert die Trennung von Code und Daten. Die Architektur hat sich nicht durchgesetzt, aber die Idee finde ich persönlich ansprechend. Besonders für Webanwendungen. Jede statische Datei (HTML/CSS/JS/Bilder/…) ist Code. Man kann und sollte sie sowohl serverseitig als auch clientseitig cachen. Und die Daten sind REST/JSON (schön) oder SOAP/XML (etwas weniger schön). Oder WebSockets/JSON (vielleicht die beste Option, aber ich habe es nicht ausprobiert).

Lokalisierung

Es gibt zwei Dinge, die mich besonders bei der Entwicklung von Webanwendungen beschäftigen – das mehrsprachige Interface und die Zeitzonen. Ich komme aus Lettland, wo wir drei Sprachen verwenden: LV, RU, EN. Eine ansprechende Webanwendung sollte nicht nur die Nutzung mehrerer Sprachen innerhalb der Anwendung ermöglichen, sondern auch die Erweiterung der verwendeten Sprachen durch externe Ressourcen wie Crowdin. Das gilt auch für die Module, aus denen die Webanwendung besteht.

Mit Zeitzonen ist alles ganz einfach: In allen Fällen, in denen unklar ist, wie Datum und Uhrzeit verarbeitet werden, gilt: Alles, was auf dem Server liegt, zur Server geschickt wird und vom Server kommt – ist UTC, alles, was auf dem Client angezeigt wird – gemäß der Zeitzone im Nutzerprofil. Das ist elegant.

Schmieden statt „Todesstern“

Vor langer Zeit hatte jede größere Stadt ihre eigene Schmiede. Vielleicht sogar mehr als eine. Einige waren besser, andere schlechter. Es gab Schmiede, die weltweit bekannt waren, und solche, zu denen man nur aus Mangel an Alternativen ging. Kriege, Epidemien und Naturkatastrophen hinterließen ihre Spuren. Einige Städte verschwanden zusammen mit ihrer Bevölkerung. Doch das Schmiedehandwerk lebte weiter. Anstelle der verschwundenen Städte wurden neue erbaut und auch dort entstanden Schmieden.

Schauen Sie sich jetzt einen Service wie DNSan. Wenn die Root-Server ausfallen, wird die gesamte Welt durchgeschüttelt..

Meiner Meinung nach kann eine schöne Webanwendung nicht so groß sein wie Facebook oder Mail.ru. Das neigt schon eher zum „Todesstern".» sowohl hinsichtlich der Ressourcen, die für den Aufbau erforderlich sind, als auch hinsichtlich der Ressourcen, die für den Betrieb notwendig sind. Ja, sollte Facebook eines Tages verschwinden, wird die Menschheit nicht aussterben, denn seine Funktionen werden schnell von anderen Anwendungen übernommen (wie zum Beispiel VK in der RF und angrenzenden Gebieten, Instagram, Twitter, …). Dennoch ist es problematisch, einen erheblichen Teil der Weltbevölkerung auf eine einzige Anwendung zu konzentrieren — das ist nicht ideal. Zumal es viel robustere Alternativen gibt (wie Torrents).

Zusammenfassung

Wenn Sie bis hier gelesen 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 Web-Anwendungen besprechen und Antworten auf meine Fragen finden. Und ich habe viele Fragen.

Vielen Dank für Ihre Lektüre.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster