ホームページ  >  記事  >  バックエンド開発  >  Go言語はプログラミングに使用できますか?

Go言語はプログラミングに使用できますか?

青灯夜游
青灯夜游オリジナル
2022-12-27 10:30:144333ブラウズ

Go言語はプログラミング可能です。 Go 言語は、Google によって開発された、静的に強く型付けされ、コンパイルされ、ガベージ コレクション機能を備えた並行プログラミング言語です。Go 言語にはさまざまな用途があり、ネットワーク プログラミング、システム プログラミング、並行プログラミング、および分散プログラミングに使用できます。 Go 言語は、サーバー プログラミング言語として、ログの処理、データ パッケージ化、仮想マシン処理、ファイル システム、分散システム、データベース エージェントなどに非常に適しています。また、Web アプリケーション、API アプリケーション、Web アプリケーションなどのネットワーク プログラミングにも使用できます。アプリケーションをダウンロードします。

Go言語はプログラミングに使用できますか?

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

Go 言語 (Golang とも呼ばれます) は、Google によって開発された、静的に強く型付けされ、コンパイルされ、同時実行され、ガベージ コレクションが行われるプログラミング言語です。

Go 言語 (または Golang) は 2007 年に誕生し、2009 年に正式にリリースされました。 Go は非常に若い言語であり、その主な目標は「Python などの動的言語の開発速度と、C/C などのコンパイル言語のパフォーマンスと安全性を組み合わせる」ことです。

Go 言語は、プログラミング言語設計のもう 1 つの試みであり、C 系言語を大幅に改良したもので、基盤となるオペレーティング システムにアクセスできるだけでなく、強力なネットワーク プログラミングと同時プログラミングのサポートも提供します。 Go 言語には多くの用途があり、ネットワーク プログラミング、システム プログラミング、同時プログラミング、分散プログラミングに使用できます。

  • サーバー プログラミング (以前に C または C を使用してこれらの作業を行ったことがある場合) 、Go を使用します。ログ、データ パッケージ化、仮想マシン処理、ファイル システムなどの処理に非常に適しています。

  • 分散システム、データベース エージェント、ミドルウェアなど (Etcd など)。

  • ネットワーク プログラミング。この領域は、Web アプリケーション、API アプリケーション、ダウンロード アプリケーションなど、現在最も広く使用されています。Go の組み込み net/http パッケージには、基本的に通常私たちが使用するネットワーク機能が統合されています。全て実現しました。

Go 言語の開始は、アプリケーションのパフォーマンスを損なうことなくコードの複雑さを軽減することを目的としており、「シンプルなデプロイメント、優れた同時実行性、優れた言語設計、優れた実行パフォーマンス」を備えています。現在、国内の多くのIT企業がプロジェクト開発にGo言語を採用しています。

Docker、Go-Ethereum、Thraform、Kubernetes など、多くの重要なオープンソース プロジェクトは Go 言語を使用して開発されています。

Go 言語を使用している国内外の企業やプロジェクトはどこですか

Go がリリースされた後、多くの企業、特にクラウド コンピューティング企業が Go 言語を使用し始めました。再構築には Go を使用 インフラの多くは Go を使用して直接開発されており、最近人気の Docker も Go を使用して開発されています。

Go 言語を使用して開発されたオープンソース プロジェクトが多数あります。初期の Go 言語オープン ソース プロジェクトでは、Go 言語と従来のプロジェクト (Qt、Sqlite など) との間の C 言語ライブラリ バインディングのみが実装されていましたが、その後の多くのプロジェクトでは、ネイティブ実装に Go 言語が使用されました。このプロセスは他の言語よりも単純です。また、Go 言語を使用した多数のネイティブ開発プロジェクトの出現にも貢献しました。

  • クラウドコンピューティングインフラ分野

    代表的なプロジェクト:docker、kubernetes、etcd、consul、cloudflare CDN、Qiniu Cloud storageなど。

  • 基本ソフトウェア

    代表的なプロジェクト: tidb、influxdb、cockroachdb など。

  • マイクロサービス

    代表的なプロジェクト:go-kit、micro、monzo Bankのtyphon、bilibiliなど

  • インターネットインフラ

    代表的なプロジェクト:イーサリアム、ハイパーレジャーなど

