Maison > développement back-end > Golang > Le langage Go est-il un langage back-end ?

Le langage Go est-il un langage back-end ?

青灯夜游
Libérer: 2022-12-01 18:19:03
original
7885 Les gens l'ont consulté

go Language est un langage back-end. Le langage Go est un langage de programmation côté serveur, et sa direction est principalement back-end. Les raisons d'utiliser le langage Go pour le développement back-end : 1. Au niveau du langage, il présente les caractéristiques d'une syntaxe simple et d'une efficacité d'exécution élevée (langage sous-jacent) 2. Le langage Go se concentre sur la concurrence et est né pour la concurrence, et son le point de départ est de cibler le big data + Des scénarios d'applications distribuées et à haute concurrence dans le contexte de l'ère du cloud computing ; 3. Le langage Go 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 est-il un langage back-end ?

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. La direction du langage go n'est pas le front-end, mais principalement le back-end.

Go (également connu sous le nom de Golang) est un langage de programmation développé par Google qui est statiquement fortement typé, compilé, concurrent et possède des capacités de récupération de place. Go a été officiellement annoncé en novembre 2009, devenant un projet open source et implémenté sur les plates-formes Linux et Mac, puis ajouté une implémentation sous les systèmes Windows.

La syntaxe du langage Go est similaire à celle du C, mais ses fonctions incluent : la sécurité de la mémoire, le GC (garbage collection), la forme structurelle et le calcul simultané de style CSP.

Description

La syntaxe de Go est proche du langage C, mais la déclaration des variables est différente. Go prend en charge le ramassage des ordures. Le modèle parallèle de Go est basé sur le processus séquentiel de communication (CSP) de Tony Hall. D'autres langages qui adoptent un modèle similaire incluent Occam et Limbo, mais il possède également des fonctionnalités des opérations Pi, telles que la transmission de canal. La prise en charge des plugins est ouverte dans la version 1.8, ce qui signifie que certaines fonctions peuvent désormais être chargées dynamiquement depuis Go.

Par rapport à C++, Go n'inclut pas de fonctions telles que l'énumération, la gestion des exceptions, l'héritage, les génériques, les assertions, les fonctions virtuelles, etc., mais il ajoute le type de tranche, la concurrence, le pipeline, le garbage collection et la prise en charge au niveau du langage. pour d'autres fonctionnalités. La version Go 2.0 prendra en charge les génériques, mais a une attitude négative envers l'existence d'assertions et défend également le fait qu'elle ne fournit pas d'héritage de type.

Contrairement à Java, Go possède des tableaux associatifs intégrés (également appelés hachages ou dictionnaires), tout comme les types de chaînes

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. exécution efficace au niveau du langage. Caractéristiques élevées (langage de bas niveau) ; en comparaison, Java, Python et PHP sont tous inefficaces, C++ est trop gênant et Go peut atteindre à la fois simplicité et efficacité ; Le langage Go est 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 : il peut être directement compilé pour ; générer des programmes exécutables sur différentes plates-formes. Cela prend très peu de mémoire, tandis que les grandes applications occupent des dizaines de Mo et peuvent très bien fonctionner sur de petits appareils tels que Raspberry Pi. , qui fonctionne bien mieux que Java.

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

1. Docker et Kubernets connus (K8S) sont développés en utilisant le langage Go ;

2. Distribution : le meilleur exemple est Ethereum, car la blockchain est un registre distribué

3 Microservices : le langage Go prend en charge le mieux les microservices. plus de 80 % du trafic actuel des services back-end de Toutiao fonctionne sur des services intégrés dans 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.
Style d'écriture

Il existe plusieurs réglementations dans Go Lorsque les réglementations suivantes ne correspondent pas, la compilation générera une erreur.

    Pas besoin d'écrire un point-virgule après chaque ligne de programme.
  • L'accolade gauche ne peut pas être placée dans une nouvelle ligne.
  • if les jugements et les boucles for n'ont pas besoin d'être placés entre parenthèses.

Go dispose également d'un outil gofmt intégré, qui peut automatiquement trier les espaces en excès dans le code, aligner les noms de variables et convertir les espaces alignés en tabulations. [Recommandations associées : Tutoriel vidéo Go]

Compilateur

Il existe actuellement deux branches du compilateur Go, à savoir le compilateur officiel gc et gccgo. Le compilateur officiel a été initialement écrit en C, puis réécrit en Go pour réaliser le bootstrap. Gccgo est un compilateur Go utilisant le standard GCC comme backend.

Le compilateur officiel prend en charge la compilation multiplateforme (mais ne prend pas en charge CGO), permettant de compiler le code source en fichiers binaires pouvant être exécutés sur le système et l'architecture cibles

Histoires de réussite du langage Go

. 1. 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. Il est basé sur Docker et 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 (Cloud Service Platform)

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.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal