Maison  >  Article  >  développement back-end  >  Le langage Go peut-il être utilisé comme backend ?

Le langage Go peut-il être utilisé comme backend ?

青灯夜游
青灯夜游original
2022-12-27 10:50:585213parcourir

Le langage Go peut être utilisé comme backend. Le langage Go est un langage de programmation côté serveur. Son orientation est principalement back-end. Il est très adapté au traitement des journaux, au packaging des données, au traitement des machines virtuelles, aux systèmes de fichiers, aux systèmes distribués, aux agents de base de données, etc. Les raisons d'utiliser le langage Go pour le développement back-end : 1. Il présente les caractéristiques d'une syntaxe simple et d'une efficacité d'exécution élevée au niveau du langage. 2. Il se concentre sur la concurrence et est né pour la concurrence. Ère du big data + cloud computing. Scénarios d'application distribués à haute concurrence ; 3. Il peut être directement compilé pour générer des programmes exécutables sur différentes plates-formes, et l'utilisation de base de la mémoire est très faible.

Le langage Go peut-il être utilisé comme backend ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Le langage Go est un langage de programmation côté serveur, principalement utilisé pour le back-end. Il est très approprié pour le traitement des journaux, le packaging des données, le traitement des machines virtuelles, les systèmes de fichiers, les systèmes distribués, les agents de base de données, etc.

Pourquoi utiliser le langage Go pour le développement back-end ?

1. Simple et efficace : Presque tous les langages de programmation traditionnels tels que Java, C++, PHP, Python, JavaScript, etc. peuvent être utilisés pour le développement côté serveur. En tant qu'étoile montante, le langage Go a une syntaxe simple. et l'exécution au niveau du langage.Les caractéristiques de haute efficacité (langage de niveau inférieur) ; en comparaison, Java, Python et PHP sont tous inefficaces, C++ est trop gênant et Go peut atteindre à la fois simplicité et efficacité ; Haute concurrence : langage Go Il se concentre sur la concurrence et est conçu pour la concurrence. Son point de départ est de cibler des scénarios d'applications à haute concurrence et distribuées à l'ère du big data + cloud computing

3. compilé pour générer des programmes exécutables sur différentes plates-formes. L'utilisation de base de la mémoire est très faible et les grandes applications peuvent bien fonctionner après avoir utilisé des dizaines de M. Cela permet à Golang de bien fonctionner sur de petits appareils tels que Raspberry Pi. , qui fonctionne mieux que Java. Beaucoup ;

La conteneurisation, la distribution et les microservices sont les tendances dans le développement de serveurs :

    Conteneurisation : le langage Go est le seigneur absolu dans le domaine des conteneurs, et tout le monde le connaît. Docker et Kubernets (K8S) sont développés en utilisant le langage Go ;
  • Distribué : le meilleur exemple est Ethereum, car la blockchain est un registre distribué
  • Microservices : le meilleur exemple de langage Go prenant en charge les microservices C'est Toutiao Plus. plus de 80 % du trafic des services back-end actuels de Toutiao fonctionne sur des services construits avec Go. Le nombre de microservices dépasse 100, le QPS maximal dépasse 7 millions et le volume de demandes de traitement quotidien dépasse 300 milliards. Il s'agit peut-être de la plus grande application Go du secteur.
Le langage Go est un langage back-end Par rapport aux autres langages back-end, quels sont les avantages ou les caractéristiques de Go ?

    Le niveau de langage prend en charge la concurrence. C'est la plus grande fonctionnalité de Go. Il est facile d'écrire des programmes multithread et peut utiliser pleinement plusieurs cœurs.
  • En tant que langage de programmation né au 21e siècle, il prend en charge le garbage collection, comme Java, il ne nécessite pas de développeurs pour gérer la mémoire et peut se concentrer sur la mise en œuvre commerciale.
  • Riche bibliothèque standard, Go possède un grand nombre de bibliothèques intégrées, notamment la bibliothèque réseau qui est très puissante.
  • Le déploiement du langage Go est relativement simple, il est directement compilé en code machine et il existe des options de compilation multiplateforme.
  • Le concept du langage Go est "moins c'est plus". Comparé à C++ et Java, le langage Go est plus facile à démarrer.

Histoires de réussite du langage Go1 Docker (conteneur)

Jusqu'à présent, Docker est presque une success story difficile à trouver et à copier dans Go. Le projet Docker a reçu 40 millions de dollars de financement de série C en septembre 2014. La vitesse d'itération des versions est ultra rapide. Actuellement, il existe 78 versions vues sur GitHub, et ce n'est qu'un projet qui a été officiellement lancé début 2013. À l'heure actuelle, la promotion nationale de la technologie Docker bat également son plein, comme la communauté chinoise Docker, et le CSDN a également créé une zone Docker. La raison pour laquelle l'équipe Docker aime utiliser le langage Go est principalement parce que Go dispose d'une puissante bibliothèque standard, d'un environnement de développement complet et de capacités de construction multiplateforme.

2. Kubernetes (conteneur)

