Je développe des applications Web depuis longtemps. Il y a longtemps. Vos premières applications web dans l'environnement J'ai créé à l'époque où le mot "Google" n'était pas encore un verbe, et pour rechercher des informations sur Internet, les gens utilisaient Yahoo! et Rambler. Je l'ai utilisé 'om - ils avaient une recherche plus étroite et pas une interface aussi laide et surchargée que Yahoo!
Le développement d'applications, de n'importe quelle application, pas seulement pour le Web, est un travail créatif. Il est peu probable que quiconque conteste cette affirmation. Et la beauté dans la créativité est comme la pratique dans la connaissance scientifique : un critère de vérité. Mais si la pratique scientifique est objective et basée sur des mesures, alors la beauté est un sujet subjectif, selon qui regarde. Alors je me suis demandé : qu’est-ce qu’une belle application Web pour moi personnellement ?

(sur le KDPV, l'œil n'est pas le mien, c'est l'œil d'une femme, mais, à mon humble avis, l'œil d'une femme sur le KDPV est plus approprié que celui d'un homme, car c'est - !)
Sous la coupe se trouvent mes propres critères pour déterminer quelle application Web peut actuellement être considérée comme belle. Une déclaration très subjective basée sur mon expérience personnelle. Peut-être que pour certains, mes critères de beauté ressembleront à des critères de laideur. Ne soyez pas surpris, vous vivez simplement une expérience différente.
Et puisque vous êtes déjà entré dans le cut, soyez prudent dans vos commentaires. Après tout, si vous pouvez arrêter de lire un article dès que ce qui y est dit vous semble laid ou même laid, alors moi, en tant qu'auteur, je suis obligé de lire tous les commentaires.
Habitat
Protocoles
Je ne sais même pas si cela vaut la peine de faire ce critère séparément. Les applications Web vivent sur le Web et sont obligées de se conformer aux lois du Web (protocoles). Les principaux protocoles sur Internet sont : и . De nombreux autres protocoles sont basés sur eux, mais pour les applications Web, je considère le plus important (ou plutôt son extension sur la base de ). Autrement dit, une belle application Web est disponible via HTTPS/TLS (en option - via HTTP), et d'autres protocoles (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) la rendent moins belle, chacun étant pris en charge en plus. protocole. L'application elle-même peut utiliser des ressources externes en utilisant ces protocoles supplémentaires.
en ce qui concerne , alors je n'ai pas assez d'expérience dans l'utilisation de ce protocole avec des applications Web. Il a l’air beau et prometteur, mais je ne peux pas dire à quel point il est stable et pratique.
Les navigateurs
Une application web n’a qu’un pied côté serveur, l’autre côté client. Le côté client est le navigateur. Un navigateur moderne fournit , qu'une application Web moderne peut et doit utiliser à son avantage. Une belle application Web utilise les capacités d'un navigateur moderne et n'est pas obligée de fonctionner dans des navigateurs qui n'offrent pas de fonctionnalités modernes. je comprends que - c'est une mesure nécessaire, mais c'est moche. En fin de compte, non seulement les développeurs doivent suivre les technologies modernes, mais cela s’applique également aux utilisateurs et aux entreprises.
JP
Avec les langages de programmation utilisés pour créer des applications Web, tout est très déroutant. Pour le côté client des applications Web, il existe de nombreuses technologies qui permettent au développeur de faciliter la création de la triade HTML/CSS/JS (ce que comprennent tous les navigateurs modernes). Mais à un moment donné, je suis entré en contact étroit avec et je pense que c'est beau quand un développeur voit le code original dans le navigateur, et non le résultat d'une compilation ou d'une transpilation. Utilisez donc 'et les produits similaires pour générer du code client, à mon humble avis, sont laids. Plus le code exécuté dans le navigateur est similaire au code source créé par le développeur, mieux c'est. Vous ne me croyez pas ? Essayez de déboguer le code généré par GWT en production.
Il y a plus de liberté côté serveur (Java, PHP, perl, python, C#, Ruby, ...), mais il me semble que c'est beau quand le même langage de programmation est utilisé à la fois côté serveur et dans le navigateur - JavaScript. Toujours , et les équipes composées de personnes partageant les mêmes idées sont plus productives.
Humanité
Une belle application Web devrait être utile. Utile avant tout pour l’homme, en tant que consommateur final. Par conséquent, je ne peux pas appeler cela une belle application Web . Il est difficile pour une personne ordinaire (pas un développeur Web) de travailler avec eux. Les services Web sont beaux à leur manière,
Une belle application Web doit avoir une interface intuitive. On peut discuter de C'est une chose plutôt subjective. Nez tout est beaucoup plus simple si l'utilisateur ne peut pas utiliser l'application sans le précieux - mauvaise UX, application Web moche. Les plus belles applications web relatives à ce critère peuvent être facilement utilisées par des enfants qui ne savent pas encore lire.
Évolutivité inverse
Autrefois, les programmes pouvaient être transférés sur des disquettes, maintenant - sur des lecteurs flash ou immédiatement téléchargés depuis Internet. Copier une application standard et l'exécuter sur une autre machine est une tâche triviale. La situation des applications Web est quelque peu particulière. Le réseau est un environnement global dans lequel il n’est pas nécessaire de disposer de clones de la même application Web. Sur Internet, un seul Facebook, Twitter, Instagram, Mail.ru ou Yandex suffit. Vous pouvez avoir différentes applications Web dans la même niche thématique, mais avec des publics différents (comme Facebook et Vkontakte, Mail.ru et Gmail, Google Maps et Azure Maps). Des ressources matérielles sont nécessaires pour garantir la disponibilité mondiale de ces applications Web, disons : .
Je n'ai jamais travaillé avec des applications Web de ce niveau en tant que développeur et je n'ai aucune idée de leur fonctionnement. Pour garantir la fonctionnalité de ces applications Web, des équipes de spécialistes compétents et des centres de données distincts sont nécessaires. J'admire la capacité des gens à collaborer à une telle échelle et à créer de tels produits, mais mon standard de beauté est une application Web qui peut être exécutée sur un ordinateur portable séparé.
Une belle application Web évolue non seulement vers le haut et vers l’extérieur (pour les utilisateurs), mais également vers le bas et vers l’intérieur (pour les développeurs).
« Amphibie »
Pour accéder aux applications Web modernes, deux types d'appareils sont utilisés :
- ordinateurs (ordinateurs portables, ordinateurs de bureau);
- appareils mobiles (smartphones et tablettes) ;
Quelque part à l'horizon se profile davantage "« Mais c’est tout pour l’instant.
Les ordinateurs diffèrent des appareils mobiles autant que les créatures terrestres diffèrent des oiseaux aquatiques. Ce sont des environnements différents et ils imposent des exigences différentes aux créatures (programmes) qui y vivent. Les belles applications Web ne sont pas celles qui ressemblent , et ceux qui sont dans l'eau sont comme des poissons, sur terre comme des animaux, et dans les airs () - comme les oiseaux.
Je pense que c'est moche"», c'est comme essayer de s'asseoir sur deux (avec SEO - trois) chaises. Mieux comme Fiona de Shrek - une pendant la journée et une autre la nuit. Oui, plus cher. Mais mieux.
Partage croisé
J'ai déjà noté dans le paragraphe « Reverse Scalability » que la globalité du Réseau permet d'avoir une application web par Planète. Par conséquent, chaque application Web doit être au moins quelque peu différente des autres afin d’assurer sa survie. Cependant, mes nombreuses années d'expérience avec (un cadre pour la création de magasins de commerce électronique) indique qu'il peut y avoir plus de similitudes entre les applications Web individuelles que de différences. Une bonne application Web ne doit pas seulement être modulaire, elle doit également partager ses modules avec d'autres applications Web. Dans une certaine mesure, cette idée se reflète dans JSR 168 et JSR 286 et des frameworks tels que , et le même Magento. Plus les modules d’une application web sont utilisés par d’autres applications web, plus elle est belle de mon point de vue. Le partage croisé vous permet de créer des modules de meilleure qualité et, par conséquent, des applications Web plus stables.
Par module, je n'entends pas des bibliothèques comme jQuery ou RequireJS - plutôt des entités plus grandes, telles que des plugins dans и . Mais pour les bibliothèques, la thèse est également vraie selon laquelle la large diffusion de la bibliothèque permet de la rendre meilleure et plus durable.
Architecture de Harvard
, contrairement à la balle actuellement au pouvoir , implique la séparation du code et des données. L’architecture n’a pas décollé, mais l’idée elle-même me semble personnellement belle. Surtout pour les applications Web. Tout statique (HTML/CSS/JS/Images/…) est du code. Il peut et doit être mis en cache côté serveur ou côté client. Et les données sont / (belle) ou / (un peu moins beau). Ou WebSockets/JSON (peut-être la meilleure option, mais je ne l'ai pas essayée).
Localisation
Il y a deux choses qui me préoccupent particulièrement lors du développement d'applications Web : une interface multilingue et des fuseaux horaires. Je viens de Lettonie, nous utilisons trois langues : LV, RU, EN. Une belle application Web doit non seulement vous permettre d'utiliser plusieurs langues dans l'application elle-même, mais également vous permettre d'augmenter le nombre de langues utilisées à l'aide de ressources externes, telles que . Il en va de même pour les modules à partir desquels l'application Web est assemblée.
Avec les fuseaux horaires tout est simple, dans tous les cas où on ne sait pas comment traiter la date-heure, faites ceci : tout ce qui est sur le serveur va au serveur et vient du serveur - UTC, tout ce qui est affiché sur le client - selon le fuseau horaire du profil utilisateur. C'est beau.
Des forges au lieu des étoiles de la mort
Autrefois, chaque ville, plus ou moins grande, possédait sa forge. Peut-être pas seul. Certains sont meilleurs, d’autres pires. Il y avait des forgerons connus dans le monde entier, et il y avait aussi ceux vers qui ils s'adressaient parce qu'il n'y avait pas d'alternative. Il y a eu des guerres, des épidémies et des catastrophes naturelles. Certaines villes disparurent avec la population. Mais le métier de forgeron est resté vivant. A la place des villes disparues, de nouvelles furent construites et des forges y apparurent également.
Maintenant, regardez un service comme . Lorsque les serveurs racine tombent en panne, .
À mon avis, une belle application Web ne peut pas être aussi grande que Facebook ou Mail.ru. C'est déjà plus proche de ""à la fois en termes de ressources nécessaires à la construction et de ressources nécessaires au maintien de l'opérabilité. Oui, si Facebook est détruit, l'humanité ne disparaîtra pas ; ses fonctions seront rapidement reprises par d'autres applications (les mêmes sur le territoire de la Fédération de Russie et ses environs, Instagram, Twitter, ...). Cependant, confiner une partie importante de la population de la planète à une seule application n’est pas joli. De plus, étant donné la disponibilité d’alternatives beaucoup plus durables (par ex. ).
Résumé
Si vous avez lu jusqu'au bout et que vous êtes confus - "Qu'est-ce que c'était?« Alors je vous exprime mes sincères sympathies. Je ne vous ai pas forcé à lire ceci. J'ai juste essayé de mettre des mots sur mes pensées pour trouver d'autres personnes qui pensent de la même manière. Peut-être pourrais-je discuter avec eux de certains aspects de la création de belles applications Web et trouver des réponses à mes questions. Et j'en ai beaucoup.
Merci d'avoir lu.
Source: habr.com
