Maison développement back-end Golang Le langage go peut-il être utilisé pour écrire l'Internet des objets ?

Le langage go peut-il être utilisé pour écrire l'Internet des objets ?

Dec 28, 2022 pm 04:46 PM
golang 物联网 go语言

Vous pouvez écrire. Dans le domaine de l'Internet des objets, Golang peut être utilisé pour accéder et gérer efficacement des millions d'appareils ; les diverses technologies de pointe de Golang peuvent être utilisées pour analyser les données en temps réel et créer des rapports de données. Les raisons d'utiliser Golang pour développer la plate-forme Internet des objets : 1. Les trois auteurs de Go sont très compétents ; 2. Les performances de Go sont juste derrière C/C++ 3. La mise en route est très rapide et la plupart des programmeurs le peuvent ; démarrez dans 1 à 2 semaines ; 4. Il a de bonnes caractéristiques de concurrence ; 5. Il est compatible avec un grand nombre de périphériques matériels ; 6. Il a un bon support communautaire ; 7. Il peut aider les développeurs à accélérer avec un code propre ;

Le langage go peut-il être utilisé pour écrire l'Internet des objets ?

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

Si votre budget est relativement petit, vous pouvez d'abord envisager d'utiliser Golang. Les fonctionnalités de concurrence et les excellentes performances de Golang permettent d'utiliser pleinement le matériel existant, contrairement à Java et Python, qui entraînent une certaine quantité de gaspillage et vous obligent à dépenser plus d'argent.

Dans le domaine de l'Internet des objets, Golang peut être utilisé pour accéder et gérer efficacement des millions d'appareils. Et utilisez les différentes technologies de pointe de Golang pour analyser les données en temps réel et créer des rapports de données.

Voici les raisons pour lesquelles nous avons choisi Golang pour développer le système IoT ThingsPanel :

Fondateur

Les trois auteurs de Go sont : Rob Pike, Ken Thompson et Robert Griesemer.

Rob Pike : était membre de l'équipe Unix des Bell Labs et du projet de système d'exploitation Plan 9. Il a travaillé avec Thompson pendant de nombreuses années et a co-créé le codage de caractères UTF-8, largement utilisé.

Ken Thompson : Principalement l'auteur des langages B et C et le père d'Unix. Lauréat du prix Turing en 1983 et de la médaille nationale de la technologie en 1998. Lui et Dennis Ritchie sont les créateurs originaux d'Unix. Thompson a également inventé le langage de programmation B, dérivé plus tard du langage C.

Robert Griesemer : A été un contributeur majeur à Google V8, Chubby et HotSpot JVM avant de développer Go.

Les performances sont juste derrière C/C++

GoLang est un langage compilé qui peut être compilé en code machine, et le binaire compilé peut être directement déployé sur la machine cible sans dépendances supplémentaires. Les performances sont meilleures que celles des langages interprétés.

L'image ci-dessous est un test. Il semble que la vitesse de Golang soit toujours très puissante.

Le langage go peut-il être utilisé pour écrire lInternet des objets ?

Comparaison des performances des langages courants (Auteur de l'image : Je ne veux pas cultiver)

Si vous avez des exigences plus élevées, vous pouvez également intégrer du code C dans le programme Go afin de pouvoir l'utiliser de nombreuses bibliothèques puissantes de C Tool.

La mise en route est très rapide et la plupart des programmeurs peuvent démarrer en 1 à 2 semaines.

Les programmeurs PHP passent à Golang et peuvent commencer à corriger les bugs en 2 jours. Après quelques semaines, vous pourrez commencer à travailler plus normalement.

Lorsque vous communiquez avec divers membres du personnel technique, demandez-leur combien de temps il vous faudra pour passer de PHP ou Java à Golang. La plupart des réponses durent 1 à 2 semaines, ce qui est également vrai.

Fonctionnalités de concurrence

C'est probablement la fonctionnalité la plus appréciée de GoLang. Il peut tirer pleinement parti des capacités multicœurs. GoLang utilise des goroutines pour obtenir la concurrence et fournit un système de planification de goroutines très élégant qui peut facilement générer des millions de goroutines. L'utilisation de la pile peut également être étendue/rétrécie de manière dynamique, ce qui rend l'utilisation de la mémoire plus intelligente. Ceci est différent des threads Java, qui permettent généralement uniquement la création de milliers de threads.

Compatible avec un grand nombre de périphériques matériels.

Différentes architectures de processeur sont prises en charge, qu'il s'agisse d'un serveur X86 ou d'un périphérique ARM Edge, il peut être directement compilé en code machine et le déploiement est complété par l'ajout d'un fichier.

Un utilisateur de 52PHP a déclaré sur son blog cnblogs : Grâce à une compilation croisée super simple, il suffit de modifier les variables d'environnement. (Il m'a fallu deux jours pour compiler une imagemagick sur la plateforme arm).

