ホームページ  >  記事  >  バックエンド開発  >  Go 言語を使用してモノのインターネットを作成できますか?

Go 言語を使用してモノのインターネットを作成できますか?

青灯夜游
青灯夜游オリジナル
2022-12-28 16:46:445397ブラウズ

と書くことができます。モノのインターネットの分野では、Golang を使用して数百万台のデバイスに効率的にアクセスして管理し、Golang のさまざまな最先端テクノロジーを使用してリアルタイムでデータを分析し、データ レポートを作成できます。モノのインターネット プラットフォームの開発に Golang を使用する理由: 1. Go の 3 人の作者は非常に有能である; 2. Go のパフォーマンスは C/C に次ぐものである; 3. 開始は非常に速く、ほとんどのプログラマーは1 ~ 2 週間で開始できる; 4. 優れた同時実行特性がある; 5. 多数のハードウェア デバイスと互換性がある; 6. 優れたコミュニティ サポートがある; 7. 開発者がクリーンなコードで高速化できる。

Go 言語を使用してモノのインターネットを作成できますか?

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

予算が比較的少ない場合は、最初に Golang の使用を検討するとよいでしょう。 Golang の同時実行機能と優れたパフォーマンスにより、Java や Python とは異なり、既存のハードウェアを最大限に活用できます。Java や Python では、ある程度の無駄が発生し、より多くの費用が必要になります。

モノのインターネットの分野では、Golang を使用して数百万のデバイスに効率的にアクセスし、管理できます。また、Golang のさまざまな最先端テクノロジーを使用して、リアルタイムでデータを分析し、データ レポートを作成します。

ThingsPanel IoT システムの開発に Golang を選択した理由は次のとおりです:

創設者

3 人の著者彼らは、ロブ・パイク、ケン・トンプソン、ロバート・グリーズマーです。

ロブ・パイク: ベル研究所の Unix チームおよび Plan 9 オペレーティング システム プロジェクトのメンバーでした。彼は Thompson と長年協力し、広く使用されている UTF-8 文字エンコーディングを共同作成しました。

Ken Thompson: 主に B 言語と C 言語の作者であり、Unix の父です。 1983 年チューリング賞、1998 年国家技術勲章を受賞。彼とデニス・リッチーは Unix のオリジナルの作成者です。トンプソンは、後に C 言語から派生した B プログラミング言語も発明しました。

Robert Griesemer: Go を開発する前は、Google V8、Chubby、HotSpot JVM に大きく貢献していました。

パフォーマンスは C/C に次ぐ

GoLang は、マシンコードにコンパイルできるコンパイル言語であり、コンパイルされたバイナリ ファイルです追加の依存関係なしでターゲット マシンに直接デプロイできます。インタープリタ型言語よりもパフォーマンスが優れています。

下の写真はテストです、Golangの速度は依然として強力であるようです。

Go 言語を使用してモノのインターネットを作成できますか?

共通言語のパフォーマンス比較 (画像作成者: 農業はしたくない)

もしあればより高い要件では、多くの強力な C ツール ライブラリを使用できるように、Go プログラムに C コードを埋め込むこともできます。

#開始は非常に早く、ほとんどのプログラマーは 1 ~ 2 週間で開始できます。

PHP プログラマーが Golang に切り替えると、2 日以内にバグの修正を開始できます。数週間後には、より普通に仕事ができるようになります。

さまざまな技術スタッフとコミュニケーションをとるときに、PHP または Java から Golang に切り替えるのにどれくらい時間がかかるかを尋ねると、ほとんどの答えは 1 ~ 2 週間であり、これも事実です。

同時実行機能

これはおそらく GoLang で最も評価されている機能です。マルチコア機能を最大限に活用できます。 GoLang はゴルーチンを使用して同時実行性を実現し、数百万のゴルーチンを簡単に生成できる非常にエレガントなゴルーチン スケジューラ システムを提供します。スタックの使用量を動的に拡張/縮小することもできるため、メモリの使用量がよりスマートになります。これは、通常、数千のスレッドの作成しか許可されない Java スレッドとは異なります。

