Tendances des technologies de développement Web 2019

Présentation


La transformation numérique couvre chaque année de plus en plus de domaines différents de la vie et des affaires. Si une entreprise veut être compétitive, les sites d'information réguliers ne suffisent plus, il faut des applications mobiles et Web qui non seulement fournissent des informations aux utilisateurs, mais vous permettent également d'effectuer une sorte de fonction: recevoir ou commander des biens et des services, fournir des outils.



Ainsi, par exemple, il ne suffit pas aux banques modernes d'avoir un site Web contenant des informations, vous devez disposer d'outils en ligne pour vos clients, d'un compte personnel où l'utilisateur peut gérer des comptes, des investissements et des prêts. Même les petites entreprises ont besoin d'outils pratiques, tels que prendre rendez-vous avec un médecin ou un coiffeur, réserver une table dans un restaurant ou une salle de jeux pour enfants pour un anniversaire, pour augmenter la conversion.

Et les propriétaires eux-mêmes doivent recevoir des informations opportunes sous une forme pratique en fonction de l'état de leur entreprise, par exemple, la collecte de données statistiques et d'analyses pour les différents départements de production ou la productivité des départements. Souvent, chacun des départements collecte ces données à sa manière, et peut même utiliser différents outils, et le propriétaire doit consacrer beaucoup de temps personnel à tout comprendre, indirectement ou directement, cela peut affecter l'efficacité de l'entreprise et, finalement, son profit. La transformation numérique et le développement d'applications Web ou mobiles seront également utiles ici.

Les technologies ne s'arrêtent pas et évoluent constamment, et ce qu'elles utilisaient il y a plusieurs années n'est peut-être plus pertinent aujourd'hui, ou ce qu'elles ne pouvaient pas faire il y a quelques années est devenu une réalité. Il existe des outils plus modernes qui permettent de créer des applications Web et mobiles plus rapidement et mieux. Sur la base d'observations et d'expériences personnelles, je souhaite partager ma vision sur les technologies et les outils qui seront en demande dans un avenir proche et pourquoi vous devriez y prêter attention lors de la création d'une application web moderne.

Application d'une seule page


Définissons un peu la terminologie. Single Page Application (SPA) est une application Web dont les composants sont chargés une fois sur une seule page et le contenu est téléchargé selon les besoins. Et lors du basculement entre les sections de l'application, la page ne se recharge pas complètement, mais seules les données sont chargées et les données nécessaires sont affichées.

Les applications d'une seule page surpassent les applications Web classiques en termes de vitesse et de convivialité. Avec SPA, vous pouvez obtenir l'effet du site Web en tant qu'application de bureau sans redémarrage ni retards importants.

S'il y a plusieurs années, les applications d'une seule page ne prenaient pratiquement pas en charge l'optimisation des moteurs de recherche et étaient principalement utilisées pour créer des tableaux de bord personnels et un panneau d'administration, il est aujourd'hui beaucoup plus facile de créer une application d'une seule page avec une prise en charge complète de l'optimisation des moteurs de recherche (SEO). En utilisant des applications d'une seule page avec rendu sur serveur, ce problème a aujourd'hui complètement disparu. En d'autres termes, il s'agit de la même application d'une page, mais à la première demande, le serveur génère non seulement des données, mais crée une page prête à afficher HTML et les moteurs de recherche préparent des pages avec toutes les méta-informations et le balisage sémantique.

Avec le développement d'outils pour créer des applications Web côté client, le développement et la transition vers des applications d'une seule page au cours de cette année et des années suivantes ne feront que croître. Si vous avez une ancienne application moralement obsolète et lente à travailler, et même avec un rechargement complet de la page lors du basculement entre les sections, cette année, vous pouvez passer à une application rapide d'une page en toute sécurité - c'est le bon moment, les technologies vous permettent déjà de le faire assez rapidement et efficacement.

Avoir un site Web moderne et rapide est très bien, mais je veux vous dire honnêtement: toutes les applications ne peuvent pas être facilement converties en pages uniques et la transition peut être coûteuse! Par conséquent, vous devez comprendre qui a besoin de cette transition et pourquoi.

Pour vous aider à comprendre, dans le tableau ci-dessous, je donnerai quelques exemples lorsque le développement ou la transition vers SPA est approprié et justifié, et dans le cas contraire.
POUR
Si vous souhaitez créer une application moderne et rapide et que vous souhaitez utiliser non seulement la version Web, mais également mobile ou même de bureau, et tous les processus et calculs ont lieu sur un serveur distant ou cloud. Oui, et pour que tous les clients aient une interface d'interaction et qu'il n'était pas nécessaire d'apporter chaque modification au code serveur lors de l'ajout d'un nouveau client.

