{"id":36689,"date":"2019-10-31T22:13:11","date_gmt":"2019-10-31T19:13:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/krasota-v-glazah-smotryashhego\/"},"modified":"2019-10-31T22:13:11","modified_gmt":"2019-10-31T19:13:11","slug":"krasota-v-glazah-smotryashhego","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/krasota-v-glazah-smotryashhego","title":{"rendered":"La beaut\u00e9 est dans l'\u0153il de celui qui regarde","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Je d\u00e9veloppe des applications web depuis longtemps. Tr\u00e8s longtemps. Mes premi\u00e8res applications web dans l'environnement <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/IBM_Notes\">Lotus Domino<\/a><\/noindex> je les cr\u00e9ais \u00e0 une \u00e9poque o\u00f9 le mot <em>&#171;google&#187;<\/em> n'\u00e9tait pas encore un verbe, et pour rechercher des informations sur Internet, les gens utilisaient Yahoo! et Rambler. J'utilisais <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Infoseek\">Infoseek<\/a><\/noindex>'ils avaient une recherche restreinte et une interface moins d\u00e9sordonn\u00e9e que Yahoo !<\/p>\n<p><\/p>\n<p>Le d\u00e9veloppement d'applications, toutes les applications, pas seulement pour le web, est un travail cr\u00e9atif. Il est difficile de contester cette affirmation. La beaut\u00e9 dans la cr\u00e9ativit\u00e9 est comme la pratique dans la connaissance scientifique : un crit\u00e8re de v\u00e9rit\u00e9. Mais si la pratique scientifique est objective et bas\u00e9e sur des mesures, la beaut\u00e9 est subjective, d\u00e9pendante de celui qui regarde. Je me suis donc demand\u00e9 ce qui constitue pour moi une belle application web. <\/p>\n<p>\n<img decoding=\"async\" alt=\"La beaut\u00e9 est dans l&#039;\u0153il de celui qui regarde\" src=\"\/wp-content\/uploads\/2019\/08\/36411160412b286dd6191aa5baa6ee83.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>(\u00e0 la KDPV, mon regard n'est pas celui d'un homme, mais, \u00e0 mon avis, le regard f\u00e9minin sur la KDPV est plus appropri\u00e9 que masculin, car c'est \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/2ch.hk\/s\/src\/2616513\/15633579017010.png\">KDPV<\/a><\/noindex>!)<\/em><\/p>\n<p><\/p>\n<p>Sous cet article, mes propres crit\u00e8res de ce qui constitue actuellement une belle application web. Une exposition tr\u00e8s subjective, bas\u00e9e sur mon exp\u00e9rience personnelle. Peut-\u00eatre que mes crit\u00e8res de beaut\u00e9 sembleront \u00e0 certains \u00eatre des crit\u00e8res de laideur. Ne vous \u00e9tonnez pas, juste vous avez une exp\u00e9rience diff\u00e9rente.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Et puisque vous \u00eates d\u00e9j\u00e0 ici, faites attention dans vos commentaires, s'il vous pla\u00eet. En effet, si vous pouvez cesser de lire l'article d\u00e8s que ce qui y est expos\u00e9 vous semble laid ou m\u00eame moche, moi, en tant qu'auteur, je dois lire tous les commentaires.<\/p>\n<p><\/p>\n<h1 id=\"sreda-obitaniya\">Milieu de vie<\/h1>\n<p><\/p>\n<h3 id=\"protokoly\">Protocoles<\/h3>\n<p><\/p>\n<p>Je ne sais m\u00eame pas si cela vaut la peine d'isoler ce crit\u00e8re. Les applications web vivent dans le r\u00e9seau et doivent se conformer aux lois du r\u00e9seau (protocoles). Les principaux protocoles dans le r\u00e9seau \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Transmission_Control_Protocol\">TCP<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/IP\">IP<\/a><\/noindex>. Beaucoup d'autres protocoles en d\u00e9coulent, mais pour les applications web, je pense que le plus important est <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/HTTP\">. L'augmentation de la performance de Nginx est due \u00e0 l'utilisation d'une architecture asynchrone g\u00e9r\u00e9e par \u00e9v\u00e9nements, contrairement \u00e0 un mod\u00e8le multithread. Cela, combin\u00e9 \u00e0 un haut niveau de parall\u00e9lisme, permet \u00e0 Nginx de traiter les requ\u00eates avec une m\u00e9moire 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\u00e8rement document\u00e9e, permettant une configuration facile selon vos besoins. Les d\u00e9veloppeurs utilisent \u00e9galement Nginx comme proxy inverse pour<\/a><\/noindex> (ou plut\u00f4t, son extension <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/HTTPS\">HTTPS<\/a><\/noindex> gcc 15.2.1 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/TLS\">TLS<\/a><\/noindex>). C'est-\u00e0-dire qu'une belle application web est accessible via HTTPS\/TLS (ou \u00e9ventuellement HTTP), tandis que les autres protocoles (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, \u2026) la rendent de moins en moins belle avec chaque protocole suppl\u00e9mentaire pris en charge. L'application elle-m\u00eame peut utiliser ces protocoles suppl\u00e9mentaires pour acc\u00e9der \u00e0 des ressources externes. <\/p>\n<p><\/p>\n<p>Concernant <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/WebSocket\">WebSocket<\/a><\/noindex>, je n'ai pas assez d'exp\u00e9rience avec ce protocole pour les applications web. Cela semble beau et prometteur, mais je ne peux pas dire \u00e0 quel point c'est stable et pratique. <\/p>\n<p><\/p>\n<h3 id=\"brauzery\">Navigateurs<\/h3>\n<p><\/p>\n<p>Une application web repose sur le serveur d'un c\u00f4t\u00e9 et sur le client de l'autre. Le c\u00f4t\u00e9 client est le navigateur. Un navigateur moderne offre <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\">beaucoup de choses<\/a><\/noindex>, que les applications web modernes peuvent et doivent utiliser \u00e0 leur avantage. Une belle application web utilise les capacit\u00e9s modernes des navigateurs et n'est pas oblig\u00e9e de fonctionner dans ceux qui ne les prennent pas en charge. Je comprends que <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%BE%D0%BB%D0%B8%D1%84%D0%B8%D0%BB\">les polyfills<\/a><\/noindex> soient un recours n\u00e9cessaire, mais c'est peu esth\u00e9tique. Apr\u00e8s tout, il ne s'agit pas seulement des d\u00e9veloppeurs qui doivent suivre l'\u00e9volution des technologies, cela concerne \u00e9galement les utilisateurs et les entreprises.<\/p>\n<p><\/p>\n<h3 id=\"yap\">Langages de programmation<\/h3>\n<p><\/p>\n<p>Il y a beaucoup de confusion concernant les langages de programmation utilis\u00e9s pour cr\u00e9er des applications web. Il existe de nombreuses technologies pour le c\u00f4t\u00e9 client des applications web, permettant aux d\u00e9veloppeurs de faciliter la cr\u00e9ation de la triade HTML\/CSS\/JS (ce que tous les navigateurs modernes comprennent). Mais \u00e0 l'\u00e9poque, j'ai \u00e9t\u00e9 en contact \u00e9troit avec <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Google_Web_Toolkit\">GWT<\/a><\/noindex> et je trouve cela esth\u00e9tique lorsque le d\u00e9veloppeur voit le code original dans le navigateur, plut\u00f4t que le r\u00e9sultat de la compilation ou de la transpilation. Ainsi, l'utilisation de <noindex><a rel=\"nofollow\" href=\"https:\/\/webpack.js.org\/\">webpack<\/a><\/noindex>'et de produits similaires pour la g\u00e9n\u00e9ration de code client, IMHO, ce n'est pas beau. Plus le code ex\u00e9cut\u00e9 dans le navigateur ressemble au code source cr\u00e9\u00e9 par le d\u00e9veloppeur, mieux c'est. Vous ne me croyez pas ? Essayez de d\u00e9bugger en production un code g\u00e9n\u00e9r\u00e9 par GWT.<\/p>\n<p><\/p>\n<p>C\u00f4t\u00e9 serveur, il y a plus de libert\u00e9 (Java, PHP, Perl, Python, C#, Ruby, \u2026), mais je pense que c'est plus beau lorsque le m\u00eame langage de programmation est utilis\u00e9 aussi bien c\u00f4t\u00e9 serveur que dans le navigateur : JavaScript. Finalement, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B8%D0%BF%D0%BE%D1%82%D0%B5%D0%B7%D0%B0_%D0%BB%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D0%BE%D1%82%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">le langage d\u00e9termine la pens\u00e9e<\/a><\/noindex>, et des \u00e9quipes partageant les m\u00eames id\u00e9es sont plus productives.<\/p>\n<p><\/p>\n<h1 id=\"chelovechnost\">Humanit\u00e9<\/h1>\n<p><\/p>\n<p>Une belle application web doit \u00eatre utile. Utile, avant tout, pour l'homme en tant que client final. C'est pourquoi je ne peux pas qualifier de belle une <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%92%D0%B5%D0%B1-%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0\">web-service<\/a><\/noindex>. Pour une personne ordinaire (non d\u00e9veloppeur web), c'est complexe. Les web-services sont beaux \u00e0 leur mani\u00e8re.<\/p>\n<p><\/p>\n<p>Une belle application web doit avoir une interface intuitive. On peut d\u00e9battre de <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F\">UI<\/a><\/noindex>'c'est une chose assez subjective. Mais avec <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F_%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%BC\">UX<\/a><\/noindex> , tout devient beaucoup plus simple si l'utilisateur ne peut pas utiliser l'application sans la fameuse <noindex><a rel=\"nofollow\" href=\"http:\/\/lurkmore.to\/RTFM\">RTFM<\/a><\/noindex> \u2014 une mauvaise exp\u00e9rience utilisateur, une application web peu attrayante. Les applications web les plus esth\u00e9tiques selon ce crit\u00e8re peuvent facilement \u00eatre utilis\u00e9es par des enfants qui ne savent pas encore lire. <\/p>\n<p><\/p>\n<h1 id=\"obratnaya-masshtabiruemost\">Scalabilit\u00e9 Invers\u00e9e<\/h1>\n<p><\/p>\n<p>Il fut un temps o\u00f9 les programmes pouvaient \u00eatre transf\u00e9r\u00e9s sur des disquettes, maintenant c'est sur des cl\u00e9s USB ou directement t\u00e9l\u00e9charg\u00e9s depuis Internet. Copier une application classique et l'ex\u00e9cuter sur une autre machine est une t\u00e2che triviale. La situation est un peu diff\u00e9rente avec les applications web. Le r\u00e9seau est un environnement global o\u00f9 il n'est pas n\u00e9cessaire d'avoir des clones de la m\u00eame application web. Un seul Facebook, Twitter, Instagram, Mail.ru ou Yandex suffit. Diff\u00e9rentes applications web peuvent exister dans la m\u00eame niche th\u00e9matique, mais avec des audiences diff\u00e9rentes (comme Facebook et Vkontakte, Mail.ru et Gmail, Google Maps et Azure Maps). Les ressources mat\u00e9rielles n\u00e9cessaires pour assurer la disponibilit\u00e9 globale de ces applications web ont besoin, disons-le ainsi, <noindex><a rel=\"nofollow\" href=\"https:\/\/bigpicture.ru\/?p=404950\">non triviales<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Je n'ai jamais travaill\u00e9 avec des applications web de ce niveau en tant que d\u00e9veloppeur et je ne sais pas comment elles fonctionnent de l'int\u00e9rieur. Pour garantir le fonctionnement de telles applications web, des \u00e9quipes de sp\u00e9cialistes appropri\u00e9s et des centres de donn\u00e9es s\u00e9par\u00e9s sont n\u00e9cessaires. Je suis \u00e9merveill\u00e9 par la capacit\u00e9 des gens \u00e0 coop\u00e9rer \u00e0 une telle \u00e9chelle et \u00e0 cr\u00e9er de tels produits, mais mon \u00e9talon de beaut\u00e9 est une application web qui peut \u00eatre lanc\u00e9e sur un ordinateur portable individuel.<\/p>\n<p><\/p>\n<p>Une belle application web se d\u00e9veloppe non seulement vers le haut et sur les c\u00f4t\u00e9s (pour les utilisateurs), mais aussi vers le bas et \u00e0 l'int\u00e9rieur (pour les d\u00e9veloppeurs).<\/p>\n<p><\/p>\n<h1 id=\"zemnovodnost\">&#171;\u0417\u0435\u043c\u043d\u043e\u0432\u043e\u0434\u043d\u043e\u0441\u0442\u044c&#187;<\/h1>\n<p><\/p>\n<p>Pour acc\u00e9der aux applications web modernes, on utilise des appareils de deux types :<\/p>\n<p><\/p>\n<ul>\n<li>ordinateurs (ordinateurs portables, de bureau);<\/li>\n<li>appareils mobiles (smartphones et tablettes);<\/li>\n<\/ul>\n<p><\/p>\n<p>Quelque part \u00e0 l'horizon, appara\u00eet encore &lt;<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D0%B2%D0%B5%D1%89%D0%B5%D0%B9\">Internet des Objets<\/a><\/noindex>&gt;, mais pour l'instant, c'est ainsi.<\/p>\n<p><\/p>\n<p>Les ordinateurs se distinguent des appareils mobiles tout autant que les cr\u00e9atures terrestres se distinguent des \u00eatres aquatiques. Ce sont des environnements diff\u00e9rents et ils imposent des exigences diff\u00e9rentes aux \u00eatres qui y vivent (programmes). De belles applications web ne sont pas celles qui ressemblent \u00e0 des <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B5%D0%BC%D0%BD%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5\">amphibiens<\/a><\/noindex>, mais celles qui, dans l'eau \u2014 comme des poissons, sur la terre \u2014 comme des animaux, et dans l'air (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\">SEO<\/a><\/noindex>) \u2014 comme des oiseaux.<\/p>\n<p><\/p>\n<p>Je consid\u00e8re que &lt;<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B4%D0%B0%D0%BF%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%B2%D0%B5%D0%B1-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD\">l'amphibien<\/a><\/noindex>&gt; est comme une tentative de s'asseoir sur deux (avec SEO - trois) chaises. Mieux vaut \u00eatre comme Fiona dans Shrek - seule le jour, une autre la nuit. Oui, c'est plus cher. Mais c'est mieux.<\/p>\n<p><\/p>\n<h1 id=\"cross-sharing\">Partage crois\u00e9<\/h1>\n<p><\/p>\n<p>J'ai d\u00e9j\u00e0 mentionn\u00e9 dans la section \u00ab Scalabilit\u00e9 Inverse \u00bb que la mondialit\u00e9 du Web permet d'avoir une seule application web pour toute la plan\u00e8te. Par cons\u00e9quent, chaque application web doit se diff\u00e9rencier d'une mani\u00e8re ou d'une autre pour assurer sa survie. N\u00e9anmoins, mon exp\u00e9rience de plusieurs ann\u00e9es avec <noindex><a rel=\"nofollow\" href=\"https:\/\/magento.com\/\">Magento<\/a><\/noindex> (un cadre pour la construction de magasins e-commerce) montre qu'il peut y avoir plus de points communs entre diff\u00e9rentes applications web que de diff\u00e9rences. Une belle application web doit non seulement \u00eatre modulaire, mais elle doit \u00e9galement partager ses modules avec d'autres applications web. Dans une certaine mesure, cette id\u00e9e est refl\u00e9t\u00e9e dans <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_Java-%D0%BF%D0%BE%D1%80%D1%82%D0%BB%D0%B5%D1%82%D0%BE%D0%B2\">. En alternative \u00e0 la lecture de la norme, vous pouvez \u00e9tudier le code source de la fonction<\/a><\/noindex> JSR 168 et JSR 286 ainsi que des frameworks comme <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/WordPress\">WordPress<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Django\">Django<\/a><\/noindex> et le m\u00eame Magento. Plus un grand nombre de modules d'une application web est utilis\u00e9 par d'autres applications web, plus elle est belle \u00e0 mes yeux. Le partage crois\u00e9 permet de cr\u00e9er des modules de meilleure qualit\u00e9 et, par cons\u00e9quent, des applications web plus stables.<\/p>\n<p><\/p>\n<p>Par module, je n\u2019entends pas des biblioth\u00e8ques comme jQuery ou RequireJS, mais plut\u00f4t des entit\u00e9s plus volumineuses, comme des plugins dans <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wordpress.org\/plugins\/\">WordPress<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/djangopackages.org\/categories\/apps\/\">Django<\/a><\/noindex>. Cependant, pour les biblioth\u00e8ques, il est \u00e9galement vrai qu'une large diffusion d'une biblioth\u00e8que permet de la rendre plus qualitative et robuste. <\/p>\n<p><\/p>\n<h1 id=\"garvardskaya-arhitektura\">L'architecture de Harvard<\/h1>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B4%D1%81%D0%BA%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0\">L'architecture de Harvard<\/a><\/noindex>, contrairement \u00e0 l'actuelle architecture de <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%84%D0%BE%D0%BD_%D0%9D%D0%B5%D0%B9%D0%BC%D0%B0%D0%BD%D0%B0\">Princeton, implique la s\u00e9paration du code et des donn\u00e9es. Cette architecture n'a pas r\u00e9ussi \u00e0 s'imposer, mais l'id\u00e9e elle-m\u00eame me semble belle. Surtout pour les applications web. Toute la statique (HTML\/CSS\/JS\/Images\/\u2026) est du code. Il peut et doit \u00eatre mis en cache, que ce soit c\u00f4t\u00e9 serveur ou c\u00f4t\u00e9 client. Et les donn\u00e9es sont<\/a><\/noindex>, implique la s\u00e9paration du code et des donn\u00e9es. L'architecture n'a pas d\u00e9coll\u00e9, mais l'id\u00e9e me semble personnellement belle. Surtout pour les applications web. Toute statique (HTML\/CSS\/JS\/Images\/\u2026) est du code. Il peut et doit \u00eatre mis en cache que ce soit c\u00f4t\u00e9 serveur ou c\u00f4t\u00e9 client. Et les donn\u00e9es \u2014 ce sont <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/REST\">REST<\/a><\/noindex>\/<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/JSON\">JSON<\/a><\/noindex> SOAP <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOAP\">(un peu moins belles). Ou WebSockets\/JSON (qui pourrait \u00eatre la meilleure option, mais je ne l'ai pas essay\u00e9).<\/a><\/noindex>\/<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/XML\">colonnes<\/a><\/noindex> Il y a deux choses qui me pr\u00e9occupent particuli\u00e8rement lors du d\u00e9veloppement d'applications web : l'interface multilingue et les fuseaux horaires. Je viens moi-m\u00eame de Lettonie, o\u00f9 trois langues sont couramment utilis\u00e9es : LV, RU, EN. Une belle application web doit non seulement permettre d'utiliser plusieurs langues au sein de l'application, mais aussi \u00e9largir le nombre de langues utilis\u00e9es gr\u00e2ce \u00e0 des ressources externes, comme<\/p>\n<p><\/p>\n<h1 id=\"lokalizaciya\">Localisation<\/h1>\n<p><\/p>\n<p>Crowdin <noindex><a rel=\"nofollow\" href=\"https:\/\/crowdin.com\/\">. Cela vaut \u00e9galement pour les modules dont est constitu\u00e9e l'application web.<\/a><\/noindex>. Cela est \u00e9galement vrai pour les modules qui composent une application web.<\/p>\n<p><\/p>\n<p>Avec les fuseaux horaires, c'est simple : dans tous les cas o\u00f9 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 \u2014 UTC, tout ce qui s'affiche pour le client \u2014 selon le fuseau horaire du profil utilisateur. C'est \u00e9l\u00e9gant.<\/p>\n<p><\/p>\n<h1 id=\"kuznicy-vmesto-zvezd-smerti\">Des forges au lieu de \u00ab \u00c9toiles de la Mort \u00bb<\/h1>\n<p><\/p>\n<p>Il y a longtemps, dans chaque ville plus ou moins grande, il y avait sa propre forge. Peut-\u00eatre m\u00eame plusieurs. Certaines meilleures, d'autres moins bonnes. Il y avait des ma\u00eetres forgerons connus dans le monde entier, et il y en avait d'autres \u00e0 qui l'on s'adressait par manque d'alternatives. Des guerres, des \u00e9pid\u00e9mies, des catastrophes naturelles ont ravag\u00e9 les r\u00e9gions. Certaines villes ont disparu avec leur population. Mais l'art de la forge a continu\u00e9 \u00e0 vivre. De nouvelles villes ont \u00e9t\u00e9 construites \u00e0 la place des villes disparues, et des forges y apparaissaient \u00e9galement. <\/p>\n<p><\/p>\n<p>Maintenant, regardez un service tel que <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">DNS<\/a><\/noindex>. Quand les serveurs racines tombent, <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Distributed_denial-of-service_attacks_on_root_nameservers\">c'est tout le monde qui est en \u00e9moi<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>\u00c0 mon avis, une belle application web ne peut pas avoir une taille similaire \u00e0 celle de Facebook ou Mail.ru. Cela se rapproche d\u00e9j\u00e0 de \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/www.wikiwand.com\/ru\/%D0%97%D0%B2%D0%B5%D0%B7%D0%B4%D0%B0_%D0%A1%D0%BC%D0%B5%D1%80%D1%82%D0%B8\">\u00c9toile de la Mort<\/a><\/noindex>\u00bb tant en termes de ressources n\u00e9cessaires pour la construire que pour maintenir son fonctionnement. Oui, en cas de destruction de Facebook, l'humanit\u00e9 ne dispara\u00eetra pas, ses fonctions seront rapidement prises en charge par d'autres applications (comme <noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/\">VK<\/a><\/noindex> sur le territoire de la F\u00e9d\u00e9ration de Russie et au-del\u00e0, Instagram, Twitter, \u2026). Cependant, verrouiller une partie significative de la population mondiale sur une seule application \u2014 c'est peu attrayant. Surtout en pr\u00e9sence d'alternatives beaucoup plus durables (par exemple, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/The_Pirate_Bay\">les torrents<\/a><\/noindex>).<\/p>\n<p><\/p>\n<h1 id=\"rezyume\">R\u00e9sum\u00e9<\/h1>\n<p><\/p>\n<p>Si vous avez lu jusqu'\u00e0 la fin et ressentez de l'incompr\u00e9hension \u2014 \u00ab<em>qu'est-ce que c'\u00e9tait ?<\/em>\u00bb, je vous exprime mes sinc\u00e8res condol\u00e9ances. Je ne vous ai pas forc\u00e9 \u00e0 lire cela. J'ai simplement essay\u00e9 de mettre mes pens\u00e9es en mots pour trouver ceux qui pensent de la m\u00eame mani\u00e8re. Peut-\u00eatre que je pourrai discuter avec eux de certains aspects de la cr\u00e9ation d'applications web belles et d\u00e9couvrir des r\u00e9ponses \u00e0 mes questions. Et j'en ai beaucoup.<\/p>\n<p><\/p>\n<p>Merci d'avoir lu.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/461749\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e. \u0421\u0432\u043e\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0440\u0435\u0434\u0435 Lotus Domino \u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b \u0432 \u0442\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0432\u043e &#171;google&#187; \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b\u043e \u0433\u043b\u0430\u0433\u043e\u043b\u043e\u043c, \u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043b\u044e\u0434\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 Yahoo! \u0438 Rambler. \u042f \u0436\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f Infoseek&#8216;\u043e\u043c \u2014 \u0443 \u043d\u0438\u0445 \u0431\u044b\u043b \u0441\u0443\u0436\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e\u0438\u0441\u043a \u0438 \u043d\u0435 \u0442\u0430\u043a\u043e\u0439 \u0431\u0435\u0437\u043e\u0431\u0440\u0430\u0437\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27480,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-36689","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042f \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/krasota-v-glazah-smotryashhego\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0440\u0430\u0441\u043e\u0442\u0430 \u0432 \u0433\u043b\u0430\u0437\u0430\u0445 \u0441\u043c\u043e\u0442\u0440\u044f\u0449\u0435\u0433\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042f \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/krasota-v-glazah-smotryashhego\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47La beaut\u00e9 est dans l'\u0153il de celui qui regarde | ProHoster","description":"Je fais cela depuis longtemps, tr\u00e8s longtemps.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/krasota-v-glazah-smotryashhego","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0440\u0430\u0441\u043e\u0442\u0430 \u0432 \u0433\u043b\u0430\u0437\u0430\u0445 \u0441\u043c\u043e\u0442\u0440\u044f\u0449\u0435\u0433\u043e | ProHoster","og:description":"\u042f \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/krasota-v-glazah-smotryashhego","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:11+00:00","article:modified_time":"2019-10-31T19:13:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36689","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:40:23","updated":"2026-01-22 04:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=36689"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36689\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/27480"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=36689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=36689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=36689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}