La beautĂ© est dans l'Ɠil de celui qui regarde

Je dĂ©veloppe des applications web depuis longtemps. TrĂšs longtemps. Mes premiĂšres applications web dans l'environnement Lotus Domino je les crĂ©ais Ă  une Ă©poque oĂč le mot « google » n'Ă©tait pas encore un verbe, et pour rechercher des informations sur Internet, les gens utilisaient Yahoo! et Rambler. J'utilisais Infoseek— ils avaient une recherche plus ciblĂ©e et une interface moins chaotique que celle de Yahoo!

Le dĂ©veloppement d'applications, de n'importe quelle application, pas seulement pour le web — c'est un travail crĂ©atif. Il est peu probable que quelqu'un conteste cette affirmation. Et la beautĂ© dans la crĂ©ativitĂ©, c'est comme la pratique dans la connaissance scientifique — un critĂšre de vĂ©ritĂ©. Mais alors que la pratique scientifique est objective et basĂ©e sur des mesures, la beautĂ© est subjective, dĂ©pend de celui qui regarde. Je me suis donc posĂ© la question : qu'est-ce qui constitue pour moi personnellement une belle application web ?

La beautĂ© est dans l'Ɠil de celui qui regarde

(Ă  la KDPV, mon regard n'est pas celui d'un homme, mais, Ă  mon avis, le regard fĂ©minin sur la KDPV est plus appropriĂ© que masculin, car c'est — KDPV!)

Sous cet article, mes propres critĂšres de ce qui constitue actuellement une belle application web. Une exposition trĂšs subjective, basĂ©e sur mon expĂ©rience personnelle. Peut-ĂȘtre que mes critĂšres de beautĂ© sembleront Ă  certains ĂȘtre des critĂšres de laideur. Ne vous Ă©tonnez pas, juste vous avez une expĂ©rience diffĂ©rente.

Et puisque vous ĂȘtes dĂ©jĂ  ici, faites attention dans vos commentaires, s'il vous plaĂźt. En effet, si vous pouvez cesser de lire l'article dĂšs que ce qui y est exposĂ© vous semble laid ou mĂȘme moche, moi, en tant qu'auteur, je dois lire tous les commentaires.

Milieu de vie

Protocoles

Je ne sais mĂȘme pas si cela vaut la peine d'isoler ce critĂšre. Les applications web vivent dans le rĂ©seau et doivent se conformer aux lois du rĂ©seau (protocoles). Les principaux protocoles dans le rĂ©seau — TCP et IP. Beaucoup d'autres protocoles en dĂ©coulent, mais pour les applications web, je pense que le plus important est . L'augmentation de la performance de Nginx est due Ă  l'utilisation d'une architecture asynchrone gĂ©rĂ©e par Ă©vĂ©nements, contrairement Ă  un modĂšle multithread. Cela, combinĂ© Ă  un haut niveau de parallĂ©lisme, permet Ă  Nginx de traiter les requĂȘtes avec une mĂ©moire minimale. Cela fait de Nginx une excellente solution pour les serveurs web, qu'il s'agisse de gros ou de petits volumes de trafic. Nginx est une solution mature et entiĂšrement documentĂ©e, permettant une configuration facile selon vos besoins. Les dĂ©veloppeurs utilisent Ă©galement Nginx comme proxy inverse pour (ou plutĂŽt, son extension HTTPS gcc 15.2.1 TLS). C'est-Ă -dire qu'une belle application web est accessible via HTTPS/TLS (ou HTTP en alternative), tandis que les autres protocoles (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, 
) la rendent moins belle avec chaque protocole supplĂ©mentaire pris en charge. L'application elle-mĂȘme peut, grĂące Ă  ces protocoles supplĂ©mentaires, utiliser des ressources externes.

Concernant WebSocket, je n'ai pas assez d'expérience avec ce protocole pour les applications web. Cela semble beau et prometteur, mais je ne peux pas dire à quel point c'est stable et pratique.

Navigateurs

Une application web repose sur le serveur d'un cÎté et sur le client de l'autre. Le cÎté client est le navigateur. Un navigateur moderne offre beaucoup de choses, que les applications web modernes peuvent et doivent utiliser à leur avantage. Une belle application web utilise les capacités modernes des navigateurs et n'est pas obligée de fonctionner dans ceux qui ne les prennent pas en charge. Je comprends que les polyfills soient un recours nécessaire, mais c'est peu esthétique. AprÚs tout, il ne s'agit pas seulement des développeurs qui doivent suivre l'évolution des technologies, cela concerne également les utilisateurs et les entreprises.

Langages de programmation

Il y a beaucoup de confusion concernant les langages de programmation utilisés pour créer des applications web. Il existe de nombreuses technologies pour le cÎté client des applications web, permettant aux développeurs de faciliter la création de la triade HTML/CSS/JS (ce que tous les navigateurs modernes comprennent). Mais à l'époque, j'ai été en contact étroit avec GWT et je trouve cela esthétique lorsque le développeur voit le code original dans le navigateur, plutÎt que le résultat de la compilation ou de la transpilation. Ainsi, l'utilisation de webpacket d'autres produits similaires pour générer du code client est, à mon avis, peu esthétique. Plus le code exécuté dans le navigateur ressemble au code source créé par le développeur, mieux c'est. Vous ne me croyez pas? Essayez de déboguer en production le code généré par GWT.