Kubernetes est Kubernetes lancé par Google à l'été 2014. Basé sur Docker, son objectif est de permettre aux utilisateurs de gérer des clusters de conteneurs cloud via des clusters Kubernetes sans obliger les utilisateurs à effectuer un travail de configuration complexe. Le système sélectionnera automatiquement les nœuds de travail appropriés pour effectuer des travaux spécifiques de planification et de traitement de cluster de conteneurs. Son concept principal est Container Pod.

3. Etcd & Fleet (base de données distribuée)

etcd est un système de stockage clé-valeur développé et maintenu par CoreOS. Il est écrit en langage Go et gère la réplication des journaux via l'algorithme de cohérence Raft pour garantir une forte cohérence. Actuellement, le système de gestion de clusters de conteneurs de Google, Kubernetes, la plateforme PaaS open source Cloud Foundry et la flotte de CoreOS utilisent tous largement etcd. Fleet est un système d'initialisation distribué. La raison pour laquelle ils choisissent d'utiliser le langage Go est la bonne prise en charge multiplateforme du langage Go et la forte communauté qui le soutient.

4. Deis (plateforme de services cloud)

Deis est une plateforme PaaS open source basée sur Docker et CoreOS, conçue pour faciliter le déploiement et la gestion d'applications sur des serveurs. Il peut fonctionner sur les plateformes AWS, GCE et Openstack.

5. Flynn (Cloud Service Platform)

Flynn est une plate-forme PaaS open source écrite en langage Go, qui peut automatiquement créer et déployer n'importe quelle application pour s'exécuter sur un cluster de conteneurs Docker. Le projet Flynn est soutenu par Y Combinator et est toujours en développement. Il s'appelle la plate-forme PaaS open source de nouvelle génération.

6. Lime (application de bureau)

Par rapport aux langages Go ci-dessus en plus du côté cloud et serveur, Lime est assez spécial. Lime est un programme d'édition de bureau écrit en langage Go, considéré comme une implémentation open source du célèbre éditeur Sublime Text.

7. Revel (Web Framework)

Revel est un framework Web en langage Go hautement productif. Le framework Revel prend en charge la compilation à chaud. Lors de l'édition, de l'enregistrement et de l'actualisation du code source, Revel compilera automatiquement le code et les modèles. Il dispose de fonctionnalités complètes et prend en charge le routage, l'analyse des paramètres, la mise en cache, les tests, l'internationalisation et d'autres fonctions.

8. InfluxDB (base de données distribuée)

Une base de données distribuée open source de séries chronologiques, d'événements et d'indicateurs écrite en Go Voice, sans dépendances externes. Son objectif de conception est d’obtenir une mise à l’échelle distribuée et horizontale.

9. .Syncthing (disque cloud)

Un outil de service de stockage et de synchronisation cloud open source écrit en langage Go. Les données des utilisateurs seront entièrement contrôlées par eux-mêmes et chaque nœud d'accès est vérifié avec un cryptage. certificat. . Le projet est considéré comme une alternative open source à Dropbox et BitTorrent Sync. La raison pour laquelle Syncthing a choisi le langage Go est également due à des considérations multiplateformes.

10. Gogs (service Git en libre-service)

Gogs est un projet de service Git en libre-service développé par Guoren Wuwen (GitHub). L'objectif de Gogs est de créer le moyen le plus simple, le plus rapide et le plus simple de créer des services Git en libre-service. Selon l'auteur, la raison pour laquelle nous avons choisi d'utiliser le langage Go pour le développement est que Go permet de distribuer Gogs via des binaires indépendants et offre un bon support multiplateforme.

Perspectives de développement back-end Go

Prenons l'exemple d'Imperial City. Le salaire des ingénieurs de développement Go dans des échantillons aléatoires est aussi bas que 10 000 et aussi élevé que 60, et la plupart d'entre eux se situent dans la fourchette 20 000. Gamme 40K ;

Le langage Go peut-il être utilisé comme backend ?

Go Quelle est l'orientation actuelle de l'emploi dans l'industrie ?

Tout d'abord, dans le domaine Web, Go peut faire tout ce que Java/php peut faire, et c'est plus simple et plus efficace

Dans les scénarios suivants, Go met surtout en avant les avantages du langage :

  • ;

    Scénarios avec des exigences d'efficacité élevées : Par exemple, les moteurs de recommandation doivent rapidement former des portraits d'utilisateurs et générer du contenu recommandé basé sur l'analyse du Big Data - le moteur de recommandation de Toutiao est donc réalisé avec Go ; qui utilisait C/C++, vous pouvez désormais utiliser Go ;

  • Scénario de concurrence élevée : un programme exécutable côté serveur développé en langage Go peut supporter des millions de concurrence, tandis que Java doit utiliser plus de serveurs pour l'équilibrage de charge. augmente le coût ;

  • Scénarios distribués : en particulier des scénarios distribués à grande échelle ou des nœuds de serveur qui envisagent de rejoindre la blockchain

  • [Recommandations associées :

    Tutoriels vidéo Go
  • ,
Enseignement de la programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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