Maison >développement back-end >Golang >Le langage Go peut-il être utilisé pour la programmation ?

Le langage Go peut-il être utilisé pour la programmation ?

青灯夜游
青灯夜游original
2022-12-27 10:30:144361parcourir

La langue

go peut être programmée. Le langage Go est un langage de programmation concurrent, compilé et statiquement fortement typé avec une fonction de récupération de place développé par Google. Le langage Go a de nombreuses utilisations et peut être utilisé pour la programmation réseau, la programmation système, la programmation simultanée et la programmation distribuée. En tant que langage de programmation serveur, le langage Go est très approprié pour le traitement des journaux, le conditionnement de 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. Il peut également être utilisé pour la programmation réseau telle que les applications Web, les applications API et télécharger des applications.

Le langage Go peut-il être utilisé pour la programmation ?

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

Le langage Go, également connu sous le nom de Golang, est un langage de programmation statiquement fortement typé, compilé, simultané et de récupération de place développé par Google.

Le langage Go (ou Golang) est né en 2007 et a été officiellement publié en 2009. Go est un langage très jeune, et son objectif principal est de « combiner la vitesse de développement de langages dynamiques comme Python et les performances et la sécurité des langages compilés comme C/C++ ».

Le langage Go est une autre tentative de conception de langage de programmation et une amélioration majeure par rapport aux langages de type C. Il vous permet non seulement d'accéder au système d'exploitation sous-jacent, mais fournit également une programmation réseau puissante et une prise en charge de la programmation simultanée. Le langage Go a de nombreuses utilisations et peut être utilisé pour la programmation réseau, la programmation système, la programmation simultanée et la programmation distribuée :

  • programmation serveur Si vous avez déjà utilisé C ou C++ pour faire ces choses, Go est très approprié pour les faire. , tels que les journaux de traitement, le packaging des données, le traitement des machines virtuelles, le système de fichiers, etc.

  • Systèmes distribués, courtiers de bases de données, middleware, etc., tels que Etcd.

  • La programmation réseau est actuellement la plus largement utilisée, y compris les applications Web, les applications API, les applications de téléchargement, et le package net/http intégré de Go implémente essentiellement toutes les fonctions réseau que nous utilisons habituellement.

Le lancement du langage Go vise à réduire la complexité du code sans perdre les performances des applications. Il présente actuellement les avantages d'un « déploiement simple, d'une bonne concurrence, d'une bonne conception du langage et de bonnes performances d'exécution ». Tous les projets ont été développés en utilisant le langage Go.

De nombreux projets open source importants sont développés à l'aide du langage Go, notamment Docker, Go-Ethereum, Thrraform et Kubernetes.

Quelles entreprises ou projets au pays et à l'étranger utilisent le langage Go ?

Après la sortie de Go, de nombreuses entreprises, en particulier les sociétés de cloud computing, ont commencé à utiliser Go pour reconstruire leur infrastructure, et beaucoup d'entre elles l'ont directement utilisé. Optez pour le développement Récemment, Docker, qui bat son plein, a été développé avec Go.

Il existe de nombreux projets open source développés en utilisant le langage Go. Les premiers projets open source du langage Go n'implémentaient que la liaison de bibliothèque de langage C via le langage Go et des projets traditionnels, tels que Qt, Sqlite, etc. ; de nombreux projets ultérieurs utilisaient le langage Go pour une implémentation re-native. a également contribué à l'émergence d'un grand nombre de projets de développement natifs utilisant le langage Go.

  • Domaine de l'infrastructure de cloud computing

    Projets représentatifs : docker, kubernetes, etcd, consul, cloudflare CDN, Qiniu cloud storage, etc.

  • Logiciel de base

    Projets représentatifs : tidb, influxdb, cockroachdb, etc.

  • Microservices

    Projets représentatifs : go-kit, micro, typhon de monzo bank, bilibili, etc.

  • Infrastructure Internet

    Projets représentatifs : Ethereum, hyperledger, etc.

Certaines entreprises étrangères qui utilisent Go, telles que Google, Docker, Apple, Cloud Foundry, CloudFlare, Couchbase, CoreOS, Dropbox, MongoDB, AWS et d'autres sociétés