Si vous possédez de nombreux appareils Edge, Golang est un bon choix.

Bien sûr, certaines personnes disent que Java et PHP sont également disponibles. Le problème est que vous pouvez également livrer de la nourriture sur un âne. Le problème est la lenteur !

Bon soutien de la communauté.

Sans une prédication experte, les novices n’auront pas de maître pour les guider. Sans partage, l’apprentissage devient encore plus difficile. Golang bénéficie d'un bon soutien communautaire.

Popularité des langages de programmation sur Stack Overflow, le plus grand site Web de questions et réponses techniques au monde :

Le langage go peut-il être utilisé pour écrire lInternet des objets ?

Cité de : Classement des langages de programmation 2021, Auteur : Xiaoxin vous emmène apprendre la programmation

Vous pouvez trouver les informations, vous demandez une question et quelqu'un y répondra pour vous. C'est très important dans le développement.

Aidez les développeurs à accélérer avec un code propre.

« Clean architecture » est un concept proposé par Robert C. Martin (Oncle Bob) en 2012 après avoir résumé l'architecture système existante.

Dans l'article, l'architecture épurée qu'il propose est la suivante :

  • Indépendant du framework. L'architecture ne repose pas sur l'existence d'une bibliothèque logicielle riche en fonctionnalités. Cela vous permet d'utiliser une grande variété de frameworks comme outils.
  • Testable. Les règles métier peuvent être testées sans interface utilisateur, base de données, serveur Web ou tout autre élément externe (tel que des services RPC tiers).
  • Indépendant de l'interface utilisateur. L'interface utilisateur peut être facilement modifiée sans avoir à modifier d'autres parties du système. Par exemple, l'interface utilisateur Web peut être remplacée par une interface console sans qu'il soit nécessaire de modifier les règles métier.
  • Indépendant de la base de données. Vous pouvez remplacer Oracle ou SQL Server par Mongo, BigTable, CouchDB
    ou autre chose. Vos règles métier ne sont pas liées à la base de données.

Indépendant de toute agence externe (couche externe dans l'image ci-dessous). En fait, vos règles métier ne connaissent rien du monde extérieur.

Le langage go peut-il être utilisé pour écrire lInternet des objets ?

L'idée générale dans l'image est que la direction de la dépendance ne peut être que de l'extérieur vers l'intérieur. En d’autres termes, le cercle extérieur dépend du cercle intérieur et le cercle intérieur ne peut pas dépendre de l’extérieur. La dénomination et le formatage des données dans la couche externe ne peuvent pas affecter la couche interne.

Ces règles et conventions simples garantissent que le système est toujours facile à comprendre, facile à développer et facile à entretenir.

Le cas est convaincant

À l'exception du fameux Docker, il est entièrement implémenté avec GO. Kubernetes, le système de gestion d'orchestration de conteneurs le plus populaire du secteur, est entièrement implémenté dans GO. Le Docker Swarm qui a suivi a été entièrement implémenté dans GO. De plus, il existe divers projets célèbres, tels que etcd/consul/flannel, Qiniu Cloud Storage, etc., tous implémentés à l'aide de GO. Certaines personnes disent que la raison pour laquelle le langage GO est célèbre est qu'il a rattrapé l'ère du cloud. Mais pourquoi ne pas le dire autrement ? C’est aussi le langage GO qui favorise le développement du cloud.

En plus des projets cloud, il existe également des entreprises comme Toutiao et UBER, qui ont également utilisé le langage GO pour reconstruire complètement leurs activités.

【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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Apr 02, 2025 pm 05:09 PM

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Apr 02, 2025 pm 12:57 PM

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Comment s'assurer que la concurrence est sûre et efficace lors de la rédaction de journaux multi-processus? Comment s'assurer que la concurrence est sûre et efficace lors de la rédaction de journaux multi-processus? Apr 02, 2025 pm 03:51 PM

Gérez efficacement les problèmes de sécurité de la concurrence dans la rédaction de journaux multiproces. Plusieurs processus écrivent le même fichier journal en même temps. Comment s'assurer que la concurrence est sûre et efficace? C'est un ...

See all articles