收藏 / 列表

筱倩 - 《Go 單元測試從入門到覆蓋率提升》(二)

Golang相關測試框架   在 Go 語言裏,最常用的測試框架有:自帶的 testing 包、GoConvey 和 testify。 1、Go自帶的testing包   testing包是官方內置的,無需額外安裝,也是大多數項目的首選。   (1)單元測試 測試文件必須以 _test.go 結尾,例如:calc_test.go 測試函數必須以 Test 開頭(推薦寫成 T

go , 後端

王中陽背後的男人 - 給想轉Go或者Go進階同學的一些建議

前言 最近一直有小夥伴私信我學Go語言的問題: 有的小夥伴覺得客户端太捲了,想轉服務端,覺得Java也卷,想學Go語言; 有的小夥伴是想從PHP或者Java轉Go,做高併發編程,覺得Go更有前途。 聊的多了,發現這是一個共性問題,所以乾脆整理成文章,希望對更多的人有幫助。 這篇文章會結合我的經歷: 聊聊我認為客户端轉服務端開發最大的挑戰是什麼? 如何高效轉型做服務端開發?如何高效學完Go基礎? 在

go , 後端

蘇琢玉 - RSA+AES 混合加密不復雜,但落地挺煩,我用 Vue+PHP 封裝成了兩個庫

在項目裏寫接口的時候,我有時候會希望再多一層保護。 雖然 HTTPS 已經能保證傳輸安全,但它解決的更多是「傳輸過程中不被竊聽/篡改」的問題。 而我還想順帶做到幾點: 防止接口被隨便模擬調用 就算數據包被截獲,也看不懂內容 就算有人拿着同一份請求去重放,服務端也能拒絕 這些需求其實挺常見的,但並不複雜,説白了就是一套 RSA+AES 混合加密。 經典的思路 原理本身沒什麼新

composer , vue.js , php , npm

木子君_求贊 - 帶緩存的SpringRank c++實現

帶緩存的 SpringRank(Cache-Optimized SpringRank)——C++17 實現 把「物理彈簧」迭代改成 L2 分塊 + L1 索引緩衝 + 預取, 在 L3 大圖 上仍能保持 Radix 級吞吐,內存仍 O(V+E)。 1 問題背景 熱點 原算法訪存 緩存痛點 隨機讀 Δᵢⱼ for (j ∈

排序 , 排序學習 , c++

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

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

批處理 , 教程 , 知識 , 編程語言 , go

axiaoxin - JSON-LD 類型使用示例大全

本文是針對 JSON-LD 類型的使用示例及其簡要介紹與説明。每個類型的示例展示瞭如何在 JSON-LD 中進行標註,並附帶了簡要説明,希望對你有所幫助。 文章目錄 JSON-LD 的主要核心類型 Thing(事物) CreativeWork(創作作品) Event(事件) Intangible(非實體事物) Organization(組織) P

seo , 前端 , Javascript , Json

XHunter - Gin筆記二之gin.Engine和路由設置

本文首發於公眾號:Hunter後端 原文鏈接:Gin筆記二之gin.Engine和路由設置 這一篇筆記主要介紹 gin.Engine,設置路由等操作,以下是本篇筆記目錄: gin.Default() 和 gin.New() HTTP 方法 路由分組與中間件 1、gin.Default() 和 gin.New() 前面第一篇筆記介紹,創建一個 gin 的路由引擎使用的函數是 gin

go , 後端

apocelipes - POSIX兼容系統上read和write系統調用的行為總結

關於UNIX和Linux的宣傳語中,一切皆文件應該是最廣為人知的一句。 不管是普通文件,還是硬件設備、管道、網絡套接字,在Linux甚至還有信號和定時器都共享一套相似的api,大家可以用類似的代碼完成各種不同的任務,大大簡化了代碼複雜度和學習成本。 當然這只是理想中的情況,現實是普通文件和硬件設備是兩種完全不同的東西,普通文件和網絡套接字尤其是UDP協議的那種更是風馬牛不相及,強行把這些行為屬性完

後端

煩惱的沙發 - MySQL 與 PostgreSQL,該怎麼選?

數據庫該用 MySQL 還是 PostgreSQL?網上眾説紛紜,也有人説PostgreSQL不能扛大樑。但其實沒必要糾結,根據自己項目需求就好了(好像説了句廢話)。 我接觸過很多項目,有的用MySQL跑得飛快,有的則非PostgreSQL不可。那一篇文章告訴你該怎麼選。 兩種不同的設計哲學 要理解它們的區別,首先要知道它們來自哪裏,要去向何方。 MySQL :為速度和簡潔而生 MySQL的早期

觀點 , MySQL , 數據庫 , postgresql

gvison - PerfTest:壓測工具的“瑞士軍刀”,覆蓋 HTTP/1/2/3 與 WebSocket,全程實時監控

前言 在每一位後端工程師的工具箱裏,總有那麼幾款壓測工具常年“上崗”。當我們想快速驗證一個接口性能時,可能會隨手敲下 ab;當追求極致的單機 QPS 時,wrk 往往是我們的不二之選;而當需要編寫複雜的測試場景時,k6 以其強大的腳本能力和開發者友好的生態,成為了越來越多團隊的選擇。當然有更多壓測工具這裏就不一一舉例。 這些工具都很出色,但技術的浪潮總在向前。HTTP/3 協議逐漸從“未來”變為“

性能測試 , websocket , HTTP , 測試工具

soroqer - Channel 的源碼分析與高效使用-Golang 🔥

“不要通過共享內存來通信,而要通過通信來共享內存”。這句話精準概括了 Go 併發模型的核心哲學——而承載這一哲學的核心原語,正是 channel(通道)。 要深入理解 channel,我們需要從 runtime 包的源碼層面分析其核心結構、關鍵操作(創建、發送/接收、關閉)的實現邏輯,以及底層如何通過同步機制(鎖、等待隊列)實現協程(Goroutine)間的安全通信。 以下源碼基於 go1.24.

channel , 效率 , 源碼分析 , go

探索雲原生 - HAMi vGPU 原理分析 Part4:Spread&Binpack 高級調度策略實現

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

容器 , kubernetes , gpu , 人工智能 , go

碼農先森 - PHP轉Go系列 | ThinkPHP與Gin框架之API接口簽名設計實踐

大家好,我是碼農先森。 回想起以前用模版渲染數據的歲月,那時都沒有 API 接口開發的概念。PHP 服務端和前端 HTML、CSS、JS 代碼混合式開發,也不分前端、後端程序員,大家都是全乾工程師。隨着前後端分離、移動端開發的興起,用後端渲染數據的開發方式效率低下,已經不能滿足業務對需求快速上線的要求了。於是為了前後端的高效協同開發引入了 API 接口,只要在開發需求之前約定好數據傳參,之後便可以

php , gin , go , thinkphp

vistart - 一個基於 Pydantic 構建的靈活、類型安全的 Python 模型關係管理系統

Python Relations 包 English 一個基於 Pydantic [source|PyPI] 構建的靈活、類型安全的 Python 模型關係管理系統。 通過 Pydantic 的驗證系統提供帶緩存支持和嚴格類型檢查的 ORM 風格關係管理。 目前該代碼包已經發布到 PyPI,最新版本為 v0.1.0。 特性 基於 Pydantic 構建,提供強大的數據驗證和序列

orm , 框架 , 關聯對象 , pypi , Python

codechen8848 - 輕量神器!一款可替代 Postman 的 API 調試工具!

大家好,我是 Java陳序員。 在開發中,常常需要進行 API 調試,可以藉助 Postman 或者 curl 命令完成工作。但是 Postman 需要安裝,而 curl 命令參數又很複雜,不易操作。 今天給大家推薦一款極簡到極致的網頁版 API 調試神器,可替代 Postman! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹

go , 後端

Hunter - Golang基礎筆記九之方法與接口

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記九之方法與接口 本篇筆記介紹 Golang 裏方法和接口,以下是本篇筆記目錄: 方法 接口 用結構體實現類的功能 1、方法 首先介紹一下方法。 方法是與特定類型關聯的函數,我們在實現一個函數前,綁定一個類型,就實現了這個類型的方法。 比如我們想實現一個結構體的方法,可以如下操作: type Person struc

方法 , 接口 , 類型判斷 , go , 後端

Aonaufly - Go之原生TCP開發(基礎)

一, 服務端 package main import ( "fmt" "net" ) func handleConnection(conn *net.TCPConn) { for { buf := make([]byte, 1024) n, err := conn.Read(buf) if err != nil { //有一個前端已經斷開了

基礎 , 服務器 , 遊戲開發 , tcp , go