Une nouvelle ère de développement web ou «tout est déjà là»

Vous ne résoudrez jamais un problème si vous pensez de la même manière que ceux qui l'ont créé.

Albert Einstein

En 1989, le scientifique britannique Tim Berners-Lee a créé le système d'échange de documents Inquire, qui est devenu le prototype de l'Internet mondial. Lorsqu'un certain nombre de spécifications lui ont été présentées, l'une d'elles est la spécification du langage de balisage HTML . L'ère du développement web est donc née. Pour le moment, cette spécification a subi de nombreux changements, mais en fait rien de global n'a changé. Dans cet article, je vais essayer de spéculer sur les lacunes de cette technologie et la redondance des fonctionnalités.

image

Un document est une ressource ...


Le concept proposé par Tim Berners-Lee était simple, il y a un protocole, une adresse et un document. Tout semble logique et vous pouvez en toute sécurité obtenir le bon document à une adresse spécifique, et il y a une centralisation pour un usage général, et tout semble bien se passer.

Et puis le jour est venu où Internet est devenu disponible dans le monde entier. Je me souviens d'avoir attendu une leçon d'informatique pour télécharger de beaux fonds d'écran pour votre bureau ou lire quelque chose sur les jeux utilisant le Dial-Up grinçant.

Puis des nuits blanches et d'énormes factures sur mon téléphone personnel à mes parents. Merci à eux d'avoir été indulgents avec moi lorsqu'ils ont reçu ces factures.

Et enfin, l'ère de la liberté totale, lorsque beaucoup de contenu, à la fois protégé et non protégé, «a volé» sur Internet. Personne ne pensait alors que pour le contenu sur Internet, il faudrait payer, mais, en passant, même maintenant, beaucoup de gens le pensent. La consommation de contenu a augmenté, de nouveaux services, ressources, portails, plateformes de recherche ont commencé à apparaître. En conséquence, il était nécessaire de créer une interface utilisateur pratique pour interagir avec tout cela.

image

En 1995, une équipe de développeurs de Netscape Communications a travaillé sur un nouveau langage de programmation qui permet de s'exécuter directement dans les navigateurs des utilisateurs, ajoutant ainsi un comportement interactif au contenu de la page. Initialement, ce langage s'appelait Mocha, puis il a été proposé de le renommer en LiveScript , plus.

Un an plus tard, CSS apparaît, ajoutant encore plus de fonctionnalités et d'équipements visuels. Et maintenant, de la brève partie historique et informative, je vais passer au sujet que je voulais discuter.

Nous utiliserons le vélo pendant longtemps, ou il est temps de passer à Tesla ...


Alors, quelle est ma plainte. Chaque développeur web est confronté à une série d'opérations identiques et routinières de projet en projet dans le développement de logiciels qui fonctionnent sur Internet. Une entreprise qui numérise son travail fait face à un marché compétitif et parfois agressif. Ce que je veux dire, je vais l'expliquer.

Vous devez d'abord faire attention et choisir dans quelle langue écrire la logique de l'application, ici vous dites ce qui dépend des tâches de l'application, et vous aurez raison. Mais en réalité, cela ne se produit pas, généralement ils prennent ce qui prend en charge l'hébergement bon marché et où il y a des développeurs bon marché. Et bien sûr, les termes «hier» pour accomplir les tâches de développement, où sans eux. En conséquence, nous avons une sorte de CMS écrit en PHP et 2-4 développeurs sur la télécommande.

À mesure que l'entreprise se développe et que les exigences d'automatisation augmentent, la complexité des implémentations de tâches augmente également, mais ce n'est généralement pas ce que l'entreprise pense et comment elle sera techniquement sous le capot. En conséquence, bien sûr, après avoir atteint un certain volume de tâches mises en œuvre, l'entreprise va à l'intégrateur de système et achète un produit de plusieurs millions de dollars auprès de requins du marché tels qu'IBM, Microsoft, Oracle, etc. Par le mot entreprise, je veux dire tout client de solutions Web.

Mais il ne s'agit pas de savoir ce qu'il vaut mieux écrire, mais de savoir s'il existe une «section dorée» pour un développement pratique, rapide et de haute qualité pour vous, chers développeurs Web. J'ai longuement réfléchi à cette tâche et rêvais d'avoir un tel outil entre les mains pour le développement. Ce qui, par conséquent, m'a incité à écrire mon CMS. J'ai déjà écrit à ce sujet ici plus tôt.