Entreprises nationales qui utilisent le développement Go : comme Alibaba ; Cloud CDN, Baidu, Xiaomi, Qiniu, PingCAP, Huawei, Kingsoft, Cheetah Mobile, Ele.me et d'autres sociétés.

Le langage Go peut-il être utilisé pour la programmation ?

Docker

Docker est une technologie de virtualisation au niveau du système d'exploitation qui peut isoler entre les systèmes d'exploitation et les applications, et peut également être appelée conteneurs. Docker peut exécuter rapidement une ou plusieurs instances sur un serveur physique. Un outil de packaging virtuel basé sur lxc peut réaliser la construction d'une plateforme PAAS. Par exemple, démarrez un système d'exploitation CentOS et arrêtez-le après avoir exécuté des instructions sur sa ligne de commande interne. L'ensemble du processus est aussi efficace que le système d'exploitation lui-même.

go language

Le premier code source du langage Go a été écrit en langage C et en langage assembleur. À partir de la version Go 1.5, il est entièrement écrit dans le langage Go lui-même. Le code source du langage Go revêt une grande importance de référence pour comprendre la planification sous-jacente du langage Go. Il est recommandé aux lecteurs qui souhaitent avoir une compréhension approfondie du langage Go de le lire.

Kubernetes

Un service de planification de conteneurs basé sur Docker développé par Google. Les utilisateurs peuvent gérer des clusters de conteneurs cloud via des clusters Kubernetes.

etcd

Un système de stockage KV distribué et fiable qui peut être rapidement configuré dans le cloud.

beego

beego est un framework Tornado de type Python qui adopte l'idée de conception RESTFul et est un framework d'application Web extrêmement léger, hautement évolutif et hautes performances écrit en langage Go.

martini

Un framework Web pour créer rapidement des applications Web modulaires.

codis

Excellente solution Redis distribuée domestique.

delve

Le puissant débogueur du langage Go est intégré à de nombreux environnements et éditeurs intégrés.

Facebook

Facebook l'utilise également. Pour cette raison, ils ont également créé une organisation open source facebookgo sur Github. Vous pouvez consulter les projets open source de Facebook en visitant, comme le fameux grace qui est une mise à niveau en douceur. .

Tencent

En tant que grande entreprise nationale, Tencent ose encore essayer, notamment dans le domaine de la conteneurisation Docker. Elle a mis en œuvre des dizaines de milliers d'unités Docker en 15 ans. Pour plus de détails, veuillez vous référer à

http : // www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice

Baidu

L'utilisation actuelle connue de Baidu concerne l'exploitation et la maintenance, et il s'agit d'un projet BFE de l'exploitation et de la maintenance de Baidu, responsable de l'accès au trafic frontal. Leur responsable l'a partagé en 2016. Vous pouvez jeter un œil à ceci http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend

Le deuxième est le système de messagerie de Baidu. Responsable du développement et de la maintenance du côté serveur du système de messagerie mobile de l'entreprise.

JD

Le système push de messages JD Cloud, le stockage cloud et JD Mall utilisent tous Go pour le développement.

Xiaomi

Le support de Xiaomi pour Golang n'est rien de plus que le système open source de surveillance de l'exploitation et de la maintenance, qui est http://open-falcon.com/.

De plus, Xiaomi Interactive Entertainment, Xiaomi Mall, Xiaomi Video, Xiaomi Ecological Chain et d'autres équipes utilisent Golang.

360

360 utilise également beaucoup Golang. L'un d'entre eux est le système de recherche de journaux open source Poséidon, hébergé sur Github.

L'équipe push de 360 ​​utilise également Golang. Ils ont également écrit un article de blog sur Golang sur le site officiel. bloguer.

Meituan

Programme de support du trafic backend Meituan. Champ d'application : prend en charge le trafic backend du site Web principal (tri, recommandation, recherche, etc.), fournit l'équilibrage de charge, le cache, la tolérance aux pannes, la distribution conditionnelle, les indicateurs de fonctionnement statistiques (qps, latence) et d'autres fonctions.

Didi

Plateforme de services de base.

Kingsoft Weikan

Portée de l'application : interface de service, service de processus en arrière-plan, système de messagerie, système d'image

