Rumah pembangunan bahagian belakang Golang 分享十个优秀的 Go 类库

分享十个优秀的 Go 类库

Jun 16, 2020 pm 05:46 PM
go golang

分享十个优秀的 Go 类库

1. Golang-Set

Go 有数组,切片,映射,但是它没有集合。您可以使用布尔映射来模拟一个集合,但是最好拥有一个具有正确操作和语义的实际数据类型。

这是 golang-set 的地址

2. Color

让我们继续 color 的介绍。在编写命令程序时,使用颜色突出重要的消息和区分错误,成功和警告是非常有用的。

color 包提供了一种简单的方法来为程序添加一些颜色(看到我做了什么吗?) 。它使用 ANSII 转义码,也支持 Windows!

4. Gen

gen 工具会为您生成代码——特别是类型识别代码,它试图弥补 Go 中没有模板或泛型的缺陷

您可以使用一个特殊的注释注释您的类型,然后 gen 会生成您的项目中包含的源文件。

5. Gorm

Go 以其简约的风格而闻名。数据库编程也不例外。Go 大多数流行的 DB 库都是非常底层的。Gorm 将对象——关系映射引入到以下特性中:

  • 关联 (Has One, Has Many, Belongs To, Many To Many, Polymorphism)

  • 回调 (Before/After Create/Save/Update/Delete/Find)

  • 预加载 (预先加载)

  • 事务

  • 复合主键

  • SQL 构建器

  • 自动迁移

  • 日志

  • 可扩展, 基于 GORM 回调编写插件

但是这并不能涵盖所有内容。

如果你之前是使用 Python 开发,请不要指望 SQLAlchemy。

更多的高级用法,你需要去看底层。

6. Goose

使用关系数据库时最重要的任务之一是管理模式。

在一些公司中,修改数据库模式被认为是一种「可怕」的更改。goose 包帮助你更改模式,甚至在需要时进行数据迁移。 你可以随意的 goose up 和 goose down 。不过要注意你的数据,确保它不会丢失或损坏。

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教程

Atas ialah kandungan terperinci 分享十个优秀的 Go 类库. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membaca dan menulis fail dengan selamat menggunakan Golang? Bagaimana untuk membaca dan menulis fail dengan selamat menggunakan Golang? Jun 06, 2024 pm 05:14 PM

Membaca dan menulis fail dengan selamat dalam Go adalah penting. Garis panduan termasuk: Menyemak kebenaran fail Menutup fail menggunakan tangguh Mengesahkan laluan fail Menggunakan tamat masa konteks Mengikuti garis panduan ini memastikan keselamatan data anda dan keteguhan aplikasi anda.

Bagaimana untuk mengkonfigurasi kolam sambungan untuk sambungan pangkalan data Golang? Bagaimana untuk mengkonfigurasi kolam sambungan untuk sambungan pangkalan data Golang? Jun 06, 2024 am 11:21 AM

Bagaimana untuk mengkonfigurasi pengumpulan sambungan untuk sambungan pangkalan data Go? Gunakan jenis DB dalam pakej pangkalan data/sql untuk membuat sambungan pangkalan data untuk mengawal bilangan maksimum sambungan serentak;

Bagaimana untuk menggunakan gomega untuk penegasan dalam ujian unit Golang? Bagaimana untuk menggunakan gomega untuk penegasan dalam ujian unit Golang? Jun 05, 2024 pm 10:48 PM

Cara menggunakan Gomega untuk penegasan dalam ujian unit Golang Dalam ujian unit Golang, Gomega ialah perpustakaan penegasan yang popular dan berkuasa yang menyediakan kaedah penegasan yang kaya supaya pembangun boleh mengesahkan keputusan ujian dengan mudah. Pasang Gomegagoget-ugithub.com/onsi/gomega Menggunakan Gomega untuk penegasan Berikut ialah beberapa contoh biasa menggunakan Gomega untuk penegasan: 1. Import penegasan kesamaan "github.com/onsi/gomega" funcTest_MyFunction(t*testing.T){

Rangka Kerja Golang lwn Rangka Kerja Go: Perbandingan Seni Bina Dalaman dan Ciri Luaran Rangka Kerja Golang lwn Rangka Kerja Go: Perbandingan Seni Bina Dalaman dan Ciri Luaran Jun 06, 2024 pm 12:37 PM

Perbezaan antara rangka kerja GoLang dan rangka kerja Go ditunjukkan dalam seni bina dalaman dan ciri luaran. Rangka kerja GoLang adalah berdasarkan perpustakaan standard Go dan meluaskan fungsinya, manakala rangka kerja Go terdiri daripada perpustakaan bebas untuk mencapai tujuan tertentu. Rangka kerja GoLang lebih fleksibel dan rangka kerja Go lebih mudah digunakan. Rangka kerja GoLang mempunyai sedikit kelebihan dalam prestasi dan rangka kerja Go lebih berskala. Kes: gin-gonic (rangka Go) digunakan untuk membina REST API, manakala Echo (rangka kerja GoLang) digunakan untuk membina aplikasi web.

Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Jun 06, 2024 am 11:24 AM

Data JSON boleh disimpan ke dalam pangkalan data MySQL dengan menggunakan perpustakaan gjson atau fungsi json.Unmarshal. Pustaka gjson menyediakan kaedah kemudahan untuk menghuraikan medan JSON dan fungsi json.Unmarshal memerlukan penuding jenis sasaran kepada data JSON unmarshal. Kedua-dua kaedah memerlukan penyediaan pernyataan SQL dan melaksanakan operasi sisipan untuk mengekalkan data ke dalam pangkalan data.

Apakah amalan terbaik untuk pengendalian ralat dalam rangka kerja Golang? Apakah amalan terbaik untuk pengendalian ralat dalam rangka kerja Golang? Jun 05, 2024 pm 10:39 PM

Amalan terbaik: Cipta ralat tersuai menggunakan jenis ralat yang ditakrifkan dengan baik (pakej ralat) Sediakan lebih banyak butiran Log ralat dengan sewajarnya Sebarkan ralat dengan betul dan elakkan menyembunyikan atau menyekat ralat Balut seperti yang diperlukan untuk menambah konteks

Bagaimana untuk mencari subrentetan pertama dipadankan dengan ungkapan biasa Golang? Bagaimana untuk mencari subrentetan pertama dipadankan dengan ungkapan biasa Golang? Jun 06, 2024 am 10:51 AM

Fungsi FindStringSubmatch mencari subrentetan pertama dipadankan dengan ungkapan biasa: fungsi mengembalikan hirisan yang mengandungi subrentetan yang sepadan, dengan elemen pertama ialah keseluruhan rentetan dipadankan dan elemen berikutnya ialah subrentetan individu. Contoh kod: regexp.FindStringSubmatch(teks,corak) mengembalikan sekeping subrentetan yang sepadan. Kes praktikal: Ia boleh digunakan untuk memadankan nama domain dalam alamat e-mel, contohnya: e-mel:="user@example.com", pattern:=@([^\s]+)$ untuk mendapatkan padanan nama domain [1].

Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Apr 02, 2025 am 09:12 AM

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

See all articles