-
Go Modules 介紹與基本操作
Module 是存儲在文件樹中的 Go 包的集合,其根目錄有 go.mod 文件。go.mod 文件定義了 Module 的模塊路徑,該路徑也是用于根目錄的導入路徑,以及其依賴項要求,這些依賴項要求是成功構建所需的其他模塊。每個依賴項要求都編寫為模塊路徑和特定的語義版本
-
http 代理 在Go語言這里,實現起來很簡單
代理是網絡中的一項重要的功能,其功能就是代理網絡用戶去取得網絡信息。形象的說:它是網絡信息的中轉站,對于客戶端來說,代理扮演的是服務器的角色,接收請求報文,返回響應報文;對于 web 服務器來說,代理扮演的是客戶端的角色,發送請求報文,接收響應報文。
-
go也能依賴注入?進來細說
需要依賴注入時,Go有什么實現方案?本文詳細介紹了使用google/wire庫實現依賴注入的方法。
-
Golang事件系統Event Bus
本文介紹了事件總線實現。最近在學習開源項目Grafana的代碼,發現作者實現了一個事件總線的機制,在項目里面大量應用,效果也非常好,代碼也比較簡單,介紹給大家看看。
-
什么是圍棋?Golang 編程語言含義解釋
在本文中,您將學習:Go 從哪里來,現在在哪里,為什么我認為你應該學習它,如何在 Windows 10 上安裝和運行它,以及如何用 Go 編寫你的第一個“Hello World”程序。
-
Go 中的數據分析——如何使用 Gota 包
數據分析是過濾、操縱和處理原始數據和數據集以從中獲得洞察力的過程。 Python 和 R 通常是數據分析的首選語言。但是這些天,Go 正為此目的而變得越來越流行。 在本教程中,我們將介紹 Gota(Go 中的數據分析包)及其核心功能和用途。 先決條件 了解 Golang 中的函數式編程。 安裝了 Go 的 Golang IDE(我使用 Goland 和 Go 1.17.6,但您可以使用其他任何版本) 什么是戈塔? Gota 是 Go 編程語言的數據框和數據整理模塊。 Gota 類似于 Pytho…
-
Golang 請求限速、排隊實現
概要 在調用第三方 API 的時候, 基本都有訪問限速的限制條件. 第三方的 API 有多個的時候, 就不太好控制訪問速度, 常常會導致 HTTP 429(Too Many Requests) 然后就會有一段時間的禁止訪問. 為了應對這種限速的情況, 通過一個簡單的請求隊列來控制訪問的速度, 之后基本沒遇到過 HTTP 429 了. 實現思路 首先, 每個請求包裝成一個?RequestParam?的 struct, 其中包含請求的地址,類型,參數以及 response 的 channel. 發送…
-
Golang 并發原理分析
Go語言是為并發而生的語言,Go語言是為數不多的在語言層面實現并發的語言;也正是Go語言的并發特性,吸引了全球無數的開發者。 并發(concurrency)和并行(parallellism) 并發(concurrency):兩個或兩個以上的任務在一段時間內被執行。我們不必care這些任務在某一個時間點是否是同時執行,可能同時執行,也可能不是,我們只關心在一段時間內,哪怕是很短的時間(一秒或者兩秒)是否執行解決了兩個或兩個以上任務。 并行(parallellism):兩個或兩個以上的任務在同一時刻…
-
使用 Go 語言實現漢諾塔(Hanota)算法
我最近重溫了一下《猩球崛起》這部電影。在電影中,凱撒就玩了河內塔游戲。你還有印象嗎?其實獨自一人玩一些游戲是好難的??(譯者不知作者為何這么說??,難道是無聊嘛???),今天我們就用 Golang 來實現一下漢諾塔游戲。 游戲起源 相傳最早發明這個問題的人是法國數學家愛德華·盧卡斯(Edouard Lucas)。 在世界中心的貝拿勒斯(印度北部)圣殿中,有三根寶石針插入了一個黃銅盤中。在印度教主神梵天(Brahma)創世時,將其中一根針上從下到上裝配了 64 個金片,這也就是所謂的漢諾塔。 無論白天黑…
-
Go語言 如何配制 高性能sql.DB 的
有很多教程是關于Go的sql.DB類型和如何使用它來執行SQL數據庫查詢的。但大多數內容都沒有講述SetMaxOpenConns(),?SetMaxIdleConns()?和?SetConnMaxLifetime()方法, 您可以使用它們來配置sql.DB的行為并改變其性能。 在本文我將詳細解釋這些設置的作用,并說明它們所能產生的(積極和消極)影響。 開放和空閑連接 一個sql.DB對象就是一個數據庫連接池,它包含“正在用”和“空閑的”連接。一個正在用的連接指的是,你正用它來執行數據庫任務,例如…