Par exemple: réseau social, agrégateurs, plateformes SaaS (logiciel en tant que service cloud), places de marché
Si vous avez un magasin ou un service Web, vous savez que c'est lent et que les gens partent, vous voulez le rendre plus rapide, vous comprenez la valeur des clients et êtes prêt à payer un million de roubles pour une mise à niveau.
Vous disposez d'une application mobile qui utilise l'API du site, tandis que le site est lent et avec des rechargements complets de contenu lors du basculement entre les pages
CONTRE
Si votre public cible n'utilise pas de navigateurs et d'appareils modernes.

Par exemple: des domaines spécifiques de l'entreprise, tels que le développement de systèmes internes pour les banques, les institutions médicales et l'éducation.
L'activité principale que vous menez hors ligne et n'êtes pas prêt à fournir des services en ligne, et il vous suffit d'attirer des clients.
Si vous avez une boutique en ligne ou un service Web qui se vend si bien, vous ne voyez pas de sortie de clients et de plaintes
Si vous avez une application qui ne peut pas être adaptée pour SPA et que vous avez juste besoin de tout réécrire à partir de zéro et d'utiliser d'autres technologies, et vous n'êtes pas prêt à dépenser plusieurs millions pour cela.

Par exemple: il y a un site en boîte ou une sorte de code monolithique ancien et ancien.

Applications Web progressives


Les applications Web progressives sont le produit de l'évolution conjointe d'une application native et d'un site Web. En fait, il s'agit d'une application Web qui ressemble et se comporte comme une véritable application native, peut recevoir des notifications push, travailler hors ligne, etc. Dans ce cas, l'utilisateur n'a pas besoin de télécharger l'application depuis l'AppStore ou Google Play, mais simplement l'enregistrer sur le bureau.

En tant qu'approche technologique ou de développement, PWA se développe depuis 2015 et a récemment gagné en popularité dans le domaine du commerce électronique.

Quelques exemples réels:

  • L'année dernière, le Best Western River North Hotel, après avoir lancé un nouveau site Web compatible PWA, a pu augmenter ses revenus de 300%;
  • Arabe Avito OpenSooq.com après avoir créé le support de PWA sur son site Internet a pu augmenter de 25% le temps de visite du site et de 260% le nombre de leads;
  • le célèbre service de rencontres Tinder a pu réduire la vitesse de téléchargement de 11,91 s à 4,69 s en développant PWA, de plus, l'application pèse 90% de moins que son homologue Android natif.

Le fait que l'un des plus grands moteurs de création de projets de commerce électronique Magento en 2018 ait lancé une version de développement précoce de PWA Studio indique également qu'il convient de prêter attention à cette technologie. La plate-forme permet à «out of the box» de créer une interface basée sur React pour ses solutions de commerce électronique avec prise en charge de PWA.

Conseils pour ceux qui ont déjà un projet Internet ou tout simplement l'idée d'un nouveau service avec support pour les appareils mobiles: ne vous précipitez pas pour écrire une application native à part entière, mais regardez d'abord la technologie PWA. Ce sera peut-être la meilleure solution de rapport qualité / prix pour votre produit.

Un peu de pratique. Pour créer une application de nouvelles mobile native simple, à condition qu'il existe déjà un serveur REST prêt à l'emploi, environ 200 à 300 heures-homme pour chaque plate-forme sont nécessaires. Avec un prix moyen du marché par heure de développement de 1 500 à 2 000 roubles par heure, une application peut coûter environ 1 million de roubles. Si vous développez une application Web avec prise en charge complète de PWA: notifications push, mode hors ligne et autres avantages, le développement prendra entre 200 et 300 heures-homme, mais le produit sera immédiatement disponible sur toutes les plateformes. Autrement dit, économiser environ 2 fois, sans parler du fait que vous n'avez pas à payer de cotisation pour être placé dans les magasins d'applications.

Sans serveur


Il s'agit d'une autre approche moderne du développement. En raison de son nom, beaucoup de gens pensent qu'il s'agit vraiment d'un développement sans serveur, vous n'avez pas besoin d'écrire de code back-end, et tout développeur front-end pourra créer une application web à part entière. Mais ce n'est pas le cas!

