ホームページ > バックエンド開発 > Golang > 10 個の優れた Go ライブラリを共有する

10 個の優れた Go ライブラリを共有する

Guanhui
リリース: 2020-06-16 17:47:57
転載
4332 人が閲覧しました

10 個の優れた Go ライブラリを共有する

1. Golang-Set

Go には配列、スライス、マップがありますが、セットはありません。ブール マップを使用してコレクションをシミュレートできますが、正しい操作とセマンティクスを備えた実際のデータ型を使用することをお勧めします。

This is the address of golang-set

2. Color

色の紹介を続けましょう。コマンド プログラムを作成する場合、色を使用して重要なメッセージを強調表示し、エラー、成功、警告を区別すると非常に便利です。

color パッケージは、プログラムに色を追加する簡単な方法を提供します (私がやったことを見てください)。 ANSII エスケープ コードを使用し、Windows もサポートしています。

4. Gen

gen ツールはコード、具体的には Go のテンプレートやジェネリックの不足を補おうとする型認識コードを生成します

特別な注釈を使用して型に注釈を付けることができ、gen はプロジェクトに含まれるソース ファイルを生成します。

5. Gorm

Go は、そのミニマリスト スタイルで知られています。データベースプログラミングも例外ではありません。 Go 用の一般的な DB ライブラリのほとんどは非常に低レベルです。 Gorm は、オブジェクト リレーショナル マッピングを次の機能に導入します。

  • 関連付け (1 つを持つ、多数を持つ、属する、多対多、ポリモーフィズム)

  • コールバック (作成/保存/更新/削除/検索の前/後)

  • プリロード (プリロード)

  • トランザクション

  • 複合主キー

  • #SQL ビルダー

  • ##自動移行
  • ##ログ
  • 拡張可能、GORM コールバックに基づいてプラグインを作成
  • ただし、これですべてがカバーされるわけではありません。
以前に Python で開発したことがある場合は、SQLAlchemy を当てにしないでください。

より高度な使用法については、最下層を確認する必要があります。

6. グース

リレーショナル データベースを使用する場合の最も重要なタスクの 1 つは、スキーマの管理です。

一部の企業では、データベース スキーマの変更は「ひどい」変更とみなされます。 Goose パッケージは、スキーマを変更したり、必要に応じてデータ移行を実行したりするのに役立ちます。

グースアップ

グースダウンを自由に行うことができます。ただし、データが失われたり破損したりしないように、常に注意してください。 Goose は、スキーマをバージョン管理し、各スキーマに対応する移行ファイルを使用することによって機能します。移行ファイルでは SQL コマンドまたは Go コマンドを使用できます。新しいテーブルを追加する SQL 移行ファイルの例を次に示します:

8.Ginkgo

Ginkgo は、BDD (動作駆動開発) テスト フレームワークです。これにより、英語に似た構文を使用してテストを作成でき、技術に詳しくない人でもテスト (および出力) を調べて、ビジネス要件を満たしているかどうかを確認できます。

開発者の中には、このスタイルのテスト仕様を好む人もいます。 Go の組み込みテスト パッケージと統合されており、Gomega と組み合わせてよく使用されます。

9. Etcd

Etcd は、信頼性の高い分散型キー/値ストアです。サーバーは Go で実装されており、Go クライアントは gRPC 経由でサーバーと対話します。

これは次の点に重点を置いています:

シンプルさ: 明確に定義されたユーザー向け API (gRPC)。
  • セキュリティ:オプションのクライアント証明書認証による自動 TLS。
  • 高速: ベンチマーク 10,000 書き込み/秒。
  • 信頼性: 合理的な割り当てには Raft を使用します。
  • 10. NSQ

NSQ は優れた分散キューです。私はこれを大規模な分散システムの主要コンポーネントとして使用することに成功しました。その機能の一部を次に示します。

分散トポロジをサポートし、SPOF はサポートしません。
  • 水平方向にスケーラブル (エージェントは不要で、より多くのノードをシームレスにクラスターに追加できます)。
  • 低レイテンシーのプッシュベースのメッセージング (パフォーマンス)。
  • 負荷分散とマルチキャスト メッセージ ルーティング方法を組み合わせたもの。
  • ストリーミング (高スループット) ワークロードと作業指向 (低スループット) ワークロードの両方で Excel を使用します。
  • 主にメモリ内に保存されます (最高水準点を超えるメッセージはディスク上に透過的に保持されます)。
  • コンシューマーがプロデューサーを見つけるためのランタイム検出サービス (nsqlookupd)。
  • トランスポート層セキュリティ (TLS)。
  • データ形式の検出。
  • 依存関係がほとんどなく (デプロイが簡単)、合理的で制限されたデフォルト構成。
  • 単純な TCP プロトコルは、クライアント ライブラリ内のあらゆる言語をサポートします。
  • 統計、管理操作、プロデューサー用の HTTP インターフェイス (クライアント ライブラリを公開する必要はありません)。
  • statsd と統合して、リアルタイム検出を実現します。
  • 堅牢なクラスター管理インターフェイス (nsqadmin)。
  • 推奨チュートリアル: 「
  • Go チュートリアル

以上が10 個の優れた Go ライブラリを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート