技术栈
go
Thinker QAQ
3 小时前
java
·
python
·
go
·
并发编程
·
channel
·
blockingqueue
·
message passing
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
在第零篇中,我们从多个并发执行单元如何交换数据、协调工作的角度,提出了两种典型的并发协作模型:前面几篇主要沿着 Shared Memory 展开,从 Mutex、Atomic 到 ReadWriteLock,解释了这些同步机制如何提供 Atomicity、Visibility 和 Ordering。
茉莉玫瑰花茶
10 小时前
后端
·
go
GO [ 标准库 · unsafe ]
unsafe 是 Go 标准库中最容易被误用的包。它允许程序绕过一部分类型安全规则,查看任意类型的内存表示、计算字段偏移、把指针转换成另一种指针,甚至构造字符串和切片视图。
人人都是软件工程师
15 小时前
go
17-反射:在运行时观察和操作类型
🔖 Go 语言学习教程 · 第 17 篇📌 本系列基于 Go 1.23 编写,代码兼容 Go 1.21+
人人都是软件工程师
15 小时前
go
19-context 包详解:让并发任务可取消、可超时
🔖 Go 语言学习教程 · 第 19 篇📌 本系列基于 Go 1.23 编写,代码兼容 Go 1.21+
miofly
15 小时前
开源
·
go
·
github
GitHub 今日推荐|open_scion:为AI代理设计的并发版本控制
项目地址:github.com/feder-cr/op…open_scion 是 Scion 设计的开源实现,让数千个 AI 代理在同一代码库并发工作。每个代理只获取修改路径的文件,提交直接落地到主分支,省去克隆等待和合并队列。fork 自 GitLab 的 Gitaly,用 Go 重写服务器端逻辑,MIT 许可证,2026 年 10 月 15 日公开,当前版本 0.1.0,Star 数 696。
敲代码的玉米C
1 天前
go
编辑器开始懂 Git:改动、提交图和 worktree
砚最初只打算做少量 Git 标记,更复杂的操作留给命令行。随着 Mayoi 的能力进入项目,Git 成了工作台里一个实际可用的部分。
敲代码的玉米C
1 天前
go
我想用 Go 写个编辑器,先把「轻量」这件事想明白
最近开始做一个自己的编辑器,叫「砚」,命令行名字是 yan。出发点很具体:读代码、翻中文 Markdown、偶尔改几行时,我想要一个打开就能用的小工具。同时也想借这个项目深入学 Go,碰一碰文本存储、并发、文件系统这些平时写前端不太会完整接触的东西。
敲代码的玉米C
1 天前
go
让工作流接起来:文件拖放与 Git 冲突处理
编辑器里的很多不顺手,发生在功能之间。能新建文件,却不能把已有文件复制进来;能看提交历史,却遇到冲突后不知道下一步在哪。alpha.4 这一轮,砚开始把这些路径接得更完整。
敲代码的玉米C
1 天前
go
中文输入不是「能打出汉字」就算完成
砚最开始就要读中文 Markdown,也要输入中文。这个需求如果等界面都搭完才补,后面会不断在坐标、删除和撤销上返工。
敲代码的玉米C
1 天前
go
把熟悉的操作带回来:快捷键和 Markdown 预览
窗口和预览包有了之后,砚继续补一些每天会碰到的功能。这一篇放在一起的两件事,是自定义快捷键和 Markdown 预览。
敲代码的玉米C
1 天前
go
从打开一个文件,到打开一个项目
前几篇把文本内核、终端闭环和中文输入讲完了。到了 M3,砚要解决一个更贴近日常使用的问题:我通常打开的是一个项目,接着在一堆文件之间来回找。
敲代码的玉米C
1 天前
go
终端里的小细节:选中复制、截图粘贴和项目提醒
到了 alpha.5 和 alpha.6,砚开始集中补终端里的几个细节。它们不像“接入窗口前端”那样显眼,但实际工作时使用频率很高:选中输出就能复制,全选也能复制,截图能交给终端里的 Claude Code,后台项目的任务有变化时能提醒。
敲代码的玉米C
1 天前
go
一个内核,两张脸:先把终端编辑器跑起来
文本能改、能撤销之后,接下来要把它变成一个能操作的程序。砚最先接的是 tcell 终端前端。早期闭环很直接:打开文件、移动光标、输入、保存,再退出。后来 macOS 窗口接进来时,这些能力仍然来自同一个内核。
敲代码的玉米C
1 天前
go
编辑器的第一块砖:文本、快照和撤销
接着上一篇,砚决定先做一个不依赖界面的 Go 内核。真正开始写时,第一个问题很朴素:文件读进来以后,放在哪儿?用一个大字符串当然能显示内容,但一旦加上插入、删除、多光标和撤销,数据怎么组织就开始影响后面所有功能。
敲代码的玉米C
1 天前
go
路线拐了个弯:接入 MyGo,借鉴 Mayoi
如果只看砚最初的设计文档,会以为它应该一直沿着“终端 → Gio → LSP 和 Git”往前走。实际开发在 M3 后拐了个弯:看到 Mayoi 之后,窗口前端改用 MyGo,同时借鉴和移植了 Mayoi 的一批编辑器能力。窗口和 Git 都比原计划更早进入了项目。
敲代码的玉米C
1 天前
go
写到 alpha.6:现在有什么,还有哪些账没还
这一组开发日志先记到 2026 年 10 月 14 日,提交历史截止 063fc58,这一截止点最近的本地版本标签是 v0.1.0-alpha.6。
敲代码的玉米C
1 天前
go
自动换行和多项目:看着是 UI,背后都是状态
自动换行、新建窗口、项目标签,乍一看都像是加个菜单选项的功能。在砚里做起来之后,它们分别牵动了三个基础概念:什么算一行,什么属于一个窗口,什么需要跟着项目保存。
敲代码的玉米C
1 天前
go
第一次打出 DMG:能运行,离能发布还有多远
当砚能在开发目录里打开窗口,我很自然地想把它装进「应用程序」,像一个正常工具那样用起来。第一次 macOS 预览发布,让这个想法多了不少具体步骤:运行时库、第三方声明、版本号、安装包、签名,以及从下载文件重新走一遍安装。
敲代码的玉米C
1 天前
go
功能越多,越要小心那一次保存和替换
接入窗口之后,砚陆续有了行编辑、查找替换、跨文件搜索和自动保存。看上去,编辑器已经越来越完整。但第一次预览发布前,最重要的一轮工作却是把几个数据安全问题找出来:自动保存可能盖掉外部修改,旧搜索结果可能跨工作区返回,单条替换可能操作过期的位置。
我的div丢了肿么办
2 天前
后端
·
go
go语言通过反射来操作结构体中的数据
用 reflect 包,判断 Kind() 是否为 reflect.Struct{Name string json:"name" form:"userName" 0 [0] false} 获取字段名: Name 获取字段类型: string 获取字段标签: name 获取字段标签: userName