#多数のハードウェア デバイスと互換性があります。

さまざまな CPU アーキテクチャをサポートしており、X86 サーバーでも ARM エッジデバイスでも、マシンコードに直接コンパイルでき、ファイルを放り込むだけでデプロイが完了します。

ある 52PHP ユーザーは、cnblogs ブログで次のように述べています。非常に単純なクロスコンパイルを使用すると、環境変数を変更するだけで済みます。 (imagemagick をアーム プラットフォームにコンパイルするのに 2 日かかりました)。

多数のエッジ デバイスがある場合は、Golang が適しています。

もちろん Java や PHP も使えるという人もいますが、問題はロバに乗りながら食料の配達もできるということですが、問題はその遅さです。

優れたコミュニティサポート。

専門家の説教がなければ、初心者は自分を導くマスターを得ることができません。共有しなければ、学習はさらに困難になります。 Golang には優れたコミュニティ サポートがあります。

世界最大の技術的な質問と回答の Web サイトである Stack Overflow でのプログラミング言語の人気:


Go 言語を使用してモノのインターネットを作成できますか?#引用元: 2021 プログラミング言語ランキング、著者: Xiaoxinプログラミングを学ぶことができます。

情報を調べたり、質問したりすると、誰かが答えてくれます。これは開発において非常に重要です。

クリーンなコードで開発者のスピードアップを支援します。 「クリーン アーキテクチャ」は、ロバート C. マーティン (ボブおじさん) (ロバート C. マーティンについて、ロバート C. マーティンの著作 (16)) が 2012 年に既存のシステム アーキテクチャを要約したときに提案した概念です。

記事の中で、彼が提案したクリーンなアーキテクチャは次のようなものです:

  • フレームワークから独立しています。このアーキテクチャは、機能豊富なソフトウェア ライブラリの存在に依存しません。これにより、さまざまなフレームワークをツールとして使用できるようになります。
  • テスト可能。ビジネス ルールは、UI、データベース、Web サーバー、またはその他の外部要素 (サードパーティの RPC サービスなど) を使用せずにテストできます。
  • ユーザー インターフェイスから独立しています。ユーザー インターフェイスは、システムの他の部分を変更することなく簡単に変更できます。たとえば、ビジネス ルールを変更することなく、Web ユーザー インターフェイスをコンソール インターフェイスに置き換えることができます。
  • データベースから独立しています。 Oracle または SQL Server を Mongo、BigTable、CouchDB
    などと交換できます。ビジネス ルールはデータベースにバインドされません。

外部機関からは独立しています (下の画像の外側のレイヤー)。実際、ビジネス ルールは外の世界については何も知りません。

Go 言語を使用してモノのインターネットを作成できますか?

#図の一般的な考え方は、依存の方向は外部から内部のみであるということです。言い換えれば、外側の円は内側の円に依存し、内側の円は外側に依存することはできません。外側の層の名前付けとデータの書式設定は、内側の層に影響を与えることはできません。

これらの単純なルールと規則により、システムは常に理解しやすく、開発しやすく、保守しやすくなります。

事例は説得力があります

有名なDockerに加えて、完全にGOで実装されています。業界で最も人気のあるコンテナ オーケストレーション管理システムである Kubernetes は、GO に完全に実装されています。その後の Docker Swarm は完全に GO に実装されました。さらに、etcd/consul/flannel、Qiniu Cloud Storage など、さまざまな有名なプロジェクトがあり、すべて GO を使用して実装されています。 GO言語が有名になったのはクラウド時代に追いついたからだという人もいます。しかし、なぜ別の言い方をしないのでしょうか?クラウドの開発を促進する GO 言語でもあります。

クラウド プロジェクトに加えて、Toutiao や UBER のような企業も GO 言語を使用してビジネスを完全に再構築しています。

【関連する推奨事項: Go ビデオ チュートリアル プログラミング教育

以上がGo 言語を使用してモノのインターネットを作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。