收藏 / 列表

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

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

go , 後端

蘇琢玉 - 構建一個簡潔優雅的 PHP 參數驗證器 —— php-schema-validator

在日常開發中,參數校驗是繞不過的一道坎。我們常常需要確保用户傳入的數據符合預期格式,比如必填字段、數據類型、最大長度、郵箱格式等等。雖然許多 PHP 框架都內置了驗證器,但在開發輕量服務、非框架項目,或需要在業務中後端進行結構化數據校驗時,我總覺得現有方案不夠靈活、冗餘較多。 於是,我動手寫了一個開箱即用、易擴展、輕量級的參數驗證器:php-schema-validator 為什麼要造這個輪子?

composer , php

木子君_求贊 - 帶緩存的Learned Sort 2.1排序算法

下面給出一份“一句話就能落地”的導讀: Learned Sort 2.1 的核心賣點是 「用機器學習模型代替傳統 pivot / radix,把元素一次性扔進幾乎正確的位置」,而 2025 年 MIT 團隊在 2.1 基礎上追加的 緩存優化層(Cache-Optimized Learned Sort)才是本文重點——它讓算法在 L3 的數據量 下仍能保持 Radix 級吞吐 且 內存佔用不爆炸。

排序 , 排序學習 , c++

XHunter - Golang筆記之Redis

本文首發於公眾號:Hunter後端 原文鏈接:Golang筆記之Redis 這一篇筆記主要介紹 Golang 連接和使用 Redis,以下是本篇筆記目錄: 目錄 1、安裝模塊 2、連接 Redis 3、字符串 1. 字符串寫入 2. 字符串讀取 4、哈希 1. 寫入 1) 單字段寫入

go , 後端

筱倩 - 如何有效提升代碼覆蓋率:從單元測試到集成測試的實踐指南

Go語言代碼覆蓋率實現 一、什麼是代碼覆蓋率   代碼覆蓋率是軟件測試中的一種白盒測試度量指標,表示程序源代碼中被執行的比例。簡單來説,就是“我的測試到底跑過多少代碼”。 覆蓋率常見的幾種標準: 語句覆蓋(段覆蓋、基本塊覆蓋):每一行代碼是否至少執行過一次 分支覆蓋:程序中的每個判斷(if/else)是否都執行過true和false兩種結果 條件覆蓋:判斷語句中的每個子條件是否都覆蓋到tr

go , 後端

axiaoxin - Ghostty 終端默認快捷鍵列表

文章目錄 Ghostty 終端默認快捷鍵列表 基本操作 分屏操作 光標和選擇操作 其他操作 物理按鍵綁定 特殊按鍵説明 注意事項 結語 Ghostty 提供了豐富的默認快捷鍵,用户可以通過這些快捷鍵快速執行各種操作。以下是 Ghostty 的默認快捷鍵列表,這些快捷鍵可以通過keybind配置進行自定義。 Ghostty 終端默認快捷

編輯器 , vim , 程序員 , go , 前端

Ansurfen - Hulo 語言開發分享 —— 調試器是如何工作的?

書接上回,在《Hulo 編程語言開發 —— 解釋器》一文中,我們介紹了Hulo 編程語言的解釋器。今天,讓我們深入探討編譯流程中的第四個關鍵環節——調試器。 調試器是編程語言開發中不可或缺的工具,它允許開發者暫停程序執行、檢查變量狀態、單步執行代碼等。而它的核心是斷點機制,它允許程序在特定位置暫停執行,並查看環境情況。 斷點 斷點本質上就是一個位置標記: type Breakpoint struc

解釋器模式 , 教程 , 知識 , 程序員 , Git

gvison - Sponge與DeepSeek協作:一種突破傳統開發後端服務的解決方案,打造高效後端開發新範式

背景介紹 技術演進背景 隨着 DeepSeek 等開源 AI 工具的崛起,智能編程助手正在重塑軟件開發流程。對於開發者而言,AI 輔助編碼已為生產力工具。雖然目前 AI 尚無法直接根據需求文檔和指定技術棧生成完整生產級項目,但在特定場景下已展現出驚人潛力:基於詳細邏輯描述生成代碼片段準確率可達 80%以上。目前AI 在項目的工程化能力方面仍顯不足,而Sponge框架則在工程化能力表現出色,兩者恰好

