# Twtxt is an open, distributed microblogging platform that # uses human-readable text files, common transport protocols, # and free software. # # Learn more about twtxt at https://github.com/buckket/twtxt # # This is an automated Yarn.social feed running feeds v0.1.0@72e53a9 # Learn more about Yarn.social at https://yarn.social # # nick = yue-fang-readfog-go # url = https://feeds.twtxt.net/yue-fang-readfog-go/twtxt.txt # type = rss # source = https://www.readfog.com/t/go/feed # avatar = https://feeds.twtxt.net/yue-fang-readfog-go/avatar.png#vb4wqhdj5rsuracksspo5ewnd47jagkxwt5c4n4hh67ohxqtio5a # description = # updated_at = 2023-12-01T04:25:03Z # 2023-11-24T02:45:49Z **Go 語言項目命名規範(2023 年最新版)**
在 Go 語言中,良好的命名規範是構建清晰、可讀和可維護代碼的關鍵。本指南旨在幫助你制定一致的命名規範,使你的 Go 項目更加整潔和易於理解。在實際項目開發中,每個項目組的成員開發習慣不一樣,可能會有自己的一些規範,所以這個規範僅供參考。第一章:包命名規範在 Go 中,包是代碼組織的基本單元。包名應該簡短而具有描述性。使用小寫字母: 包名應該使用小寫字母,不要使用下劃線或混合大小寫。 ⌘ [Read more](https://www.readfog.com/a/1719421133697159168) 2023-11-24T10:29:30Z **Go 排序算法探祕:打造通用 qsort 函數**
\*概述快速排序(QuickSort)是一種經典的排序算法,其高效性和廣泛應用使之成爲計算機科學領域的瑰寶。本文將介紹如何在 Go 語言中封裝快速排序函數,使其更易用、更具通用性,並通過示例和代碼解釋,讓讀者深入瞭解其原理和實現。1. 快速排序算法簡介1.1 算法原理快速排序是一種分治策略的排序算法,基本思想是通過選定一個基準元素。將序列分爲兩部分,小於基準的元素放在左邊,大於基準的元素放在右邊,然 ⌘ [Read more](https://www.readfog.com/a/1719450305669730304) 2023-11-24T10:58:16Z **從 Discord 的做法中學習 — 使用 Golang 進行請求合併**
正如你可能之前看到的,Discord 去年發佈了一篇有價值的文章,討論了他們成功存儲了數萬億條消息。雖然有很多關於這篇文章的 YouTube 視頻和文章,但我認爲這篇文章中一個名爲 “數據服務爲數據服務” 的部分沒有得到足夠的關注。在這篇文章中,我們將討論 Discord 對數據服務的方法,並探討如何利用 Golang 的併發特性來減少特定情況下的數據庫負載。數據服務拯救熱分區如你所知,消息和頻道 ⌘ [Read more](https://www.readfog.com/a/1719452115536023552) 2023-11-27T03:57:03Z **Go 打造高效的聊天系統**
\*概述構建一個高效的 Go 語言聊天服務器是一個具有挑戰性而又令人興奮的任務。本文將通過示例代碼和註釋,逐步實現一個功能強大的 Go 語言聊天服務器。通過清晰的項目結構和合理的邏輯劃分,將能夠理解服務器的設計和實現。1. 項目規劃與結構設計1.1 項目規劃在開始構建聊天服務器之前,需要進行項目規劃。明確通信協議、確定服務器功能和定義用戶管理方式是關鍵步驟。1.2 結構設計設計一個清晰的結構是確保項 ⌘ [Read more](https://www.readfog.com/a/1719697406143074304) 2023-11-27T03:56:13Z **Go 語言 CSP 編程實戰:通道通信技術**
\*概述通信順序進程(Communicating Sequential Processes,CSP)是一種併發編程的形式化理論,由計算機科學家 Tony Hoare 於 1978 年提出。在 Go 語言中,CSP 被廣泛應用,通過通道(Channel)實現了簡單且強大的併發模型。本文將介紹 Go 語言中的 CSP 概念,通過詳細的示例代碼和註釋,理解 CSP 的運作原理和在 Go 中的實現。1. C ⌘ [Read more](https://www.readfog.com/a/1719697353332592640) 2023-11-27T03:59:12Z **Go 語言讀取 YAML 配置文件教程**
在 Go 語言項目中,處理配置文件是一項常見的任務。YAML 是一種易讀易寫的配置文件格式,本教程將指導你如何在 Go 中讀取和解析 YAML 文件。我們將按照章節的形式逐步介紹相關的概念和示例代碼。第一章:引入依賴--------在開始之前,我們需要引入一個 YAML 解析的第三方庫。推薦使用 gopkg.in/yaml.v2。go get gopkg.in/yaml.v2第二章:創建 YAML ⌘ [Read more](https://www.readfog.com/a/1719697540585197568) 2023-11-28T02:45:49Z **Go: select 實戰指南:協程切換技術**
概述Go 語言的併發編程模型以其簡潔而強大的 goroutine 爲特色。而 select 語句則是在多個通信操作中選擇一個執行的關鍵工具。本文將討論如何使用 select 切換協程,通過清晰的示例代碼,幫助讀者掌握這一重要的併發編程技巧。select 語句的基本結構package mainimport ( "fmt" "time")func main() { ch1 := make(chan s ⌘ [Read more](https://www.readfog.com/a/1719783521058394112) 2023-11-28T10:45:35Z **一文搞懂 Go gRPC 服務 Handler 單元測試**
在雲原生時代和微服務架構背景下,HTTP 和 RPC 協議成爲服務間通信和與客戶端交互的兩種主要方式。對於 Go 語言而言,標準庫提供了 net/http/httptest 包,爲開發人員提供了便捷的方式來構建服務端 HTTP Handler 單元測試的測試腳手架代碼,而無需真正建立 HTTP 服務器,讓開發人員可以聚焦於對 Handler 業務邏輯的測試。比如下面這個示例:// grpc-tes ⌘ [Read more](https://www.readfog.com/a/1719813705593622528) 2023-11-28T10:49:40Z **Go 淺析主流日誌庫:從設計層學習如何集成日誌輪轉與切割功能**
前言在現有的日誌庫中,包括 go 1.21.0 引入的 slog 日誌庫,它們通常都支持對日誌文件進行輪轉與切割,只不過這些功能並不直接被內置,而是需要我們主動配置來啓用。本文將探討幾個熱門的日誌庫如 logrus、zap 和官網的 slog,我將分析這些庫的的關鍵設計元素,探討它們是如何支持日誌輪轉與切割功能的配置。 淺析 logrus、zap 和 slog 的設計在對 logrus、zap 和 ⌘ [Read more](https://www.readfog.com/a/1719813962021834752) 2023-11-29T03:04:52Z **一篇文章帶你瞭解 Go 語言基礎之併發(channel)**
前言--Hi,大家好,我是碼農,星期八,本篇繼續帶來 Go 語言併發基礎,channel 如何使用。看看 Go 協程如何配合 channel。快來上車叭。爲什麼需要 channel-------------channel 在 Go 中,也叫做管道,是用來多線程之間共享數據的。通常情況下,在 Go 中共享數據用的也是channel,但是在 Go 有兩種共享數據方式。共享內存實現通訊。 通過管道 ⌘ [Read more](https://www.readfog.com/a/1719875316900532224) 2023-12-01T04:06:50Z **Go 語言中的反射機制**
在 Go 語言的衆多高級特性中,反射(Reflection)是一個強大且複雜的概念。它使得程序能夠在運行時檢查、修改其自身結構。反射在處理接口和類型斷言、開發通用功能或者設計框架時尤爲重要。本文將深入探索 Go 語言中的反射機制,通過具體的示例展示如何使用 reflect 包,讓你能夠在 Go 項目中有效地利用這一強大的工具。Go 反射基礎-------反射的概念反射是指計算機程序在運行時(run ⌘ [Read more](https://www.readfog.com/a/1720060409520689152) 2023-12-01T04:05:25Z **使用 Go 語言創建自己的密碼加密工具**
Go 語言藉助它的簡單性和強大的標準庫,實現一個自己的密碼加密工具非常簡單。在本篇文章中,我們將會結合代碼示例深入探討如何使用 Go 語言的 crypto 包來實現自己的加密工具。首先,我們需要 import 必要的包:package mainimport (    "crypto/aes"    "crypto/cipher"    "crypto/rand"    "fmt"    "io") ⌘ [Read more](https://www.readfog.com/a/1720060320200888320) 2023-12-01T04:17:00Z **Gin 如何實現跨域**
什麼叫做跨域    "跨域" 是一個網絡安全的概念,起源於瀏覽器的同源策略。同源策略是一種約定,它是由網景(Netscape)公司提出的一個重要的安全策略。所謂同源是指 "協議 + 域名 + 端口號" 三者相同,只要不同時,就算是不同源。    換句話說,"跨域" 指的是從一個域名的網頁去請求另一個域名的資源。例如,"http://website1.com" 的網頁通過 Ajax 獲取 "http ⌘ [Read more](https://www.readfog.com/a/1720061049039851520) 2023-12-01T04:16:15Z **TCP 基礎詳解:Telnet 迴音服務器搭建**
\*概述Telnet 迴音服務器是一個簡單而實用的網絡應用,通過 Telnet 協議連接,用戶輸入什麼,服務器就回顯什麼。本文將介紹如何使用 Go 語言創建一個 Telnet 迴音服務器,通過完整的示例代碼和詳細註釋,便於理解 TCP 服務器的基本結構和實現。1. TCP 服務器基礎TCP 協議簡介package mainimport ("fmt""net")func main() { liste ⌘ [Read more](https://www.readfog.com/a/1720061001655750656) 2023-12-01T04:14:45Z **無縫集成 GORM 與 Go Web 框架**
探索 GORM 與流行的 Go Web 框架之間的和諧集成,以實現高效的數據管理----------------------------------------高效的數據管理是每個成功的 Web 應用程序的基礎。GORM,多才多藝的 Go 對象關係映射庫,與流行的 Go Web 框架非常搭配,提供了無縫集成,簡化了數據交互。本指南將帶您探索 GORM 與諸如 Gin、Echo 和 Beego 等 ⌘ [Read more](https://www.readfog.com/a/1720060906688319488) 2023-12-01T04:21:33Z **Go 工具鏈詳解之升級版本不用愁的 go tool fix**
go tool fix 作用go tool fix 是 Go 工具鏈中的一個命令,作用是把指定 Go 程序代碼包中的的所有舊版本代碼修正爲新版本的代碼(這裏所說的版本是 Golang 的版本)。升級 Go 版本之後,使用這個命令可以自動對程序進行必要的更改。Golang 的演進過程中,對一些函數和標準庫進行改進是難免的,改進過程中有可能會出現兼容問題,一旦出現了兼容問題,從舊版本升級到新版本的代價 ⌘ [Read more](https://www.readfog.com/a/1720061335086141440) 2023-12-01T04:21:09Z **Gorm 中的遷移指南**
在應用程序開發的不斷變化的景觀中,數據庫模式更改是不可避免的。GORM,強大的 Go 對象關係映射庫,通過遷移提供了一種無縫的解決方案來管理這些變化。本文將作爲您全面的指南,幫助您掌握使用 GORM 進行數據庫遷移和模式管理。我們將深入探討自動遷移、創建和應用遷移,以及在您的 Go 項目中優雅處理不斷髮展的模式需求的策略。GORM 中的自動遷移-----------自動遷移是一個重要的改進,確保您 ⌘ [Read more](https://www.readfog.com/a/1720061309914025984) 2023-12-01T04:21:08Z **go-mongox:簡單高效,讓文檔操作和 bson 數據構造更流暢**
大家好,我是 陳明勇,一個熱愛技術,喜歡鑽研技術的程序員。前言在 Go 語言中使用 MongoDB 官方框架進行集合操作時,深深感到構建 bson 數據是一件非常繁瑣的工作。字段、逗號,括號等符號的排列,讓我感覺彷彿是在進行一場拼圖遊戲。因此我在想,有沒有一個能讓我絲滑,高效操作 MongoDB 的第三方框架呢,遺憾的是,並沒有找到符合我預期的框架,索性我就自己動手開發了一個,這就是 go-mon ⌘ [Read more](https://www.readfog.com/a/1720061309189459968) 2023-12-01T04:18:17Z **Go 反射終極指南:從基礎到高級全方位解析**
在本文中,我們將全面深入地探討 Go 語言的反射機制。從反射的基礎概念、爲什麼需要反射,到如何在 Go 中實現反射,以及在高級編程場景如泛型編程和插件架構中的應用,本文爲您提供一站式的學習指南。一、簡介反射是一種讓程序在運行時自省(introspect)和修改自身結構和行爲的機制。雖然這聽起來有點像 “自我觀察”,但實際上,反射在許多現代編程語言中都是一個非常強大和重要的工具。Go 語言也不例 ⌘ [Read more](https://www.readfog.com/a/1720061129904984064) 2023-12-01T04:17:28Z **17 個開源的 Go 語言博客和 CMS 解決方案**
Go 語言,也稱爲 Golang,是一種爲構建高效、可靠和可擴展軟件而設計的開源編程語言。它於 2007 年在 Google 開發,現在廣泛用於開發 Web 應用程序、網絡工具和系統軟件。爲什麼使用基於 Go 的 CMS 解決方案?----------------------這些優勢使 Go 成爲開發可擴展、高性能應用程序的熱門選擇。在使用 Go 構建基於 Web 的解決方案時,其速度是其中一個主 ⌘ [Read more](https://www.readfog.com/a/1720061078237450240)