## Go を使用する一部の外国企業 (Google、Docker、Apple、Cloud Foundry、CloudFlare、Couchbase、CoreOS、Dropbox、MongoDB、AWS およびその他の企業など);

Go 開発を使用する国内企業: Alibaba Cloud CDN、Baidu、Xiaomi、Qiniu、PingCAP、Huawei、Kingsoft、Cheetah Mobile、Ele.me などの企業。

Go言語はプログラミングに使用できますか?

Docker

Docker はオペレーティング システム レベルでの仮想化テクノロジであり、それらの間の分離とも呼ばれます。コンテナ。 Docker は、物理サーバー上で 1 つ以上のインスタンスを迅速に実行できます。 lxcをベースとした仮想パッケージングツールによりPAASプラットフォームの構築を実現します。たとえば、CentOS オペレーティング システムを起動し、内部コマンド ラインで命令を実行した後に終了すると、プロセス全体がオペレーティング システム自体と同じくらい効率的になります。

go 言語

Go 言語自体の初期のソース コードは C 言語とアセンブリ言語で書かれていました。 Go 1.5 バージョンからは、完全に Go 言語自体で書かれています。 Go 言語のソースコードは、Go 言語の根本的なスケジューリングを理解する上で非常に参考になるので、Go 言語をより深く理解したい方は一読をお勧めします。

Kubernetes

Google が開発した Docker 上に構築されたコンテナ スケジューリング サービス。ユーザーは Kubernetes クラスタを通じてクラウド コンテナ クラスタを管理できます。

etcd

クラウドで迅速に構成できる、信頼性の高い分散型 KV ストレージ システム。

ビーゴ

Beego は、RESTFul 設計思想を採用した Python ライクな Tornado フレームワークで、Go 言語で書かれた非常に軽量かつスケーラビリティの高い高性能な Web アプリケーション フレームワークです。

martini

モジュール式 Web アプリケーションを迅速に構築するための Web フレームワーク。

codis

優れた国内分散型 Redis ソリューション。

delve

Go 言語の強力なデバッガーは、多くの統合環境やエディターに統合されています。

Facebook

# Facebook もこれを使用しています。このため、Facebook は Github 上にオープン ソース組織 facebookgo も設立しています。Facebook のオープン ソース プロジェクトは、以下にアクセスして表示できます。 , など 有名なものはスムーズアップグレードグレースです。

Tencent

国内大手企業である Tencent は、特に Docker コンテナ化の分野で、今でも果敢に挑戦しています。 Docker ユニット。具体的な実践方法については、

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

を参照してください。 Baidu

Baidu の現在知られている用途は運用と保守側であり、フロントエンド トラフィックのアクセスを担当する Baidu の運用と保守の BFE プロジェクトです。彼らの担当者は 2016 年に何かを共有しました。これをご覧ください。http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend

2 つ目Baidu のメッセージング システムです。同社のモバイルメッセージングシステムのサーバー側の開発と保守を担当します。

JD

JD クラウド メッセージ プッシュ システム、クラウド ストレージ、JD モールはすべて、開発に Go を使用しています。

Xiaomi

