摘要: 文件操作命令 find find 用于在指定目录下查找文件或子目录,如果不指定查找目录,则在当前目录下查找 命令格式:find path -option [-print] [ -exec/-ok command {} \ ]; 「print」:将匹配的文件输出到标准输出 「exec」:对匹配的文件作 阅读全文
posted @ 2021-07-24 15:06 牛奔 阅读(1320) 评论(1) 推荐(1)
摘要: 前言 作为 Kiro IDE 用户,我一直希望 AI 助手能在多个会话中记住项目上下文、架构决策和重要知识。 Gentleman-Programming 生态中的 gentle-ai + Engram 组合很好地解决了这个问题。 本文将详细介绍 gentle-ai 与 Engram 的关系,以及如何 阅读全文
posted @ 2026-04-29 10:30 牛奔 阅读(15) 评论(0) 推荐(0)
摘要: 什么是 CORS? 想象一下这个场景: 你的前端网站运行在 http://localhost:3000 你的后端 API 运行在 http://localhost:8080 当前端尝试调用后端 API 时,浏览器突然报错:Access to fetch at 'http://localhost:80 阅读全文
posted @ 2026-04-28 10:28 牛奔 阅读(13) 评论(0) 推荐(0)
摘要: 前言 谷歌验证码,碰到如下不知道该怎么解 Use the arrows to select the image where all the wires connect to matching icons 这个验证码的题目意思是: “请用箭头切换图片,选出那张所有电线都正确连接到相同图标的图片”(现在 阅读全文
posted @ 2026-04-28 09:36 牛奔 阅读(55) 评论(0) 推荐(0)
摘要: 前言 在 Go 开发者日常工作中,经常会遇到需要同时使用多个 Go 版本的情况——比如项目依赖旧版本的特性、测试新版本的兼容性,或者团队成员使用不同版本。手动管理 Go 环境不仅麻烦,还容易导致环境污染和切换不便。这时,一款轻量级的命令行工具就能大幅提升效率。 GVM:Go 版本管理器安装与使用指南 阅读全文
posted @ 2026-04-02 10:07 牛奔 阅读(175) 评论(0) 推荐(0)
摘要: 问题排查指南 问题描述 执行 go run main.go 时出现以下编译错误: # github.com/go-playground/validator/v10 ../../../go/pkg/mod/github.com/go-playground/validator/v10@v10.20.0/ 阅读全文
posted @ 2026-04-02 09:57 牛奔 阅读(16) 评论(0) 推荐(0)
摘要: 前言 在现代 Web 应用中,验证码是防止机器人攻击和恶意请求的重要手段。相比传统的图形验证码,滑动行为验证码具有更好的用户体验。本文将介绍如何使用 go-captcha 库在 Go 后端和 Vue 前端实现滑动验证码功能。 技术栈 后端:Go + Gin 框架 前端:Vue 3 + Element 阅读全文
posted @ 2026-03-31 21:00 牛奔 阅读(146) 评论(0) 推荐(0)
摘要: 介绍 Bun 是一个 超级快的 JavaScript/TypeScript 运行时,它不只是比 Node.js 快,还把包管理、测试、打包等功能全部打包到一个工具里。 https://bun.com/ Bun 到底是什么?它能取代 Node.js 吗? 简单来说,Bun 的目标就是成为 Node.j 阅读全文
posted @ 2026-03-31 20:47 牛奔 阅读(372) 评论(0) 推荐(0)
摘要: GOMAXPROCS 决定: 同一时间最多有多少个 goroutine 可以并行运行(占用 CPU)。 更准确说: 它决定 P(Processor)的数量。 一、回忆一下 GMP 模型 我们之前讲过: G = goroutine(任务) M = 线程(干活的) P = 调度资源(必须持有才能执行 G 阅读全文
posted @ 2026-02-08 23:03 牛奔 阅读(93) 评论(0) 推荐(0)
摘要: 前言 goroutine 初始栈很小(≈2KB),但可以自动变大。 那它是怎么做到的? 一、先说结论 goroutine 的栈扩容是通过: 在函数调用前做“栈空间检查”,如果不够,就调用 runtime 进行扩容。 关键机制是: stack guard + morestack 二、goroutine 阅读全文
posted @ 2026-02-07 22:11 牛奔 阅读(20) 评论(0) 推荐(0)
摘要: 前言 很多人听说: goroutine 很轻,可以开几十万 但为什么轻?到底轻在哪里? 我们从 内存、创建成本、切换成本、调度方式 四个维度拆开讲清楚。 一、最核心的一句话 goroutine 轻,是因为它是用户态调度 + 小栈 + 自己管理切换。 而线程: 是内核调度 + 大栈 + 内核切换。 差 阅读全文
posted @ 2026-02-07 22:02 牛奔 阅读(16) 评论(0) 推荐(0)