Lors de la création d'une application sans serveur, le serveur est toujours nécessaire, tout comme les bases de données. La principale différence entre cette approche est que le code principal est présenté sous la forme de fonctions cloud (un autre nom pour sans serveur est FaaS, fonctionne comme un service ou Functions-as-a-Service) et permet à l'application de s'adapter rapidement et facilement. Lors de la création d'une telle application, le développeur peut se concentrer sur les tâches métier et ne pas penser à faire évoluer et configurer l'infrastructure, ce qui accélère ensuite le développement de l'application et réduit son coût. De plus, l'approche sans serveur permettra d'économiser sur la location de serveurs, car elle utilise exactement autant de ressources que nécessaire pour terminer la tâche, et s'il n'y a pas de charge, alors le temps du serveur n'est pas utilisé du tout et n'est pas payé.

Par exemple, la grande société de médias américaine Bustle a pu réduire ses coûts d'hébergement de plus de 60% lors du passage à Serverless. Et Coca-cola, tout en développant un système automatisé de vente de boissons via des distributeurs automatiques, a pu réduire les coûts d'hébergement de 13 000 $ à 4 500 $ par an en passant à Serverless.

Au cours des deux dernières années, en raison de sa nouveauté et de ses limites, Serverless a été principalement utilisé pour les petits projets, les startups et les MVP, mais aujourd'hui, grâce à l'évolution des logiciels, à la polyvalence et à la puissance de la conteneurisation des serveurs, des outils apparaissent qui vous permettent de supprimer les restrictions, de simplifier et d'accélérer le développement d'applications cloud. .
Cela signifie que les scénarios d'entreprise dans lesquels la mise à niveau du cloud était auparavant considérée comme impossible (par exemple, pour les périphériques, les données transmises ou les applications avec état) sont désormais une réalité. Les bons outils prometteurs sont kNative et Enterprise sans serveur.

Mais avec tout cela, Serverless n'est pas une solution miracle pour le développement d'applications Web. Comme toute autre technologie, elle a ses propres avantages et inconvénients, et vous devez choisir cet outil avec compréhension et «ne pas marteler les ongles avec un microscope», simplement parce qu'il est plus avancé technologiquement.

Pour vous aider à le comprendre, voici quelques exemples où vous devriez penser à Serverless lors du développement d'un nouveau ou de l'amélioration d'un service Web existant:

  • Lorsque la charge sur le serveur est périodique et que vous payez pour une capacité inactive. Par exemple, nous avions un client avec un réseau de machines à café et il n'était nécessaire de traiter les demandes et de collecter des statistiques que quelques centaines ou milliers de fois par jour, et la nuit le nombre de demandes tombait à plusieurs dizaines. Dans ce cas, il est beaucoup plus efficace de ne payer que pour l'utilisation réelle des ressources, nous avons donc proposé et implémenté la solution sur Serverless;
  • Si vous ne prévoyez pas de vous plonger dans les détails techniques de l'infrastructure et de surpayer la configuration et le support des serveurs et de l'équilibreur. Par exemple, lorsque vous développez une place de marché, vous ne savez pas exactement quel sera le trafic, ou vice versa - vous planifiez beaucoup de trafic et donc votre application peut supporter la charge, Serverless est un excellent choix.
  • S'il est nécessaire d'effectuer certains événements de diffusion en continu dans le fonctionnement de l'application principale, écrivez des données secondaires dans des tableaux, effectuez des calculs. Par exemple, pour collecter des données analytiques sur les actions des utilisateurs, les traiter d'une certaine manière et les enregistrer dans une base de données;
  • Si vous avez besoin de simplifier, d'unifier ou d'accélérer l'application actuelle. Par exemple, pour créer des services améliorant les performances pour travailler avec des images ou des vidéos lorsqu'un utilisateur télécharge une vidéo dans le cloud, et qu'une fonction distincte est impliquée dans le transcodage, tandis que le serveur principal continue de fonctionner comme d'habitude.

Si vous devez traiter des événements à partir de services tiers. Par exemple, traiter les réponses des systèmes de paiement ou rediriger les données des utilisateurs vers CRM pour accélérer le traitement des demandes de clients potentiels
Si vous avez une grande application et que certaines parties de l'application peuvent être implémentées de manière plus optimale, en utilisant un langage différent du principal. Par exemple, vous avez un projet Java et vous devez ajouter de nouvelles fonctionnalités, mais il n'y a pas de mains libres, ou dans ce langage, l'implémentation peut prendre plus de temps et il existe déjà une solution dans une autre langue, alors Serverless peut vous y aider.

Ce n'est pas toute la liste des outils et technologies qui méritent notre attention, je viens de partager ce que nous utilisons nous-mêmes chaque jour dans notre travail et de savoir exactement comment ils peuvent aider les entreprises.

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


All Articles