Sogou

Système push Sogou. La partie du système Push utilisée pour maintenir les connexions avec les clients.

. . . . .

Écrit à la fin

Bien sûr, la possibilité de développer une technologie dépend de trois points clés. (Les opinions suivantes sont tirées de https://www.cnblogs.com/qwangxiao/p/8318894.html)

• Existe-t-il une meilleure communauté ? Les écosystèmes C, C++, Java, Python et JavaScript sont tous très riches et populaires. En particulier, les communautés auxquelles participent de nombreuses organisations commerciales sont encore plus populaires, comme la communauté Linux.

• Existe-t-il une norme industrielle ? C, C++ et Java disposent tous d’organisations de normalisation. Java, en particulier, a développé des normes d'entreprise comme J2EE en termes d'architecture.

• Existe-t-il une ou plusieurs applications qui tuent. Il va sans dire que les applications phares de C, C++ et Java, même pour PHP, qui n'est pas considéré comme un bon langage de programmation, sont des technologies clés de LAMP, la première solution phare de l'ère Linux, donc également développée. Les trois points ci-dessus sont très critiques. Les nouvelles technologies n'ont besoin d'en prendre en compte qu'un ou deux pour être très bonnes. De plus, certaines technologies, comme Java, représentent les trois points. C'est pourquoi le développement de Java est si bon. .

Bien sûr, en plus des trois points importants ci-dessus, il existe également d'autres facteurs d'influence, tels que :

  • Si la courbe d'apprentissage est faible et s'il est rapide de démarrer. C’est très important, et le C++ est de pire en pire à ce stade.
  • Existe-t-il un bon cadre de développement pour améliorer l'efficacité du développement. Tels que : le framework Spring de Java, le STL de C++, etc.
  • Est-il soutenu par une ou plusieurs entreprises technologiques géantes. Par exemple : IBM et Sun derrière Java et Linux...
  • Ont-ils résolu les problèmes du développement logiciel ? Par exemple : Java résout les problèmes de gestion de la mémoire du C et du C++.

En utilisant ces règles pour mesurer le langage Go, nous pouvons clairement voir :

  • Le langage Go est facile à démarrer

  • Le langage Go résout les problèmes liés à la programmation simultanée et à l'efficacité du développement d'applications de bas niveau ;

  • Le langage Go est soutenu par Google, une entreprise technologique de classe mondiale

  • L'application phare du langage Go est Docker, et l'écosystème Docker a complètement explosé ces dernières années ;

Ainsi, l’avenir du langage Go est sans limites. Bien sûr, Go peut engloutir de nombreux projets C, C++ et Java. Cependant, Les principaux projets avalés par le langage Go devraient être des projets de couche intermédiaire, ni de très bas niveau, ni de couche métier. En d’autres termes, le langage Go n’engloutira pas les projets de bas niveau tels que C et C++, ni les projets de haut niveau tels que la couche métier Java. Ce que le langage Go peut dévorer doit être des projets sur PaaS, tels que certains middleware de mise en cache de messages, la découverte de services, les agents de service, les systèmes de contrôle, les agents, la collecte de journaux, etc. Il n'y a pas de scénarios commerciaux complexes et il ne peut pas atteindre des couches inférieures spéciales ( tels que les systèmes d'exploitation). ), un projet logiciel ou un outil qui est une couche de plateforme intermédiaire. C et C++ seront déplacés vers un niveau inférieur et Java sera déplacé vers une couche métier supérieure.

D'accord, utilisons la règle ci-dessus pour mesurer Docker, l'application phare du langage Go, et vous constaterez que c'est fondamentalement la même chose.

  • Docker est facile à utiliser.

  • Docker résout les problèmes environnementaux d'exploitation et de maintenance ainsi que les problèmes liés à la planification des services.

  • L’écosystème de Docker est soutenu par de grandes entreprises. Comme Google.

  • Docker produit le standard de l'industrie OCI.

  • La communauté et l'écosystème Docker ont déjà connu le même élan que Java et Linux.

【Recommandations associées : Tutoriel 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
Article précédent:Que peut faire le langage go ?Article suivant:Que peut faire le langage go ?