Xiaomi の Golang サポートは、オープンソースの運用および保守監視システム (http://open-falcon.com/) にすぎません。

さらに、Xiaomi Interactive Entertainment、Xiaomi Mall、Xiaomi Video、Xiaomi Ecological Chain などのチームはすべて Golang を使用しています。

360

360 も Golang を多用しています。その 1 つは、Github、

、および 360 のプッシュ チームでホストされているオープン ソース ログ検索システム Poseidon です。もそれを使用しており、Golang の公式ブログにもブログ記事を書きました。

Meituan

Meituan バックグラウンド トラフィック サポート プログラム。適用範囲: メイン Web サイトのバックエンド トラフィック (ソート、レコメンデーション、検索など) をサポートし、ロード バランシング、キャッシュ、フォールト トレランス、条件付き配信、統計的操作指標 (QPS、レイテンシー) などの機能を提供します。

Didi

基本的なサービス プラットフォーム。

#金山微看

適用範囲: サービスインターフェース、バックグラウンドプロセスサービス、メッセージシステム、画像システム

総合

総合プッシュシステム。クライアントとの接続を維持するために使用されるプッシュ システムの一部。

。 。 。 。 。

#最後に書いてます
もちろん、技術が開発できるかどうかは、3 つの重要なポイントによって決まります。 (以下の見解は https://www.cnblogs.com/qwangxiao/p/8318894.html から引用しています)

• もっと良いコミュニティ

はありますか? C、C++、Java、Python、JavaScript のエコシステムはすべて非常に豊富で人気があります。特に、Linux コミュニティなど、多くの営利組織が参加しているコミュニティはさらに人気があります。

• 業界標準

はありますか? C、C++、Java にはすべて標準化された組織があります。特に Java は、アーキテクチャの観点から J2EE のようなエンタープライズレベルの標準を開発しました。

• キラー アプリ

は 1 つ以上ありますか?言うまでもなく、C、C、Java のキラー アプリケーションは、プログラミング言語としては不得意な PHP であっても、Linux 時代の最初のキラー ソリューションである LAMP のキー テクノロジーとして開発されました。上記の 3 つの点は非常に重要です。新しいテクノロジがこれら 1 つまたは 2 つを満たしているだけで、非常に優れています。さらに、Java などの一部のテクノロジは、3 つの点をすべて満たしています。したがって、Java の開発は非常に優れています。 。 もちろん、上記 3 つの重要な点に加えて、次のような他の影響要因もあります。

    学習曲線が低いかどうか、また学習曲線が低いかどうかすぐに始められます
  • 。これは非常に重要であり、この時点で C はますます悪化しています。
  • 開発効率を向上させるための優れた開発フレームワークはありますか
  • 。例: Java の Spring フレームワーク、C の STL など。
  • 1 つ以上の巨大テクノロジー企業の支援を受けているかどうか
  • 。例: IBM と Sun は Java と Linux を支えています...
  • 彼らはソフトウェア開発の問題点を解決しましたか
  • 。例: Java は、C と C のメモリ管理の問題を解決します。
  • これらの定規を使用して Go 言語を測定すると、次のことが明確にわかります:

    Go 言語は簡単に始めることができます;
  • Go 言語は、同時プログラミングと低レベルのアプリケーション開発効率の問題点を解決します;
  • Go 言語は、世界クラスのテクノロジー企業である Google によって支援されています;
  • Go 言語のキラー アプリケーションは Docker であり、Docker エコシステムは近年完全に爆発的に成長しました。

つまり、Go 言語の将来は無限です。もちろん、Go は多くの C、C、Java プロジェクトを消費する可能性があります。ただし、Go 言語で使用される主なプロジェクトは、非常に低レベルのプロジェクトでもビジネス層でもなく、中間層のプロジェクトである必要があります。言い換えれば、Go 言語は C や C などの低レベルのプロジェクトを飲み込むことはなく、Java ビジネス層のような高レベルのプロジェクトを飲み込むこともありません。 Go 言語が食い込めるのは、メッセージ キャッシュ ミドルウェア、サービス ディスカバリ、サービス エージェント、制御システム、エージェント、ログ収集などの PaaS 上のプロジェクトでなければなりません。複雑なビジネス シナリオはなく、特別な最下層には到達できません (オペレーティング システムなど)。)、中間プラットフォーム層であるソフトウェア プロジェクトまたはツール。 C と C は下位レベルに移動され、Java は上位ビジネス層に移動されます。

さて、上記の物差しを使って Go 言語のキラー アプリケーションである Docker を測定してみましょう。基本的に同じであることがわかるでしょう。

  • Docker は簡単に始めることができます。

  • Docker は、運用と保守における環境問題とサービス スケジュールの問題を解決します。

  • Docker のエコシステムには大企業が関与しています。グーグルなど。

  • Docker は業界標準の OCI を生成します。

  • Docker のコミュニティとエコシステムでは、Java や Linux と同様の傾向がすでに見られています。

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

以上がGo言語はプログラミングに使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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