代碼生成 , deepseek , go , Web

apocelipes - C++23的out_ptr和inout_ptr

c++23新增了一些智能指針適配器,用來擴展和簡化智能指針的使用。 這次主要介紹的是std::out_ptr和std::inout_ptr。這兩個適配器用法和實現都很簡單,但網上的文檔都比較抱歉,還缺少一些比較重要的部分,因此單開一篇文章記錄一下。 out_ptr 首先從功能最簡單的out_ptr講起。 std::out_ptr其實是一個函數,返回一個類型為std::out_ptr_t的智能指針適

後端

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

在 Go 語言中,數組(array)和切片(slice)是兩種不同的數據結構,它們在內存分配機制上存在着顯著差異。深入理解這些差異及原理並恰當使用,能夠幫助我們提高代碼的執行效率。 在使用上,由於語法糖的存在,很多初學者對於二者並不敏感。數組的寫法是 [n]int,切片則是 []int,區別僅在於是否在 [] 中體現其長度。 從實現上講,slice 是 array 的一種封裝再實現,將長度不可變的

性能優化 , 內存 , 數組 , slice , go

探索雲原生 - ArgoWorkflow教程(八)---基於 LifecycleHook 實現流水線通知提醒

本篇介紹一下 ArgoWorkflow 中的 ExitHandler 和 LifecycleHook 功能,可以根據流水線每一步的不同狀態,執行不同操作,一般用於發送通知。 !--more-- 1. 概述 本篇介紹一下 ArgoWorkflow 中的 ExitHandler 和 LifecycleHook 功能,可以根據流水線每一步的不同狀態,執行不同操作,一般用於發送通知。 比如當某個步驟,或

devops , 雲原生 , cicd , jenkins , go

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

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

php , gin , go , thinkphp

vistart - 在 Ubuntu 22.04 中編譯 tensorflow 2,並調試源代碼

引言 本文描述如何在 Ubuntu 22.04 中編譯 tensorflow 2 源碼,以及如何生成 Python 代碼包,並能夠調試 tensorflow 源碼,包括單步執行、觀察變量和表達式等能力。 準備工作 請參照各自官方文檔準備所需環境,在此不再贅述。 Ubuntu 22.04, Windows 用户推薦使用 WSL 2。 Python 3.10 ~ 3.12,安裝在 Ubuntu

編譯 , tensorflow , 源代碼 , 調試 , Ubuntu

煩惱的沙發 - .NET語言大舞台,有才你就來

.NET 是微軟推出的軟件開發框架,它提供了一個運行時環境以及一組用於在 Windows 操作系統上構建和運行應用程序的庫和工具。簡而言之,.NET就是個菜市場,裏面賣各種菜,什麼C#,F#,VA,VB等等 C# (C Sharp) - 絕對的頂樑柱 這是啥? 這就是.NET的親兒子,背後有資本。微軟當年看Java不爽,就集百家之長,搞出了C#。結果青出於藍,現在已經是非常現代化、功能超強的

觀點 , c# , .net

codechen8848 - 免費高顏值!一款跨平台桌面端視頻資源播放器!

大家好,我是 Java陳序員。 今天,給大家推薦一款跨平台的桌面端視頻播放器,免費高顏值! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 ZyPlayer —— 一款免費易用且打造的全功能媒體播放器,基於 electron-Vite 框架,結合 TDesign 組件庫和 Vue3 全家桶,致力於提供流暢、高效的跨平台娛樂體驗。

前端

Hunter - Golang基礎筆記三之數組和切片

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記三之數組和切片 這一篇筆記介紹 Golang 裏的數組和切片,以下是本篇筆記目錄: 數組定義和初始化 數組屬性和相關操作 切片的創建 切片的長度和容量 切片的擴容 切片操作 1、數組定義與初始化 第一篇筆記的時候介紹過數組的定義與初始化,這裏再介紹一下。 數組是具有固定長度的相同類型元素的序列。 這裏有兩個點

數組 , slice , 擴容 , 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