L'idéologie était la suivante, et je me suis fixé pour objectif de créer des balises HTML spéciales que je peux facilement écrire en HTML natif et pouvoir recevoir des données itératives du backend sans écrire JavaScript, analyser la logique des composants du backend et sans rechargement de page. Cela semble étrange, et dans quelle mesure Angular2 le fait, mais STOP, la tâche n'est pas d'écrire le frontend à partir du mot "complètement", seulement du bon vieux HTML comme en 1989, et ses balises.

Eh bien, je me suis excité, il y a une hypothèse, disons que nous avons un site Web avec toutes les pages et "coup de sifflet" sur eux, mais seulement HTML, JavaScript, CSS. Autrement dit, le concepteur de mise en page et le concepteur d'une paire ont assemblé un tel modèle pour nous, notre tâche consiste uniquement à tirer ce modèle sur les données.

Comme cela a été implémenté dans la deuxième version de mon produit. Tout d'abord, d'après ce que j'ai recueilli ce miracle:

  • Spring boot / data / rest
  • Mongodb

Ce qui suit montre schématiquement comment le traitement a lieu.

image

Tout le travail décrit dans ce diagramme ci-dessus peut être divisé en 3 étapes:

  1. L'utilisateur arrive sur la page où le JavaScript universel du CMS est chargé, j'ai trompé tout le monde)))). Oui, il existe un petit script qui fonctionne sur le client, mais n'est nécessaire que pour créer une connexion WebSocket et affecter des écouteurs aux messages client-serveur nécessaires à l'échange de messages. Ce script est fait de telle manière qu'il fonctionne avec nos balises dynamiques, et les balises à leur tour modèle la sortie des morceaux de code HTML dont nous avons besoin.
  2. Ces balises personnalisées, lorsqu'elles sont chargées à partir d'un modèle sur le serveur, sont prétraitées via des composants qui transforment notre balise personnalisée en HTML valide. Et toute la dynamique et la beauté jaillissent de la mise en page.
  3. Ensuite, tous les événements de clic et interactions avec l'interface sont transmis via la connexion WebSocket établie.

Les balises sont destinées uniquement aux données persistantes, c'est-à-dire qu'elles ne peuvent pas être utilisées pour les objets de session et le contenu personnalisé pour chaque client, respectivement. Ces balises n'ont le droit de travailler qu'avec un squelette d'interface utilisateur commun à l'ensemble du site.

Toutes les tâches nécessitant une personnalisation de la livraison de contenu peuvent être implémentées en tant que modules d'intégration selon le principe Headless-CMS. Autrement dit, l'interface est intégrée via les points de terminaison REST.

Il existe déjà une implémentation de plusieurs modules, dont l'intégration avec le framework AI dans le domaine de l'apprentissage automatique pour le traitement du langage naturel ( Natural Language Processing ). Mais j'écrirai à ce sujet plus tard dans un article séparé.

Le problème dont nous avons hérité


Tim Berners-Lee, bien sûr, est un brillant scientifique, et il a trouvé un moyen pratique de gérer le contenu sur Internet mondial. Mais il me semble que cette méthode est très dépassée, et tout ce qui a été fait plus tard pour l'interactivité et la composante visuelle, au contraire, n'a fait que compliquer le développement web. Un grand nombre de balises HTML ont disparu depuis longtemps. En fait, seuls les divs sont utilisés et les balises d'entrée sont utilisées pour rendre les formulaires. La question est donc de savoir pourquoi il y en a autant?

Par conséquent, vous devez effectuer des actions fastidieuses et similaires d'un projet à l'autre. Avant de vous lancer dans une implémentation intéressante de tâches spécifiquement pour l'automatisation de l'entreprise

Conclusion


Je pense donc que j'ai réussi à transmettre l'essence du problème et à proposer ma solution à ce problème. Peut-être que quelqu'un a déjà mis en œuvre ma solution, mais c'est sûr, mais dans mes nombreuses années de travail, je n'ai pas vu de telles solutions. Merci pour votre attention, et tout pour les prochaines vacances!

Source: https://habr.com/ru/post/fr480866/


All Articles