Searching We.Love.Privacy.Club

Twts matching #go
Sort by: Newest, Oldest, Most Relevant

Go 信號 - 守護進程開發爬坑指南
*一、信號 (signal) 處理信號是 Linux 系統下進程間通信的一種限制式異步通知機制。一個信號可以傳遞一個事件通知給一個進程, 代表一個異步事件。Go 語言內置了對信號的支持, 通過 os/signal 包可以實現 Go 程序對信號的處理。1.1 什麼是信號信號 (Signal) 是 Linux 系統下進程間通信的一種方式。當某個事件發生時, 內核會通知進程一個信號。進程接收到信號後, ⌘ Read more

⤋ Read More

Go 一文帶你喫透 HTTP 客戶端!
*1. HTTP 請求簡介HTTP(Hypertext Transfer Protocol) 是構建 web 應用通信的基石。HTTP 工作於客戶端 - 服務端架構上。HTTP 客戶端發起請求, 服務器接收請求並返回響應。HTTP 請求主要由請求行、請求頭、請求體組成請求行 GET /search?name=Golang HTTP/1.1請求頭部 Host: www.baidu ⌘ Read more

⤋ Read More

Go 定時器:Timer 和 Ticker
前言在日常開發中,我們可能會遇到需要延遲執行或週期性地執行一些任務。這個時候就需要用到 Go 語言中的定時器。在 Go 語言中,定時器類型有兩種:time.Timer 一次性定時器和 time.Ticker 週期性定時器。本文將會對這兩種定時器類型進行介紹。準備好了嗎?準備一杯你最喜歡的咖啡或茶,隨着本文一探究竟吧。Timer:一次性定時器Timer 是一個一次性的定時器,用於在未來的某一時刻執行 ⌘ Read more

⤋ Read More

千萬級高性能長連接 Go 服務架構實踐
作者 | glstr導讀 introduction移動互聯網時代,長連接服務成爲了提升應用實時性和互動性的基礎服務。本文主要介紹了百度系內基於 golang 實現的統一長連接服務。主要從統一長連接功能實現和性能優化等角度,描述了統一長連接服務在設計、開發和維護過程中面臨的問題和挑戰,重點介紹瞭解決相關問題和挑戰的解決方案和實踐經驗。01摘要移動互聯網時代,用戶對服務的實時性、互動性有了更高的要求, ⌘ Read more

⤋ Read More

Go 語言實戰:構建強大的延遲任務隊列
01 介紹延遲隊列是一種數據結構,用於處理需要在未來某個特定時間執行的任務。這些任務被添加到隊列中,並且指定了一個執行時間,只有到達指定的時間點時才能從隊列中取出並執行。在實際應用中,延遲隊列可以用於處理各種需要延遲處理的任務,例如發送郵件提醒、訂單自動取消、對超時任務的處理等。由於任務的執行是在未來的某個時間點,因此這些任務不會立即執行,而是存儲在隊列中,直到它的預定執行時間纔會被執行。02 S ⌘ Read more

⤋ Read More

Pinellas County - Long Run: 17.80 miles, 00:08:57 average pace, 02:39:13 duration
practiced a marathon pacing strategy (simulated) of 5km/10mi/10mi/5km. went pretty well even though i was going faster than the paces at each step. but overall i felt good. also scouted out one of the two overpasses i will have to climb during the race. definitely nothing compared to the regular ones. freezing! started at 33F and ended at 45F. pretty lonely out there because the cold kept everyone inside.
#running

⤋ Read More

基於 go 實現 lsm tree 之主幹框架
0 導讀去年 4 月的時候,我和大家分享了一篇文章——初探 rocksDB 之 lsm tree,和大家一起探討了 lsm tree 結構的底層實現原理. 秉着 【基於源碼支撐原理】 的一貫原則,從本期開始,咱們把源碼篇的坑填上.接下來我將開啓一個新的專題——基於 go 語言從零到一實現 lsm tree,本專題共分爲下述四篇內容:• 基於 go 實現 lsm tree 之主幹框架(本篇) ⌘ Read more

⤋ Read More

Go 語言與 gRPC 的完美結合
*一、gRPC 簡介gRPC(Remote Procedure Call) 是一種遠程過程調用技術, 通過壓縮和序列化數據來優化網絡通信, 可以顯著提高服務調用的性能和效率。gRPC 的概念gRPC 是一個高性能、通用的開源 RPC 框架, 是一個由 Google 主導開發的 RPC 框架。其以 HTTP/2 爲基礎通信協議, 支持多種語言, 通過 protocol buffers 數據格式來實現 ⌘ Read more

⤋ Read More

Pinellas County - 90’ (part I): 4.53 miles, 00:08:41 average pace, 00:39:21 duration
whoa this run felt great. seemed very fun effort while the heart rate was relatively low with a nice pace. it was very cold out, 42F with a wind chill of 38F, but it didn’t matter once the engine was going. unfortunately, halfway through the run code brown sirens were blaring and had to cut it short.
#running

⤋ Read More

Go 調用 C– 動態庫實現車牌識別
前言—–很久沒更新博客,這次正好趁着這次機會來更新一個稍微有點意思的內容,利用 C++ 中 Opencv、TensorRT 等庫編譯出動態庫供 Go 調用,再寫個簡單的 api 對上傳的車輛圖片進行車牌識別。究其原因,天下苦 Java 久矣,每次寫 JNI 去給公司 Java 後端服務調用,而我不喜歡 Java 那我每次寫好的模型動態庫就到此爲止了?白白浪費之前那麼多計算資源於心不忍,因此打 ⌘ Read more

⤋ Read More

Go 插件機制詳解:原理、設計與最佳實踐
*1. Go 語言插件基礎1.1 插件概述插件是一種動態加載的代碼單元, 它可以在程序運行期間被動態加載和掛接到主程序上, 從而擴展主程序的功能。Go 語言從 1.8 版本開始, 通過 plugin 包提供了對插件的初步支持。利用插件, 可以在不需要重新編譯主程序的情況下, 動態地擴展主程序的功能, 做到高內聚低耦合。1.2 插件的定義和結構從實現上看, Go 語言的插件就是一個獨立編譯的 dyn ⌘ Read more

⤋ Read More

Go 1-18 泛型全面講解:一篇講清泛型的全部
序2022 年 3 月 15 日,爭議非常大但同時也備受期待的泛型終於伴隨着 Go1.18 發佈了。可是因爲 Go 對泛型的支持時間跨度太大,有非常多的以 “泛型” 爲關鍵字的文章都是在介紹 Go1.18 之前的舊泛型提案或者設計,而很多設計最終在 Go1.18 中被廢棄或發生了更改。並且很多介紹 Go1.18 泛型的文章 (包括官方的) 都過於簡單,並沒對 Go 的泛型做完整的介紹,也沒讓大家意 ⌘ Read more

⤋ Read More

