Maison  >  Article  >  Une brève discussion sur les tendances technologiques back-end en 2018

Une brève discussion sur les tendances technologiques back-end en 2018

小云云
小云云original
2018-01-25 14:06:502406parcourir

Dans cet article, nous allons principalement vous parler des tendances de la technologie back-end en 2018, en espérant vous aider à avoir une idée plus claire sur la technologie back-end.

Mode asynchrone

Le langage Go devient de plus en plus populaire, et de nombreuses grandes sociétés Internet se tournent vers GO pour leurs backends. Dubbo, un framework orienté services bien connu dans le cercle Java, a également annoncé sa transformation en mode asynchrone. Il s’agit d’une tendance lourde, et le modèle asynchrone a été vérifié et reconnu par le marché.

Lorsqu'il s'agit de choisir un serveur Web, la plupart des gens ont commencé à choisir Nginx asynchrone non bloquant au lieu d'Apache bloquant synchrone il y a quelques années. C’est grâce aux programmes asynchrones comme Nginx qu’il a une meilleure adaptabilité et des capacités de concurrence plus fortes. Désormais, en termes de programmation back-end de développement commercial, les équipes dotées de solides capacités techniques ont commencé à faire passer la pile technologique du mode synchrone au mode asynchrone.

Le mode de blocage synchrone présente de nombreux défauts, notamment une faible concurrence, une mauvaise adaptabilité et des requêtes lentes, entraînant une indisponibilité du service. Par exemple : dans le scénario d'appel d'une API tierce dans l'interface en arrière-plan, le mode de synchronisation a un effet extrêmement médiocre. Dans le passé, de moins en moins de personnes utilisaient les frameworks de mode de blocage synchrone développés à l'aide des langages Java, PHP, C++, Python et Ruby.

Node.js

Bien que Node.js soit également très populaire et populaire, il est encore rare de voir des entreprises utiliser Node.js comme principal langage de programmation pour le backend de l'entreprise. Les langages C++, Java, PHP et Python proposent également des solutions similaires, notamment Swoole-1.0, qui repose également sur un mode de rappel asynchrone similaire à Node.js.

La raison essentielle est que la solution technique du rappel asynchrone et certaines solutions d'optimisation qui y sont apportées, notamment Promise, Future, Yield/Generator, Async/Await, etc., ont changé le style et les habitudes de développement de programmes. . Si vous souhaitez utiliser ces technologies, les ingénieurs doivent en outre apprendre à utiliser ces mots-clés et fonctions.

L'utilisation de ces solutions techniques n'est pas compatible avec les programmes existants. On peut dire que les coûts de R&D sont énormes et qu'il est difficile de faire une transition en douceur. A influencé la popularité de la pile technologique de rappel asynchrone. Ce modèle de programmation est difficile à accepter pour tout le monde.

Coroutine

Le mode coroutine prend en compte la maintenabilité du blocage synchrone et la haute capacité de concurrence du non-blocage asynchrone. Il deviendra à l’avenir la solution technique dominante dans le domaine du développement back-end.

Le plus important est que le mode coroutine ne nécessite que quelques ajustements du code du projet existant pour s'exécuter, et est même entièrement compatible avec les anciens projets. Seule la couche framework est requise pour la compatibilité. Cela permet une transition en douceur pour l’équipe.

En utilisant le mode coroutine, les développeurs n'ont pas du tout besoin d'apprendre des mots-clés supplémentaires ni l'utilisation des fonctions. Le style de codage est exactement le même qu’en mode synchrone.

Parmi les différentes technologies de coroutine, GO est la plus éblouissante. Coroutines, canaux, langages statiques, performances, compilation riche, bibliothèques standards riches, écologie complète, Google, etc. Il y a trop d'avantages. Le langage GO, je pense personnellement que c'est le plus intéressant à apprendre parmi tous les langages de programmation actuels .

Swoole 2.x Laissez PHP, un langage de programmation backend vétéran avec une histoire de plus de 20 ans, disposer également de capacités de coroutine. Par rapport à des technologies comme Go, la pile technologique de PHP + Swoole est plus adaptée au développement rapide, à l'itération rapide et aux scénarios axés sur l'entreprise. Après tout, les langages dynamiques sont plus flexibles et plus efficaces en termes de développement que les langages statiques. Et Go est plus adapté à l'écriture de logiciels au niveau système et au cœur de métier.

En 2018, j'ai refactorisé le framework swoole, un très vieux projet, et la couche inférieure prend en charge le Swoole 2.x mode coroutine. La raison principale est qu'il existe de nombreux projets au sein de Wheel Company basés sur ce framework, en particulier la couche de service, qui utilise tous le framework swoole. Nous espérons que le code métier ne changera pas une seule ligne et pourra passer en mode coroutine en un clic. Théoriquement, d'autres frameworks PHP de blocage synchrone, tels que Laravel et Yii, ne peuvent modifier que la coroutine Swoole 2.x compatible sous-jacente pour obtenir une commutation transparente du mode coroutine dans le code du projet.

Après l'utilisation de coroutines, les performances, la concurrence et la stabilité de l'ensemble du système ont été considérablement améliorées. Dans le passé, le problème selon lequel une requête lente entraînait souvent le blocage de l'ensemble du serveur en ligne n'existe plus.

PHP & Swoole

Bien que Swoole 2.0 n'ait que moins de deux ans, comparé aux 10 années de travail acharné du langage Go, il lui reste encore un long chemin à parcourir. Mais par rapport aux langages statiques comme GO, PHP + Swoole présente encore de nombreux avantages. PHP est plus simple et plus facile à utiliser. PHP est un langage dynamique et plus flexible à utiliser.

Bien sûr, s'il s'agit d'un nouveau projet, il est recommandé d'utiliser Swoft, un framework spécialement conçu pour Swoole 2.x Il a moins de bagage historique et a donc une meilleure stabilité.

Maintenant avec les coroutines Swoole 2.0, nous restons confiants dans l'avenir de PHP.

Recommandations associées :

Sept choses que les programmeurs en croissance doivent faire

Le chemin de croissance des programmeurs PHP

Une brève discussion sur l'avenir des programmeurs PHP


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn