@go

動態 列表
@changhao_flag

Golang net/http標準庫常用方法(三)

大家好,針對Go語言 net/http 標準庫,將梳理的相關知識點分享給大家~~ 圍繞 net/http 標準庫相關知識點還有許多章節,請大家多多關注。 文章中代碼案例只有關鍵片段,完整代碼請查看github倉庫:https://github.com/hltfaith/go-example/tree/main/net-http 本章節案例,請大家以 go1.16+ 版本以上進行參考。

changhao_flag 頭像

@changhao_flag

昵稱 帽兒山的槍手

@flydehuli

gtoken v2.0.0 正式發佈,基於 GoFrame 的 token 插件

本次更新: 此版本主要架構全面更新,發佈 v2.X.X,不再兼容 v1.X.X,升級需謹慎 架構全面升級,版本更新到 v2.X.X,不再兼容 v1.X.X 通過 go get -u -v github.com/goflyfox/gtoken/v2 獲取最新版本,升級需謹慎 獨立 Token、Codec、Cache 接口,方便擴展 採用 goframe 標準中間件方式認證,調用更加直觀

flydehuli 頭像

@flydehuli

昵稱 FLY的狐狸

@hunter_58d48c41761b8

LeetCode熱題一之兩數之和

本文首發於公眾號:Hunter後端 原文鏈接:LeetCode熱題一之兩數之和 題目 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出和為目標值 target 的那兩個整數,並返回它們的數組下標。 你可以假設每種輸入只會對應一個答案,並且你不能使用兩次相同的元素。 你可以按任意順序返回答案。 題目來源 此題來源於 LeetCode 題庫序號 1。 L

@yaochujiadebiandou

[leetcode]876. 鏈表的中間結點

示例 輸入:head = [1,2,3,4,5] 輸出:[3,4,5] 解釋:鏈表只有一箇中間結點,值為 3 。 輸入:head = [1,2,3,4,5,6] 輸出:[4,5,6] 解釋:該鏈表有兩個中間結點,值分別為 3 和 4 ,返回第二個結點。 思路 數組 鏈表轉存數組,有順序下標,根據長度判斷中間點。 遍歷鏈表 新建數組 鏈表填充到數組中 返回數

yaochujiadebiandou 頭像

@yaochujiadebiandou

昵稱 要出家的扁豆

@codists

RabbitMQ的Overview Totals是空

一、問題描述 RabbitMQ 版本:4.0.2,Erlang 版本:26.2.5.4。 RabbitMQ 頁面管理(rabbitmq_management)的 Overview Totals 是空: 二、原因分析 RabbitMQ 的配置: management_agent.disable_metrics_collector = true 導致。將 management_agent.disa

codists 頭像

@codists

昵稱 codists

@tiandetuoba

Golang領域Beego框架的中間件開發實戰:高效擴展與優化

隨着Go語言在開發領域的廣泛應用,越來越多的開發者選擇Beego框架來構建高效、靈活的Web應用。作為一款基於Go語言的MVC框架,Beego不僅提供了高性能的路由、ORM、會話管理等功能,還允許開發者自定義中間件來擴展框架的功能,提高應用的可維護性和靈活性。 中間件是Web應用中的核心組件之一,它能夠在請求處理的過程中對請求和響應進行攔截、處理、修改或記錄。通過使用中間件,開發者可以在不修改核

tiandetuoba 頭像

@tiandetuoba

昵稱 靦腆的拖把

@lixingning

golang的單元測試

基於代碼架構設計 + 第三方工具 -- 改善單測代碼質量 單元測試代碼難寫? 代碼架構設計不夠完善,從上到下的交互的邊界不夠清晰,可能在業務層存在調用第三方系統的地方 // bad package service func learnGo() { // ... // 針對業務代碼,認為第三方系統不穩定,輸出的結果不固定,系統內部的是穩定的 // 單元測試需要將不穩定的

lixingning 頭像

@lixingning

昵稱 smile

@litao_2071

GO單元測試&集成測試的 mock 方案

GO單元測試集成測試的 mock 方案 在單元測試或集成測試中,不希望依賴原始數據庫或者説給原始數據庫帶去髒數據,我們往往使用Mock的方式進行模擬, 當然單元測試和集成測試中的側重點同,下面會介紹 基於數據打樁、啓動模擬數據庫等解決方案。 我們通過下面這個案例來説明幾種mock方式的優劣勢和適用場景 案例: 需要mock 下面這個 數據庫操作接口 TestRepo // TestEntity

litao_2071 頭像

@litao_2071

昵稱 litao-2071

@7mandy7

Go中的面向對象2 我算是徹底玩明白了

大傢伙,我是Mandy。 上一篇,我們分享了在Go中是如何實現面向對象,文章中對面向對象的三大特性中的繼承、封裝,做了一個理論和實踐的總結,這一篇繼續分享關於另外一個特性,那就是多態。 認識多態 老規矩,在代碼實踐之前,先對基礎知識做一個普及。 1、面向對象中的多態(Polymorphism)是指一個對象可以具有多種不同的形態或表現方式。簡單來説,就是同一個類型的對象,在不同的上下文中表現出不同的

7mandy7 頭像

@7mandy7

昵稱 7mandy7

@7mandy7

Go中的面向對象1 我算是徹底玩明白了

大家好,我是Mandy。 前面一篇,分享了Go中的函數和方法之間有什麼區別、如何使用,今天來分享一篇關於面向對象的知識。 萬丈高樓平地起 在學習之前,我們來普及一下關於面向對象的基礎知識。 什麼是面向對象 面向對象(Object-Oriented)是一種計算機編程的方法和思想,它將程序中的數據(對象)和操作(方法)組織成一個個相互關聯和交互的對象。對象是現實世界中的事物或概念在計算機程序中的抽象表

7mandy7 頭像

@7mandy7

昵稱 7mandy7

@songzihuan

Go繼承和組合

轉載:原文鏈接 Golang是不支持繼承的,因此我們在使用的時候往往使用組合。那麼,組合與繼承有什麼區別呢?組合和繼承都是面向對象編程中重要的概念。繼承讓一個類獲得另一個類的屬性和方法,形成層級關係,子類可以重用父類的功能。而組合則是將一個類的對象作為另一個類的成員變量,實現代碼複用和模塊化。繼承建立的是"is-a"關係,表示一種類型的擴展;而組合則是"has-a"關係,表示對象之間的包含關係。相

songzihuan 頭像

@songzihuan

昵稱 宋子桓

@fannaodeshafa

別再手擼了,6個Go庫加持,寫代碼快得飛起

剛從 PHP/Java 轉 Go 的同學,是不是會覺得Go 的標準庫是挺牛,啥都有,但真要搓個像樣的Web應用出來,好像又什麼都得自己手擼。路由、配置、ORM……結果項目還沒開始,人已經勸退了。 過來人告訴你,這思路不對。地道的Gopher,早就學會用使用工具了。今天,我就掏出我壓箱底的寶貝,聊聊那6個幾乎成了Go項目標配的神器。 坐穩了,發車! Gin: Web開發的事實標準 想用Go寫API?

fannaodeshafa 頭像

@fannaodeshafa

昵稱 煩惱的沙發

@dewujishu

可擴展系統設計的黃金法則與Go語言實踐|得物技術

一、引言:為什麼需要可擴展的系統? 在軟件開發領域,需求變更如同家常便飯。一個缺乏擴展性的系統,往往在面對新功能需求或業務調整時,陷入“改一行代碼,崩整個系統”的困境。可擴展性設計的核心目標是:讓系統能夠以最小的修改成本,適應未來的變化。對於Go語言開發者而言,利用其接口、併發、組合等特性,可以高效構建出適應業務演進的系統。 本文將從架構設計原則、編碼實踐、架構實現模式、驗證指標到演進路線,系統講

dewujishu 頭像

@dewujishu

昵稱 得物技術

@anonymous_5f6b14f11289a

坑爹,線上同步近 3w 個用户導致鏈路阻塞引入發的線上問題,你經歷過嗎?

分享一個印象深刻的線上問題,希望能夠給 xdm 帶來一點思考 一個稀鬆平常的工作日,正準備下班的時候,不巧,突發線上緊急問題,心中一萬個不情願,可還是要硬着頭皮去定位問題 簡單的表象為微服務之間 gRPC通信的通道默認是用了默認值,並沒有按照實際業務去設置通道接受和發送的字節大小 用過 golang grpc 通信的 xdm 就知道,grpc 通道默認的發送和接收的消息大小為 4M,由於傳送的數據

anonymous_5f6b14f11289a 頭像

@anonymous_5f6b14f11289a

昵稱 阿兵雲原生

@sevencode

Go語言極致性能優化實戰:生產級代碼優化完全指南

在微服務架構和高併發場景下,Go語言的性能優化直接決定了系統的吞吐量和資源利用率。本文基於大型互聯網公司的實踐經驗,提供可直接應用於生產環境的優化技巧和完整代碼實現。 1. 內存分配優化 1.1 對象池模式 (sync.Pool) 對象池是減少GC壓力的核心技術,特別適用於頻繁創建和銷燬的對象。 package main import ( "sync" "bytes" "

sevencode 頭像

@sevencode

昵稱 Seven

@yejianfeixue

程序的同步與異步

前言: 在計算機網絡通訊中有兩種傳輸方式。同步傳輸和異步傳輸。同步傳輸好比一座單行的高架橋, 異步傳輸好比一座雙通道的高架橋。同樣在程序代碼中也存在同步和異步的執行方式。先來了解一下程序的中幾個概念 進程和線程 線程與進程相比更輕量,而且線程之間是共享內存堆棧的,所以不同的線程之間交互非常容易實現。比如聊天室這樣的程序,客户端連接之間可以交互,比聊天室中的玩家可以任意的其他人發消息。用多線程

yejianfeixue 頭像

@yejianfeixue

昵稱 葉劍飛雪

@axiaoxin_blog

Go 1.24 新特性一覽

Go 1.24震撼登場,帶來顯著性能提升與諸多新功能,如泛型類型別名、優化工具鏈及標準庫增強。可藉助os.Root實現安全文件系統操作,運用testing.B.Loop優化基準測試,利用runtime.AddCleanup完善資源管理,還有weak包優化內存、crypto包保障FIPS 140 - 3合規。速升級,提升Go應用效率與安全! 文章目錄 語言特性更新 泛

axiaoxin_blog 頭像

@axiaoxin_blog

昵稱 axiaoxin

@axiaoxin_blog

Go 語言泛型用法詳解

本文將帶你從零開始,理解Go 泛型的概念、語法、使用方式,並配有示例代碼,幫助你快速上手。 文章目錄 什麼是泛型? 1. 泛型函數 示例:一個求長度的泛型函數 2. 泛型結構體 示例:一個通用的盒子 3. 泛型集合(Set) 示例:一個通用的集合 4. 泛型通道(Channel) 示例

axiaoxin_blog 頭像

@axiaoxin_blog

昵稱 axiaoxin

@ansurfen

我開發了一個編譯成 VBScript 的現代編程語言 - Hulo

嘿,VBScript 愛好者們! 我最近在做一個編譯器/轉譯器項目,想要解決一些在 Windows 腳本開發中遇到的“老大難”問題。 你知道 VBScript 最令人頭疼的是什麼嗎? 就是那種 冗長的語法 和 有限的語言能力,一旦想實現稍微複雜一點的邏輯,就會陷入繁瑣的拼接和調試地獄。 於是我開始思考—— 有沒有可能用一種更現代、更清爽的語言來寫腳本,然後自動生成 VBScript?

ansurfen 頭像

@ansurfen

昵稱 Ansurfen

@ansurfen

Hulo語言架構:從源代碼到目標代碼的完整流程

最近這一段時間忙着工作和開發Hulo編程語言,滿打滿算已經過了三個月多了。心血來潮,想梳理下Hulo編程語言的開發流程,也順帶以個人的視角解讀下編程語言是如何從零開始誕生的。希望通過這篇文章,能夠為對編程語言實現感興趣的開發者提供一個實踐性的參考,同時也記錄下這段充滿挑戰和收穫的開發歷程。 架構 Hulo語言的定位是批處理腳本的編譯器,最終經過編譯後的目標語言是Bash、Batch、VBS、Pow

ansurfen 頭像

@ansurfen

昵稱 Ansurfen

@vistart

Golang 如何監聽某個函數(方法)開始執行和執行結束

如果想監聽函數(方法)開始執行和執行結束,你需要設置兩個通道: chanStarted: 用於發送開始執行信號。 chanFinished: 用於發送執行結束信號。 同時,為了保證監聽方能實時得知“開始執行”或“執行結束”信號,需要在執行任務前開啓監聽。 以下為模擬監聽函數(方法)開始執行和執行結束的示例: package main import ( "context"

vistart 頭像

@vistart

昵稱 vistart

@kubeexplorer

HAMi vGPU 原理分析 Part4:Spread&Binpack 高級調度策略實現

上篇我們分析了 hami-scheduler 工作流程,知道了 hami-webhook、hami-scheduler 是怎麼配合工作的。 本文為 HAMi 原理分析的第四篇,分析 hami-scheduler 在調度時是如何選擇節點的,即:Spread、Binpack 等高級調度策略是怎麼實現的。 !--more-- 這篇文章我們解決最後一個問題:_Spread、Binpack 等高級調度策略

kubeexplorer 頭像

@kubeexplorer

昵稱 探索雲原生

@baidujiagoushi

千萬級高性能長連接Go服務架構實踐

作者 | glstr 導讀 移動互聯網時代,長連接服務成為了提升應用實時性和互動性的基礎服務。本文主要介紹了百度系內基於golang實現的統一長連接服務。主要從統一長連接功能實現和性能優化等角度,描述了統一長連接服務在設計、開發和維護過程中面臨的問題和挑戰,重點介紹瞭解決相關問題和挑戰的解決方案和實踐經驗。 全文7631字,預計閲讀時間20分鐘。 01 摘要 移動互聯網時代,用户對服務的

baidujiagoushi 頭像

@baidujiagoushi

昵稱 百度Geek説