Du cĂŽtĂ© serveur, il y a plus de libertĂ©s (Java, PHP, Perl, Python, C#, Ruby, ...), mais je pense qu'il est joli lorsque le mĂȘme langage de programmation est utilisĂ© Ă  la fois cĂŽtĂ© serveur et dans le navigateur : JavaScript. AprĂšs tout, le langage dĂ©termine la pensĂ©e, et des Ă©quipes partageant les mĂȘmes idĂ©es sont plus productives.

Humanité

Une belle application web doit ĂȘtre utile. Utile, avant tout, pour l'homme en tant que client final. C'est pourquoi je ne peux pas qualifier de belle une web-service. Pour une personne ordinaire (non dĂ©veloppeur web), c'est complexe. Les web-services sont beaux Ă  leur maniĂšre.

Une belle application web doit avoir une interface intuitive. On peut dĂ©battre de UIce qui est ‘beau’ — c'est une notion assez subjective. Mais avec UX , tout devient beaucoup plus simple si l'utilisateur ne peut pas utiliser l'application sans la fameuse RTFM — une mauvaise expĂ©rience utilisateur, une application web peu attrayante. Les applications web les plus esthĂ©tiques selon ce critĂšre peuvent facilement ĂȘtre utilisĂ©es par des enfants qui ne savent pas encore lire.

Scalabilité Inversée

Il fut un temps oĂč les programmes pouvaient ĂȘtre transfĂ©rĂ©s sur des disquettes, maintenant — sur des clĂ©s USB ou directement tĂ©lĂ©chargĂ©s depuis le web. Copier une application classique et la lancer sur un autre ordinateur est une tĂąche triviale. La situation est un peu diffĂ©rente pour les applications web. Le rĂ©seau reprĂ©sente un environnement mondial, oĂč il n’y a pas besoin d’avoir des clones d’une mĂȘme application web. Un seul Facebook, Twitter, Instagram, Mail.ru ou Yandex suffisent sur le web. On peut avoir diffĂ©rentes applications web dans la mĂȘme niche thĂ©matique, mais avec des audiences diffĂ©rentes (comme Facebook et Vkontakte, Mail.ru et Gmail, Google Maps et Azure Maps). Des ressources matĂ©rielles sont nĂ©cessaires pour assurer la disponibilitĂ© globale de ces applications web, disons-le ainsi, non triviales.

Je n'ai jamais travaillĂ© avec des applications web de ce niveau en tant que dĂ©veloppeur et je ne sais pas comment elles fonctionnent de l'intĂ©rieur. Pour garantir le fonctionnement de telles applications web, des Ă©quipes de spĂ©cialistes appropriĂ©s et des centres de donnĂ©es sĂ©parĂ©s sont nĂ©cessaires. Je suis Ă©merveillĂ© par la capacitĂ© des gens Ă  coopĂ©rer Ă  une telle Ă©chelle et Ă  crĂ©er de tels produits, mais mon Ă©talon de beautĂ© est une application web qui peut ĂȘtre lancĂ©e sur un ordinateur portable individuel.

Une belle application web se développe non seulement vers le haut et sur les cÎtés (pour les utilisateurs), mais aussi vers le bas et à l'intérieur (pour les développeurs).

Amphibiens

Pour accéder aux applications web modernes, on utilise des appareils de deux types :

  • ordinateurs (ordinateurs portables, de bureau);
  • appareils mobiles (smartphones et tablettes);

Quelque part à l'horizon, se profile encore le «Internet des Objets», mais pour l'instant, c'est ainsi.

Les ordinateurs se distinguent des appareils mobiles tout autant que les crĂ©atures terrestres se distinguent des ĂȘtres aquatiques. Ce sont des environnements diffĂ©rents et ils imposent des exigences diffĂ©rentes aux ĂȘtres qui y vivent (programmes). De belles applications web ne sont pas celles qui ressemblent Ă  des amphibiens, mais celles qui, dans l'eau — comme des poissons, sur la terre — comme des animaux, et dans l'air (SEO) — comme des oiseaux.

Je trouve peu attrayant «l'amphibien», c'est comme essayer de s'asseoir sur deux (et avec le SEO — trois) chaises. Mieux vaut ĂȘtre comme Fiona de Shrek — le jour une, et la nuit une autre. Oui, c’est plus cher. Mais c’est mieux.

Partage croisé

J'ai dĂ©jĂ  mentionnĂ© dans le point « ScalabilitĂ© InversĂ©e » que la mondialitĂ© du rĂ©seau permet d'avoir une seule application web pour la planĂšte. Par consĂ©quent, chaque application web doit se diffĂ©rencier des autres pour assurer sa survie. NĂ©anmoins, mon expĂ©rience de plusieurs annĂ©es avec Magento (un cadre pour la construction de magasins e-commerce) montre qu'il peut y avoir plus de points communs entre diffĂ©rentes applications web que de diffĂ©rences. Une belle application web doit non seulement ĂȘtre modulaire, mais elle doit Ă©galement partager ses modules avec d'autres applications web. Dans une certaine mesure, cette idĂ©e est reflĂ©tĂ©e dans . En alternative Ă  la lecture de la norme, vous pouvez Ă©tudier le code source de la fonction JSR 168 et JSR 286 et des frameworks comme WordPress, Django et le mĂȘme Magento. Plus un grand nombre de modules d'une application web est utilisĂ© par d'autres applications web, plus elle est belle Ă  mes yeux. Le partage croisĂ© 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, mais plutĂŽt des entitĂ©s plus volumineuses, comme des plugins dans WordPress et Django. Cependant, pour les bibliothĂšques, il est Ă©galement vrai qu'une large diffusion d'une bibliothĂšque permet de la rendre plus qualitative et robuste.

L'architecture de Harvard

L'architecture de Harvard, contrairement Ă  l'actuelle architecture de Princeton, implique la sĂ©paration du code et des donnĂ©es. Cette architecture n'a pas rĂ©ussi Ă  s'imposer, mais l'idĂ©e elle-mĂȘme me semble belle. Surtout pour les applications web. Toute la statique (HTML/CSS/JS/Images/
) est du code. Il peut et doit ĂȘtre mis en cache, que ce soit cĂŽtĂ© serveur ou cĂŽtĂ© client. Et les donnĂ©es sont(belles) ou REST/JSON SOAP (un peu moins belles). Ou WebSockets/JSON (qui pourrait ĂȘtre la meilleure option, mais je ne l'ai pas essayĂ©)./colonnes Il y a deux choses qui me prĂ©occupent particuliĂšrement lors du dĂ©veloppement d'applications web : l'interface multilingue et les fuseaux horaires. Je viens moi-mĂȘme de Lettonie, oĂč trois langues sont couramment utilisĂ©es : LV, RU, EN. Une belle application web doit non seulement permettre d'utiliser plusieurs langues au sein de l'application, mais aussi Ă©largir le nombre de langues utilisĂ©es grĂące Ă  des ressources externes, comme

Localisation

Crowdin . Cela vaut également pour les modules dont est constituée l'application web.. Cela est également vrai pour les modules qui composent une application web.

Avec les fuseaux horaires, c'est simple : dans tous les cas oĂč il n'est pas clair comment traiter la date et l'heure, faites comme suit : tout ce qui est sur le serveur, qui part du serveur et arrive du serveur — UTC, tout ce qui s'affiche pour le client — selon le fuseau horaire du profil utilisateur. C'est Ă©lĂ©gant.

Forgerons plutĂŽt que « Étoiles de la Mort »

Il y a longtemps, dans chaque ville plus ou moins grande, il y avait sa propre forge. Peut-ĂȘtre mĂȘme plusieurs. Certaines meilleures, d'autres moins bonnes. Il y avait des maĂźtres forgerons connus dans le monde entier, et il y en avait d'autres Ă  qui l'on s'adressait par manque d'alternatives. Des guerres, des Ă©pidĂ©mies, des catastrophes naturelles ont ravagĂ© les rĂ©gions. Certaines villes ont disparu avec leur population. Mais l'art de la forge a continuĂ© Ă  vivre. De nouvelles villes ont Ă©tĂ© construites Ă  la place des villes disparues, et des forges y apparaissaient Ă©galement.

Maintenant, regardez un service tel que DNS. Quand les serveurs racines tombent, c'est tout le monde qui est en émoi.

À mon avis, une belle application web ne peut pas avoir la taille de Facebook ou Mail.ru. Cela s'apparente plutĂŽt Ă  une «Étoile de la Mort» tant en ressources nĂ©cessaires pour la construire qu'en ressources nĂ©cessaires pour maintenir son fonctionnement. Oui, en cas de destruction de Facebook, l'humanitĂ© ne disparaĂźtra pas, ses fonctions seront rapidement reprises par d'autres applications (la mĂȘme VK sur le territoire de la Russie et des rĂ©gions voisines, Instagram, Twitter, 
). NĂ©anmoins, enfermer une partie significative de la population de la planĂšte sur une seule application — c'est inesthĂ©tique. D'autant plus qu'il existe des alternatives beaucoup plus robustes (comme les torrents).

Résumé

Si vous avez lu jusqu'Ă  la fin et ressentez de la confusion — «qu'est-ce que c'Ă©tait ?», je vous exprime mes sincĂšres condolĂ©ances. Je ne vous ai pas obligĂ© Ă  lire cela. J'ai simplement essayĂ© de mettre mes pensĂ©es en mots pour trouver ceux qui pensent de la mĂȘme maniĂšre. Peut-ĂȘtre pourrais-je discuter avec eux de certains aspects de la crĂ©ation d'applications web attrayantes et trouver des rĂ©ponses Ă  mes questions. Et j'en ai beaucoup.

Merci d'avoir lu.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster