收藏 / 列表

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

一、靜態代碼分析   靜態代碼分析是一種在不執行和運行程序的情況下檢查源代碼的方法。通過這種方法,自動化工具會掃描代碼查找潛在的問題,如bug、安全漏洞或與編碼標準的偏離。靜態代碼分析可以在執行或合併到main分支之前檢查源代碼中的問題。   動態代碼分析是在代碼被執行時,識別運行時的問題,例如性能瓶頸、內存泄露和邏輯缺陷。它輸出的內容是程序的實際運行時行為,包括日誌、跟蹤和性能指標。它在實際或

go , 後端

王中陽背後的男人 - Docker磁盤滿了?這樣清理高效又安全

大家好,我是地鼠哥,最近在帶着大家做項目的時候碰到了一個印象很深的問題,和大家總結分享一下:明明代碼邏輯沒問題,部署時卻頻頻報錯,排查半天發現是服務器磁盤被佔滿了? 今天把解決思路整理出來,不僅能幫你快速釋放磁盤空間,也想順便安利下我們的項目課程(https://mp.weixin.qq.com/s/ACzEHtvGh2YsU_4fxo83fQ),裏面還包含了更多部署運維的實戰技巧哦~ 📌 問題

Docker , 後端

蘇琢玉 - 如何優雅地處理多種電商優惠規則?我用 PHP 封裝了一個 Promotion Engine

做電商項目時,經常要處理各種各樣的優惠活動:滿減、打折、VIP 專屬優惠、第二件特價、階梯優惠…… 這些單獨實現起來都不復雜,但當你把它們放在一起,就變得混亂起來了。 我自己在工作裏寫過不少類似的邏輯,每次做法差不多:if/else、switch、各種判斷混在一起,過幾個月回頭看代碼,根本不想維護。 於是我乾脆寫了一個小庫,封裝了常見的優惠計算邏輯,讓這件事更清晰,也能隨時在別的項目裏

composer , php

木子君_求贊 - 緩存排序算法

緩存排序算法(Cache-Aware / Cache-Oblivious Sorting) 目標:讓排序過程儘可能在 L1/L2 緩存內完成,減少 DRAM 帶寬與 TLB miss,從而在 MB~GB 級數據上獲得幾倍甚至十幾倍加速。 分為兩條路線: Cache-Aware(需手動指定緩存大小) Cache-Oblivious(無需參數,理論最優) 1 性能瓶頸

排序 , c++

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

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

開源軟件 , vbs , 編程語言 , 編譯器 , go

axiaoxin - 最全面的 Markdown 語法參考手冊

全面掌握Markdown:本教程詳細介紹了Markdown的基本語法和擴展語法,包括標題、段落、列表、代碼、鏈接、圖片等,並提供實用技巧,助您快速上手,高效創建結構化文檔。無論您是編寫文檔、筆記、博客,還是進行內容創作,都能從中獲益。同時,本手冊還涵蓋了CommonMark規範,助您瞭解Markdown的底層原理。 文章目錄 Markdown 基本語法 標題 (Heading

Markdown

Java陳序員 - 再見 Postman!一款開源免費的全能 API 客户端工具!

大家好,我是 Java陳序員。 在日常開發工作中,常常需要進行 API 接口調試,通常是藉助 Postman 進行調試或者接口管理。 但是基於 Electron 框架開發的 Postman,啓動速度較慢,且運行時會佔用較多內存和 CPU 資源。而且依賴雲同步功能,用户的接口集合、密鑰、Token 等敏感信息可能存儲在第三方服務器,存在數據泄露風險。此外,一些高級功能,還需要進行付費。 今天,給大家

github , rust , postman

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

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

go , 後端

apocelipes - golang unique包和字符串內部化

最近在做老系統優化,正好遇到了需要使用字符串內部化的場景,所以今天就來説説字符串內部化這種優化技巧。 什麼是字符串內部化 熟悉Java或者python的開發者應該對“內部化”這種技術不陌生。內部化指的是對於內容完全相同的字符串變量,內存中只保留一份數據,所有的變量都引用同一份數據,從而節約內存。 舉個Java的例子: public class StringInternDemo { publ

go , 後端

gvison - 框架選型:Kratos、Go-Zero、GoFrame、Sponge 對比分析

框架比較 特性/框架 kratos go-zero goframe sponge 設計理念 微服務框架,強調模塊化和可擴展性 高性能、簡潔易用,面向微服務 後端開發框架,強調開發效率和易用性 基於sql、protobuf、json逆向生成模塊化代碼來組成項目所需的服務代碼,強調易用性、開發效率、可擴展性,面

框架 , 微服務 , 開發工具 , Web

探索雲原生 - ArgoWorkflow教程(二)---快速構建流水線:Workflow & Template 概念

上一篇我們部署了 ArgoWorkflow,並創建了一個簡單的流水線做了個 Demo。本篇主要分析 ArgoWorkflow 中流水線相關的概念,瞭解概念後才能更好使用 ArgoWorkflow。 !--more-- 本文主要分析以下問題: 1)如何創建流水線? Workflow 中各參數含義 2)WorkflowTemplate 流水線模版如何使用, 3)Workflow、Workfl

devops , 雲原生 , cicd , jenkins

碼農先森 - PHP轉Go系列 | ThinkPHP與Gin框架之打造基於WebSocket技術的消息推送中心

大家好,我是碼農先森。 在早些年前客户端想要實時獲取到最新消息,都是使用定時長輪詢的方式,不斷的從服務器上獲取數據,這種粗暴的騷操作實屬不雅。不過現如今我也還見有人還在一些場景下使用,比如在 PC 端掃描二維碼,然後使用長輪詢的方式從服務端獲取最新的掃碼信息,來判斷用户是否已經掃碼完成,諸如這種場景還有不少。其實大家都知道長輪詢的方式不好,那為什麼還有人使用呢? 我想最直接的原因就是「開發起來簡

php , gin , go , thinkphp

vistart - Golang 中保存通道的 map 在設為 nil 後不會回收元素,即通道依然有效

Golang 中,如果用一個 map 保存實例化的通道,並用在協程間發送和接收。當該 map 被賦值為 nil 時,管理的通道依然有效。 示例代碼如下: package main import ( "fmt" "time" ) func main() { // 創建一個map用於保存通道 channelMap := make(map[string]chan in

channel , 垃圾回收 , 協程 , map , go

煩惱的沙發 - Rust 與 Go,後端開發的下一個五年,誰是更穩的選擇?

開發沒有那麼容易,每個後端有它的脾氣,它不關心業務的快速變化,只關心自身的穩定和高效。 那麼在未來幾年,在高併發、低延遲的新興後端領域,Rust 和 Go,誰會成為更主流的選擇?我個人認為,這不在於哪個語言更時髦,而在於誰的架構性成本更低。 核心差異:編譯時的嚴謹 vs. 運行時的靈活性 Rust 和 Go 的設計哲學,從一開始就走向了兩個不同的方向。 Rust 選擇的是一條“先難後易”的路

開發工具 , rust , 開發環境 , go , 後端

codechen8848 - 集成多平台的直播神器!觀看多平台直播一站搞定!

大家好,我是 Java陳序員。 在日常生活中,我們常常會在工作之餘觀看直播,現在的主流直播平台如虎牙、鬥魚、嗶哩嗶哩、抖音等,為用户提供了豐富多樣的直播內容。 然而,用户在觀看不同平台的直播時,往往需要在多個應用之間切換,操作繁瑣,體驗不佳。 今天,給大家介紹一款集成多個平台的直播神器,一站搞定多平台直播觀看! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典

flutter

soroqer - WebSocket vs gRPC Stream:深度對比兩種流式通信技術

在實時通信與流式數據傳輸領域,WebSocket與gRPC Stream是最常被提及的兩項技術。本文將從協議設計、通信模型、適用場景等維度展開深度對比,幫助開發者理解兩者的本質差異與選擇邏輯。 一、前置知識:流式通信的核心需求 在分佈式系統中,流式通信主要解決兩類問題: 長連接實時交互:如聊天、監控數據推送、在線協作; 批量數據分塊傳輸:如大文件上傳/下載、日誌流同步、實時數據集同步。 W

grpc , websocket

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