Coding
分类💻 代码的修罗场 | 从报错到部署的硬核战场
| 话题 | 用户 | 回复 | 浏览 | 动态 |
|---|---|---|---|---|
|
gopls MCP 使用总结:让 AI 更懂 Go 项目
AI
Coding
最近试了一下 Go 官方 gopls 内置的 MCP 支持,整体结论是:这东西很适合接入 Codex / Claude / Gemini 这类 AI 编程助手,尤其是在 Go 项目里做代码理解、重构和诊断时,比单纯靠 grep 读文件更可靠。 1. gopls MCP 是什么 gopls 是 Go 官方语言服务器。平时我们在 VS Code、Neovim、GoLand 里用到的跳转定义、查找引用、...
2026-05-12 17:23:24
0
28
|
|
0
|
28
|
2026-05-12 17:23:24 |
|
|
|
0
|
43
|
2026-05-08 21:01:45 |
|
展示一下部署的工具
Coding
GooseForum
Passion
#hot
GooseForum 在 1panel 部署倒是挺简单的,因为有时候还会开发一些功能,所以我这边是写了一个工具。 直接本地打包,上传压缩包,服务器解压,重启,一气呵成。 因为使用的 goreleaser ,所以打包的也没写啥逻辑,直接一行 exec 就行了。 前端相关的是 go generate ./ 这个被包括在 goreleaser 也不需要额外配置什么东西。 开发阶段的话 gorelease...
2026-04-23 23:31:45
0
392
|
|
0
|
392
|
2026-04-23 23:31:45 |
|
Go工具库硬核推荐
Coding
#hot
go 内存发布订阅 数据操作,数据操作很好用 限流 kv存储 类型转化 其中 watermill lo 是被 Gooseforum 引入使用的。可以对代码工程起到一定的帮助。
2026-04-20 18:31:32
0
374
|
|
0
|
374
|
2026-04-20 18:31:32 |
|
clash+charles 手机抓包
Coding
Passion
#hot
手机办公 + Charles 抓包:如何实现精准流量控制 在开发环境,如果手动设置wifi代理每次都比较麻烦,不用的时候还要关闭,所以使用。利用 Clash 的代理以及分流能力,可以实现: 业务域名精准抓包,其余流量各走各路。 脱敏配置模板 修改 server 地址为你的电脑 IP 即可使用: 为什么这套配置好用? 💡 双保险开关 开关 A (特定域名) :平时选 Charles-Mac 开启抓包...
2026-04-16 16:48:14
0
372
|
|
0
|
372
|
2026-04-16 16:48:14 |
|
稳定ai生成精灵图
Coding
AI
#hot
【独立游戏福音】完全不会美术,0成本用Ai也能做出丝滑的角色动画 这个视频是关于生成精灵图的,按照之前的思路大家一般是让 nano banana 生成排列好的精灵图,但是问题就在于,生成的精灵图未必位置固定,就是让他生成4* 2,结果前宽后窄,切割困难,又或者最后一帧和第一帧不够匹配,这个方案是先生图,然后让当前的视频模型,使用首尾帧来生成视频,最终转化为精灵图,这个方案的可靠性非常高,主要是当前...
2026-04-13 21:58:23
0
385
|
|
0
|
385
|
2026-04-13 21:58:23 |
|
|
|
0
|
478
|
2026-02-19 10:09:19 |
|
RPGL抽奖系统
Coding
Passion
吐槽大会
#hot
抽奖系统复盘, 代码的开发全是用trae+gemini 3 pro 或者 gemini 3 flash 以及 nano banana pro 生成素材。 其中 gemini3 生生成的用 close(channel) 进行广播的代码,也是异常风骚。 功能的实现是这样的 其中服务端(golang)实现所有的抽奖配置和抽奖逻辑,以及参与同事和大屏幕互动的消息总线。 客户端分为两个,admin负责管理库...
2026-02-05 19:02:50
0
538
|
|
0
|
538
|
2026-02-05 19:02:50 |
|
纪念我2026年废弃的第一个封装,zap替换自开发异步写入,留念一下
Passion
Coding
GooseForum
#hot
之前写的一个异步日志。准备使用zap代替。
2026-01-01 02:50:26
1
617
|
|
1
|
617
|
2026-01-01 02:50:26 |
|
GooseForum 年末大升级
Passion
GooseForum
Coding
#hot
GooseForum 年末大升级。 排除了 daisyui ,使用纯 tailwindcss + alpinejs + golang 模板。 本次升级也支持了 i18n 现在 新的用户卡片 还有更多体验中发现吧。 之前
2025-12-30 20:58:03
0
613
|
|
0
|
613
|
2025-12-30 20:58:03 |
|
go stdin stdout 双交互程序 (参考UCI)
Coding
#hot
UCI 是通用象棋接口 ,觉得比较有意思的点是因为 象棋引擎 在windows 上是一个一个exe可执行程序,gui程序和引擎之间的通讯是通过 标准输入输出进行交互的,也是一个比较有意思的加载方式。(不同于动态连接库或者socket) client server
2025-12-30 20:46:43
0
625
|
|
0
|
625
|
2025-12-30 20:46:43 |
|
纪念一下非 channel 的 golang 内存队列,不推荐使用
Coding
#hot
如果在 golang 中使用内存队列还是推荐使用 make(chan any,1024) 这种方式。纪念一下删除的代码,不推荐自己实现,如果有特殊需求的例外。
2025-12-30 20:46:43
0
604
|
|
0
|
604
|
2025-12-30 20:46:43 |
|
rooster-desktop 进程管理工具
Coding
Passion
#hot
今天用 trae 重构了一下 rooster , 之前 rooster gui 版本有一个很严重的缺陷,就是环境变量的问题,虽然 rooster 本身填写执行路径的时候是可以填写绝对路径,但是如果执行的程序内部本身有环境变量的依赖就会导致相关逻辑执行失败。 具体说就是,用 这样会导致调用的B程序被迫需要使用绝对变量并且还不一定成功,比如我的场景是 fyne 程序守护了一个 golang web服务...
2025-12-30 20:46:43
0
613
|
|
0
|
613
|
2025-12-30 20:46:43 |
|
|
|
0
|
604
|
2025-12-30 20:46:43 |
|
|
|
1
|
890
|
2025-12-30 20:46:43 |
|
Gin基于goth实现OAuth认证
Coding
GooseForum
#hot
Goth 是一个 golang 身份验证 Go Web 应用程序的包。 内置了许多站点的 oauth 的接入方式。 官网有提供 example 代码。 这里单独提一下 gin 的接入方式 初始化 接口封装 官网的例子是基于 github.com/gorilla 我们这里采用的是 gin 所以要注意 provider的设置方式, 路由 接口和回调 Github 接入 注意 Request user ...
2025-12-30 20:46:43
0
800
|
|
0
|
800
|
2025-12-30 20:46:43 |
|
web性能优化回顾
Coding
GooseForum
#hot
最快的 web 应该是在做什么 获取到请求,直接从内存中获取数据,然后返回最简短的结果。 一个web的生命周期带着什么 路由,逻辑/运行,查询/io, 压缩,传输 我们应该朝着最快的web的方向做整体的优化,同时还要保证优化后的请求和优化前的用户感受在一定范围是幂等。 优化方向也是拿空间换时间,和拿时间换空间两者结合的处理,以高速查询替代低速查询。 这里列出 GooseForum 所有的关于性能的...
2025-12-30 20:46:43
0
901
|
|
0
|
901
|
2025-12-30 20:46:43 |
|
|
|
1
|
876
|
2025-12-30 20:46:43 |
|
IBAMR中应力函数的 *ctx使用
Coding
#hot
的使用 首先,使用上下文指针,通过将指向部件编号的指针传递给应力函数,告知其正在操作哪个部件: (上下文可以是更复杂的对象,提供更多规范信息。) 最后,在设置应力函数时,可以执行以下操作: 首先创建一个包含零件编号的向量 因为如果调整向量的大小,vector::push_ back 可以在内存中移动数据 所以我们需要在单独的循环中执行此操作,因为我们最终会将指向这些数据项的指针传递给 PK1 应力...
2025-12-30 20:46:43
0
851
|
|
0
|
851
|
2025-12-30 20:46:43 |
|
IBAMR 仿真中启用结构
Coding
#hot
将模拟所需的所有结构都保存在输入文件中。在时间循环开始之前,先“停用”所需的结构(这里指的是鱼),然后在需要时(例如 t >T1)再次“激活”它。伪代码应该如下所示: method_ ops->getLDataManager()->inactivateLagrangianStructures(structure_ fish, level); int temp = time_ loop{ if(t>...
2025-12-30 20:46:43
0
904
|
|
0
|
904
|
2025-12-30 20:46:43 |
|
|
|
|