Golang 實現程序優雅退出的方法有哪些?
在 Go 語言中,實現程序的優雅退出是一項重要的任務,特別是在涉及到 HTTP 服務器、gRPC 服務器、以及其他後臺工作的情況下。以下是一些常見的平滑關閉方法:1. HTTP Server 平滑關閉Go 1.8 及以上版本提供了 http.Server 結構的 Shutdown 方法,用於平滑關閉 HTTP 服務器。package mainimport (    ”context”    ”ne ⌘ Read more

⤋ Read More

Go 語言常見錯誤 - 不使用 function option 模式
在使用 Golang 進行復雜的開發任務時,處理一個結構體有許多可選的配置項是常有的事。這也是在許多函數設計中共有的特徵,因爲這使得函數更容易使用,靈活性更強。然而,有時我們可能會看到錯誤的實踐,那就是 “遺漏使用 Function Option 模式”。在這篇文章中,我將詳細解釋Function Option的概念,並指出爲什麼我們應該使用它。我還將給出實例來展示如果忽略了Function Op ⌘ Read more

⤋ Read More

Go 語言常見錯誤 - any 沒傳遞任何信息
Go 語言,由於其高效強大的並行處理能力和優雅簡單的設計哲學,一直以來都是編程世界的寵兒。然而,對於一些 Go 新手和甚至熟悉 Go 的程序員也可能會遇到一個常見的錯誤: any沒傳遞任何信息。那麼,如何規避這個錯誤呢?本文將揭示其中的祕密。問題描述—-首先,在 Go 中的接口類型interface{}(也被稱作 “any” 類型)是一種空接口類型,可以接受任何類型的參數,無論是用戶自定義的類 ⌘ Read more

⤋ Read More

Go Context 到底放第一個參數傳,還是放結構體裏?
大家好,我是煎魚。前段時間我們在聊手動管理內存 arena 的後續時。我們有提到 context 的函數傳參等問題。當時在評論區有許多的小夥伴交流了起來,大家對此還是非常關注的:今天我們就來聊一聊 conetxt 傳參的這個事。到底擺哪?Go 官方推薦是什麼?快速介紹—-上下文(Context)是 Go 語言中非常有特色的一個特性,其主要的作用是在 goroutine 中進行上下文的傳遞,而在 ⌘ Read more

⤋ Read More

沒想到,Go 語言垃圾回收是這樣工作的!
*1. 垃圾回收概述1.1 什麼是垃圾回收垃圾回收 (Garbage Collection,GC) 是一種自動內存管理的機制, 用於自動釋放那些不再被程序使用的內存。它的主要思想是程序在申請內存時不需要釋放, 而是由垃圾回收器在程序運行的過程中找出那些不再使用的內存並回收它們。這與 C/C++ 語言中的手動內存管理形成對比, C/C++ 程序員需要自己跟蹤內存的分配和釋放。而 Go 語言中內存的分 ⌘ Read more

⤋ Read More

Go 內存管理探祕:自動化與性能的完美平衡
*一、Go 語言內存管理簡介Go 語言自動內存管理機制Go 語言以其簡潔高效的特性而備受開發者推崇,其中自動內存管理是其引以爲傲的一項特性。與傳統的手動內存管理語言不同,Go 語言通過垃圾回收器(GC)自動管理內存,極大地減輕了開發者的負擔。Go 語言的垃圾回收器採用的是基於併發標記 - 清除算法,這意味着垃圾回收的過程中,程序的執行並不會完全停滯,從而保證了較低的暫停時間。內存分配與回收策略Go ⌘ Read more

⤋ Read More

Go 調用 C-C– 函數全攻略
*一、Go 語言調用 C/C++ 函數cgo 基礎及工作原理Go 語言通過 cgo 和 C 語言的 ABI(Application Binary Interface) 進行交互。cgo 會生成相應的 C 代碼, 與 Go 代碼一起編譯成可執行文件或動態庫。cgo 的工作流程主要分爲 3 步:(1) 預處理: 將 Go 源碼中的 C 代碼塊提取出來, 生成 .c 和 .h 文件(2) 編譯: 調用 ⌘ Read more

⤋ Read More
In-reply-to » man... day17 has been a struggle for me.. i have managed to implement A* but the solve still takes about 2 minutes for me.. not sure how some are able to get it under 10 seconds.

So, I finally got day 17 to under a second on my machine. (in the test runner it takes 10)

I implemented a Fibonacci Heap to replace the priority queue to great success.

https://git.sour.is/xuu/advent-of-code/src/branch/main/search.go#L168-L268

⤋ Read More

How to Install macOS Sonoma in a Virtual Machine with UTM
You can install and run macOS Sonoma in a virtual machine, for free, with the use of UTM. UTM runs on Macs, iPhones, and iPads, but we’re going to focus specifically on installing macOS Sonoma in a UTM virtual machine running on a Mac. Yes this means you can run a virtualized macOS Sonoma installation … Read MoreRead more

⤋ Read More

Go 運行時的併發原語
這篇文章我們來了解一下隱藏在 Go 運行時中的一些併發原語, 因爲運行時是底座和包循環依賴等原因,運行時中很少使用標準庫中的併發原語,它有自己的併發原語。mutex在 runtime/runtime2.go[1] 定義了一個互斥鎖,它的定義如下:type mutex struct { lockRankStruct key uintptr}它可是運行時中的大紅人了,在很多數據結構中都被廣泛的使用,凡 ⌘ Read more

⤋ Read More

4 Great Free Menubar Apps for Mac You Should Check Out
One way you can improve your Mac experience is by adding some handy tools and items to your Mac menubar item. And, coincidentally, some of the best free utilities available for Mac, are also menubar items. We’re going to cover four of the best free menubar apps for Mac, which are sure to improve not … Read MoreRead more

⤋ Read More

一個例子,給你講透典型的 Go 併發控制
Go 中可以使用一個go關鍵字讓程序異步執行一個比較常見的場景:逐個異步調用多個函數,或者循環中異步調用func main() { go do1() go do2() go do3()}// 或者func main() { for i := range []int{1,2,3}{  go do(i) }}如果瞭解 Go 併發機制,就知道main在其他 goroutine 運行完成之前就已經結束了, ⌘ Read more

⤋ Read More

掌握 go test 命令,寫出可信賴的代碼
*1. test 命令概述在開發過程中,測試是確保代碼質量和穩定性的關鍵步驟。通過測試,可及早發現潛在的問題,確保代碼的正確性和可維護性。Go 語言提供了強大的測試工具,其中 go test 命令是一個不可或缺的利器。1.1 單元測試單元測試是驗證代碼中最小可測試單元的過程。在 Go 中,單元測試通常位於與被測試代碼相同的包中,以 test.go 結尾的文件中。go test 會執行這些文件中的測 ⌘ Read more

⤋ Read More

How to Copy Pictures from iPhone to PC Without iCloud
If you have an iPhone with iCloud, and you also have a Windows PC that does not have iCloud setup, you may still want to copy the pictures off of the iPhone to the PC. This is a common situation that not everyone is familiar with, so we’re going to take the opportunity to demonstrate … Read MoreRead more

⤋ Read More

使用 Golang Fiber 快速創建高性能的 Web 應用程序
Golang Fiber 是一個靈感來源於 Express.js 的 Web 開發框架,它旨在簡化 Go 語言中的 HTTP 服務開發,同時提供極高的性能。它基於 Fasthttp,這是一個快速的 HTTP 引擎,專爲高性能而設計。在這篇文章中,我們會詳細介紹如何使用 Fiber 創建 web 應用程序,並提供豐富的示例。開始前的準備——在開始之前,確保你已安裝了 Go 語言環境。你可以在 ⌘ Read more

⤋ Read More

Uber Go 出了個靜態分析工具 NilAway,還挺實用!
大家好,我是煎魚。風水輪流轉,Go 程序寫多了。總是會這有點問題,那有點問題。問題積累久了就容易出點事件,甚至是事故。這種時候大家往往會想着引入一些靜態分析工具來解決這個問題。元旦假期時剛好看到這個新輪子,分享給大家!NilAway 分析工具————最近 Uber 開發和開源了一個挺不錯的靜態分析工具 NilAway:使用場景是:在 Go 程序編譯時就能捕獲 nil,達到幫助開發人 ⌘ Read more

⤋ Read More

Go 巧用 io-Pipe– 優化內存佔用情況
當需要向服務端通過 http api 上傳大文件時候,通常會使用以下這種方式func main(){ filename := “nohup.out” body := new(bytes.Buffer) writer := multipart.NewWriter(body) part, err := writer.CreateFormFile(“file”, filename ⌘ Read more

⤋ Read More

假如沒有 go install,編譯會多痛苦?
*1. go install 命令簡介go install 命令是 Go 語言的標準命令, 用於編譯和安裝 Go 語言程序。1.1 命令作用及基本原理go install 命令的主要作用是編譯和安裝 Go 語言的可執行文件或庫文件。它的基本原理是: 1. 按照包依賴關係編譯傳遞進來的 main 包及其所有依賴的包 2. 鏈接必要的包生成可執行文件 3. 將生成的可執行文件拷貝到 ⌘ Read more

⤋ Read More

Build 實戰指南:優雅編譯,高效開發
*1. Go Build 命令介紹1.1 基本語法格式Go 語言的 go build 命令用於編譯一個或多個 Go 源代碼文件,生成可執行文件或包。基本語法格式如下go build [標誌] [包名] 標誌:用於指定編譯時的選項和參數。 包名:可選,指定要編譯的包的路徑。如果省略包名,將編譯當前目錄下的所有 Go 源代碼文件。 go build 命令的工作原理包括以下步驟: 1. 分 ⌘ Read more

⤋ Read More

go run 命令核心技術詳解
*1. go run 命令簡介在 Go 語言開發中,go run 命令是一個非常常見且便捷的工具,它用於編譯並直接運行 Go 語言源代碼文件,而不需要生成可執行文件。本文將深入介紹 go run 的語法、常見用法實例、編譯命令行選項、注意事項,以及與 go build、go install 的區別和常見用途。2. go run 語法 go run 命令的基本語法爲:go run [文件名.go] ⌘ Read more

⤋ Read More

OH MY FREAKING HECK. So.. I made my pather able to run as Dijkstra or A* if the interface includes a heuristic.. when i tried without the heuristic it finished faster :|

So now to figure out why its not working right.

⤋ Read More

Go 測試的 20 個實用建議
2023 年 11 月初,Go 語言技術負責人 Russ Cox 在 GopherCon Australia 2023[1] 大會上進行了題爲 “Go Testing By Example”[2] 的演講:12 月初 Russ Cox 重新錄製了該演講內容的視頻,並在個人網站 [3] 上放了出來。這個演講視頻是關於如何編寫好的 Go 測試的,Russ Cox 介紹了 20 個實用建議,非常值得 G ⌘ Read more

⤋ Read More

Go 語言中的 nil 不相等問題
Go 語言作爲一門靜態類型的編程語言,提供了豐富的類型系統。在這個類型系統中,nil 扮演着空值的角色,類似於其他編程語言中的 null 或 None。然而,在 Go 中,對於 nil 的處理與其他語言有着本質的不同,這導致了一些獨特的行爲,尤其是在不同類型的 nil 比較時。什麼是 nil?——–在 Go 中,nil 是一個預聲明的標識符,它可以代表某些類型的零值。具體來說,下列類型的 ⌘ Read more

⤋ Read More

go clean 命令 完全解析
*1. go clean 命令介紹命令作用和使用場景在 Go 語言開發中,go clean 命令是一個強大的工具,用於清除與 Go 構建相關的文件和目錄。它通常在項目維護、優化和 CI/CD 任務中發揮重要作用。使用場景包括但不限於: 在提交代碼前,清理本地構建產物,確保提交的是源代碼而非編譯文件。 在項目重構或遷移時,清理舊有構建產物,避免與新的代碼混淆。 在 CI/CD 流程中, ⌘ Read more

⤋ Read More

使用 Gotify 來搭建你的消息推送系統
通過消息推送,我們可以實時的獲取有效的信息。比如結果,驗證碼以及一些重要的通知場景等。今天要分享的是 gotify,是一個用 go 編寫的消息服務端,也有客戶端,通過 gotify 我們可以簡單的進行收發消息。gotify 的 地址將會在文末展示。gotify 支持的功能如下可以通過 restapi 發送消息 可以通過 websocket 接收消息 可以管理用戶和客戶端以及應用程序 ⌘ Read more

⤋ Read More

man… day17 has been a struggle for me.. i have managed to implement A* but the solve still takes about 2 minutes for me.. not sure how some are able to get it under 10 seconds.

Solution: https://git.sour.is/xuu/advent-of-code/src/branch/main/day17/main.go
A* PathFind: https://git.sour.is/xuu/advent-of-code/src/branch/main/search.go

some seem to simplify the seen check to only be horizontal/vertical instead of each direction.. but it doesn’t give me the right answer

⤋ Read More

Pinellas County - Long Run: 20.04 miles, 00:09:48 average pace, 03:16:16 duration
kept it chill with between 9:30 and 10:00. the first half almost felt too easy. it was not until i had to go over the overpasses again where my legs started to actually feel it a bit. the leg back i would just “rope” people in and then slow down for a bit to rest. this was a great confidence boost and a nice way to end the year.
#running

⤋ Read More

Experiment & Explore with Fedora Linux on Mac with UTM
Running Linux on a Mac can be a big ordeal, but not with virtualization. By using UTM, you can run Linux in a virtual machine atop MacOS, contained entirely within an app. This allows you to explore and experiment with Linux, without having to go through any complex installation process or setup, it’s just a … Read MoreRead more

⤋ Read More

Go 配置文件大揭祕:INI 文件讀寫實戰詳解
*1. INI 文件簡介INI(Initialization)文件是一種簡單、文本文件格式,常用於配置文件。它由多個節(section)組成,每個節包含多個鍵值對。鍵值對的格式爲 key=value,節的格式爲 [section]。簡單示例如下://  示例INI文件[database]host = localhostport = 3306username = userpassword = sec ⌘ Read more

⤋ Read More

tar 歸檔文件處理操作指南
*1. tar 文件的概述打包和壓縮多個文件在文件處理中,經常需要將多個文件打包成一個歸檔文件以便傳輸或存儲。tar 文件就是一種常見的歸檔文件格式,它能夠將多個文件和文件夾組織成一個單一的文件。結構簡單,跨平臺特性好Tar 文件採用簡單的文件組織結構,這種結構使得 tar 文件在不同操作系統之間具有很好的兼容性。Go 語言通過標準庫內置了對 tar 文件的支持,使得在 Go 中處理 tar 文件 ⌘ Read more

⤋ Read More

基於 Go-Kit 的 Golang 整潔架構實踐
如何用 Golang 實現簡潔架構?本文介紹了基於 Go-Kit 實現簡潔架構的嘗試,通過示例介紹了簡潔架構的具體實現。原文: Why is Go-Kit Perfect For Clean Architecture in Golang?[1]簡介Go 是整潔架構 (Clean Architecture) 的完美選擇。整潔架構本身只是一種方法,並沒有告訴我們如何構建源代碼,在嘗試用新語言實現時 ⌘ Read more

⤋ Read More

基於 FX 構建大型 Golang 應用
Uber 開源的 FX 可以幫助 Go 應用解耦依賴,實現更好的代碼複用。原文: How to build large Golang applications using FX[1] 構建複雜的 Go 應用程序可能會引入很多耦合Golang 是一種流行編程語言,功能強大,但人們還是會發現在處理依賴關係的同時組織大型代碼庫很複雜。Go 開發人員有時必須將依賴項的引用傳遞給其他人,從而造成重用代碼 ⌘ Read more

⤋ Read More