自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1065)
  • 收藏
  • 关注

原创 Claude Code写哪种变成语言最快?

AI 编码性能,已经与运行时性能、开发者生态系统一样,成为了一个值得考量的语言属性。在选择一门语言时,我们不仅要问:“它跑得快吗?”、“它的生态成熟吗?”,还要考虑:“AI 用这门语言完成任务,是高效还是费力?Go 可能不是 AI 生成效率的冠军,但它在自己的细分领域(生产级服务)中依然是出色的。哪个阶段用哪种语言,如何利用各自的优势来降低时间和资金成本。这已经超越了单纯的语法争论,成为了工程策略的一部分。

2026-08-01 05:00:00 98

原创 Zed 的分支选择器进化:当“视觉”开始辅助“决策”

在 Zed 最近的更新中,zed 对分支选择器(Branch Picker)进行了一系列看似微小但影响深远的改进。它通过,将一个功能性的工具,升级为了一个更符合直觉的决策辅助界面。这次更新的核心,是让分支选择器从“文本列表”进化为了“信息面板”。

2026-08-01 05:00:00 39

原创 我用 `slog` 重构了服务的日志基础,结果。。。

zap经过几个月的生产验证,我们现在对所有新启动的服务,都将slog作为默认的日志解决方案。零依赖:无需引入第三方库,减少了维护负担和安全风险。标准化接口:解决了我们长期以来因日志库不一致而导致的适配层混乱问题。足够的性能和出色的扩展性:它满足了我们的性能需求,并且在需要自定义时提供了非常友好的扩展点。至于那些已经稳定运行、基于zap的老服务,我们并没有计划去迁移。迁移的成本(修改代码、更新测试、验证解析)是实际存在的,而收益(主要是“减少一个依赖”)在当前阶段并不足以让我们去冒险改动生产代码。

2026-07-31 05:00:00 482

原创 资深开发者的 Git最常用的git命令

从reflog到tag,这十个命令共同构成了一个资深开发者对代码历史的控制力。Git 的力量在于,它提供了足够多的工具,让你既能优雅地应对复杂性,也能在灾难发生时有可用的逃生通道。真正的掌握,不仅在于知道每个命令能做什么,更在于理解每个命令在什么时机使用、会带来什么后果。当你下次在终端输入git时,不妨想一想:你是在被动地提交代码,还是在主动地管理历史?

2026-07-31 05:00:00 293

原创 Zed 新特性:为Text Finder增加默认快捷键

具体来说,它清理了 macOS 上cmd+alt+f这个快捷键的混乱状态,将其从旧的“在缓冲区中部署替换”(DeployReplace)功能中解放出来,并明确赋予了新的“文本查找器”(Text Finder)功能。这是一个关于。

2026-07-31 05:00:00 177

原创 RustRover 2026.2官宣:正式支持 Axum

这不仅仅是添加了几个代码补全,而是标志着 JetBrains 开始深入理解 Rust 后端开发的核心模式。

2026-07-30 05:00:00 842

原创 VS Code官宣全新UI

Visual Studio Code 的 1.129 版本,于 2026 年 7 月正式发布。它带来了一系列看似温和却意义深远的更新。最引人注目的是一个。

2026-07-30 05:00:00 175

原创 Go如何做性能优化?

过去很长一段时间,我们的性能优化流程几乎是一个固定模板:盯着 CPU 曲线,找出热点,优化代码,然后重复。内存?只要容器没有被 OOMKilled(因内存耗尽被杀死),我们就认为它“没问题”。但“没问题”和“高效”之间,其实隔着一段很长的距离。直到我们决定像重视 CPU 一样重视内存,在几个核心 Go 服务上做了一次深度的内存剖析(Memory Profiling),才发现我们竟然在。这些浪费不是来自什么高深的技术债务,而是来自我们早已司空见惯的“常规写法”。

2026-07-30 05:00:00 280

原创 Zed 的 Git 历史上下文菜单:当“一致性”成为效率的基石

2026年7月,Zed 新增了一个看似微小却意义重大的 新特性。它将 Git 图谱(Git Graph)视图中的提交上下文菜单,成功“移植”到了 Git 面板的“历史”(History)选项卡中。这不仅仅是一次代码复用,它解决了 Zed Git 工作流中一个关键的交互断层,让整个体验变得更加统一和高效。

2026-07-29 05:00:00 592

原创 Zed 的 Git 面板革命:当“分组”开始理解你的工作流

Zed 的 Git 面板正在从一个“显示状态”的工具,演变为一个“管理工作流”的平台。分组的这个新特性是这个演进过程中的一个坚实里程碑。它通过一个清晰的分组视图,配合上下文感知的操作,降低了日常 Git 使用的认知阻力。它不是一个革命性的特性,但它的存在,让 Zed 向着“那个你愿意在其中完成一切编码任务的编辑器”的目标,又迈进了一步。

2026-07-28 05:00:00 214

原创 Go 后端开发的五条“非典型”建议:从实战中得来的教训

很多 Go 项目陷入了一个误区:为每个结构体都预先定义一个接口,美其名曰“便于扩展”。这往往导致无谓的复杂性。接口应该由“使用者”来定义,而不是由“实现者”来提供。这被称为“接口污染”。// 过度设计:在一个数据层包中,为单个实现定义大而全的接口// 更好的方式:在“需要”它的地方定义// 这里只声明它实际需要的方法// 而在数据层,只暴露具体实现这种“小接口”模式(Go 标准库io.Reader就是典型)能极大地降低耦合,让测试变得轻而易举(你只需为userSaver。

2026-07-27 05:15:00 140

原创 初级工程师写大Service,高级工程师怎么破?

将 Go 项目从单一的“上帝服务”演进为用例驱动的架构,并非一蹴而就,但它带来的收益是长期的:代码变得可预测(每个文件只做一件事)、可隔离(测试用例独立且快速)和可演进(新增功能不会破坏旧功能)。这五个模式——用例类、门面、自验证输入、领域事件、端口与适配器——共同构成了一套强大的组合拳,帮助你在 Go 中构建出能优雅应对复杂业务增长的、真正的生产级系统。这不仅是代码的重构,更是一种关于如何管理复杂性的思维转变。

2026-07-27 05:00:00 323

原创 Zed 的 LSP 结果选择器:当“查找”变得可交互

它让“查找引用”这个高频动作,从一项杂务,变成了一次流畅、可控的探索。Zed 团队将这种交互模式从文件查找延伸到 LSP 领域,是在构建一个。

2026-07-27 05:00:00 558

原创 Go 语言的“平庸”胜利:当设计拥抱人性的平均值

当然,Go并非完美。泛型姗姗来迟,nil的陷阱依然存在,并发安全需要开发者自己把控。它并没有消除复杂性,而是将复杂性从语言语法层面,转移到了程序设计与架构层面。Go相信,后一种复杂性更容易被团队理解和审查。Go没有承诺让你写出最优雅的代码,但它承诺了让整个团队——无论其成员水平如何——都能写出健壮、可维护、能长期运行的软件。在编程语言的世界里,不断有语言试图提高“天才”的上限。提升整个团队“普通”的下限。这或许是对“生产环境”和“团队协作”最深刻的尊重。

2026-07-26 05:00:00 395

原创 Go 的八年“短函数”长跑:当简洁遇上显式

如果 Go 1.27 真的引入了短函数字面量,这将是自泛型以来最重要的语法变化。它标志 Go 在“显式”与“简洁”的天平上,微妙地向后者的方向移动了一格。八年的争论并非毫无意义。它确保了最终进入语言的特性,是经过千锤百炼、被大多数社区成员所接受的。在快速变化的软件世界里,Go 的这种“慢”,恰恰是其长期稳定性和生命力的保证。

2026-07-25 05:15:00 197 1

原创 PyCharm 2026.2正式发布:debugpy 成为默认调试器

在 PyCharm 2026.2 的众多更新中,将的决定,可能看起来像是一个不起眼的技术选型变更。但这背后,是 JetBrains 对 Python 调试体验的一次深刻反思和重大升级。

2026-07-25 05:15:00 280

原创 从 CRUD 到生产就绪:Go 后端必须掌握的五个分布式系统模式

这五个模式并不是你需要立即上马的“金科玉律”。Outbox解决了本地事务与消息发送的原子性问题。Saga解决了跨服务长事务的协调问题。解决了高并发读取的性能问题。解决了分布式环境下的重复请求问题。CQRS解决了单一模型无法同时满足读写优化的问题。Go 语言凭借其简洁的语法、强大的并发模型(goroutine)和丰富的生态(GORM, go-redis, kafka-go),是实践这些模式的绝佳语言。真正的挑战在于识别出你系统当前面临的真正瓶颈。

2026-07-25 05:00:00 406

原创 从Goland看Go 逃逸分析:从“编译器魔法”到“可观察的优化”

逃逸分析是 Go 编译器在编译时执行的一个优化决策过程。一个值在函数返回后,是否仍然可能被引用?如果能证明不会被引用,该值就被分配在**栈(Stack)**上。栈分配极其廉价,随函数返回自动回收,无需 GC 参与。如果无法证明(即可能逃逸),为了内存安全,该值就被分配到**堆(Heap)**上。堆分配开销更大,且需要 GC 来回收,会增加运行时开销。u := User{Name: name} // u 本应在栈上return &u // 但它的指针被返回了!

2026-07-25 05:00:00 356

原创 Zed 爆出了一个打bug:text finder占用内存数十个G!

前几天,我使用zed打开了一个积累了很多代码文件的项目,开始去通过关键字找出bug的位置,但是当我输入func之后,zed就无缘无故的卡死了。过了几天,我又更新了zed版本,发现再次搜索就没有问题了。最后我才发现zed官方也发现了这个问题,并且了修复文本查找器因无限制内存使用导致的崩溃。据说这个bug 可能导致 Zed 内存占用飙升至“数十GB”并最终崩溃。这是一个关于性能优化的经典案例,它揭示了在构建高性能编辑器时,一个看似微小的数据结构选择,如何引发灾难性的后果。

2026-07-24 05:15:00 296

原创 Zed 的选择器多选:当“打开”从一次一个变成批量操作

在 Zed 的新版本中,zed 为文件选择器(File Picker)和文本选择器(Text Picker)引入的,是一个看似简单却深刻改变工作流效率的功能。它解决了长期存在的“一次只能打开一个文件”的摩擦点,让批量操作变得前所未有的流畅。

2026-07-24 05:00:00 391

原创 Zed 文本查找的文件折叠:当搜索结果的“组织”成为新战场

一个代码编辑器是否成熟,不仅在于它能完成多么复杂的任务,更在于它如何帮助你管理日常任务中产生的“纷乱”。文本查找是每天都会发生的动作,其结果列表的清晰度直接影响着调试、学习和探索代码库的效率。我们不仅关注编辑器的速度,同样关注你在其中处理信息的舒适度和流畅度。这种对细节体验的持续打磨,正是 Zed 从“有潜力的新星”走向“可靠的日常伙伴”的重要一步。在追求极致性能的同时,Zed 正在建构一个同样细致的交互世界,而文件折叠只是这个世界中一块坚实的基石。

2026-07-23 05:15:00 330

原创 Zed 更新按钮上的进度条

更新进度条不会让 Zed 变得更快,也不会让代码写得更好。但它会让正在等待更新的你,少一分焦虑,多一分确定。编辑器之间的竞争,最终会从"谁的功能更多"走向"谁的使用体验更细腻"。Zed 正在这个方向上稳步前进,而 #60294 就是这条路上一个微小但坚实的脚印。

2026-07-23 05:00:00 844

原创 不要像写Java一样写Go

我曾经维护过一个创业公司的 Go 服务,上线一年多,

2026-07-22 05:00:00 721

原创 Zed 项目符号搜索迎来预览窗格:模糊搜索的“最后一公里”

2026年7月中旬,Zed 合并了 PR #59863,为添加了一个实时预览窗格。当你在符号列表中上下移动选择时,右侧会立即显示该符号所在文件的代码,并将声明行高亮并居中。这是一个看似顺理成章,实现起来却颇费周折的功能。它的出现,让 Zed 的符号搜索体验终于追平了编辑器领域的一流水准。

2026-07-22 05:00:00 332

原创 高质量代码的最佳模式

那些让人享受的代码库,不是架构最好或测试最多的那些。而是我可以理解某人为什么做了一个决策,而不需要去问他本人的那些。因为大多数时候,我问不了他们。他们在开会,或者离职了,或者是凌晨两点系统崩了。我只有代码。如果代码不能告诉我为什么,那我只是在猜。

2026-07-21 05:00:00 295

原创 Go 1.27 泛型方法正式落地:十年极简主义的妥协与进化

Go 1.27 泛型方法的正式落地,不是极简主义的落幕,而是 Go 语言走向成熟的关键一步。十年坚守极简,让 Go 站稳了服务端、云原生的主流赛道;如今适度放开语法能力,补齐工程短板,让 Go 不再局限于简单脚本和基础服务,能够支撑更复杂、更优雅的大型项目架构。真正的极简,从来不是固步自封的残缺,而是删繁就简、按需进化、取舍有度。这,就是新时代的 Go。

2026-07-20 05:00:00 607

原创 Zed 的 Git 图谱进化:当“看得见”的列,也可以“关得掉”

VS Code 的 Git 图谱扩展(如 GitLens)早已提供了高度定制化的列显示。Zed 作为后来者,没有理由不在基础体验上做同样好的工作。#59850 是 Zed 在 Git 体验完整性上的一块重要拼图。它不激动人心,但足够体贴。当 Zed 开始认真对待这些“体贴”的细节时,它就在为成为开发者“下一个十年的编辑器”铺平道路——一个不仅跑得快,也懂你心思的伙伴。

2026-07-20 05:00:00 297

原创 IntelliJ IDEA 2026.2 的依赖补全:当 IDE 成为你的 Maven 中央仓库

在 IntelliJ IDEA 2026.2 的更新列表中,“Dependency completion”(依赖补全)是一个容易被忽略,但极具变革意义的功能。。

2026-07-20 05:00:00 345

原创 7个Go新手极易反复踩的生产级致命错误!

很多刚上手Go 1-2年的开发者会有一种错觉:语法简洁、没有复杂类与继承,写业务会很省心。但线上跑久了会发现,Go的极简特性不会帮开发者掩盖工程坏习惯,反而会把疏漏无限放大。从业多年维护数十套Go线上服务,从初创小项目到分布式数据管道,我发现不管是自学新手、转行后端,还是写过不少业务但缺少规范约束的工程师,总会重复踩7类高度统一的坑。这些错误不是语法报错,编译完全能通过,本地测试偶尔能跑通,上线后却会出现内存暴涨、接口卡死、日志无有效线索、并发泄漏等隐性故障。

2026-07-19 05:00:00 475

原创 Zed File Finder进化:当“快”不再是唯一答案

2026年6月,Zed编辑器新版本宣布了一项看似不起眼却意义深远的更新:File Finder,并且还支持多个新功能,比如支持顺序无关的模糊匹配,picker框可拖动大小。这意味着搜索和将得到相同的结果。对用户而言,这不过是“终于不用记顺序了”的小确幸;但对编辑器设计而言,这折射出Zed与VS Code在“工具哲学”层面的根本分歧。

2026-07-19 05:00:00 238

原创 我的 Go 开发工具箱

改几行代码Ctrl+C停掉服务go run .重新启动等 3~5 秒编译完成发送测试请求发现忘记改某个地方,回到步骤 1一天下来,光“等待重启”这件事,就消耗了相当可观的时间碎片。Air 解决的就是这个问题——它监听文件变化,自动重编译、重启,整个过程在后台完成。当你切换到浏览器发送请求时,服务已经准备好了。但 Air 真正让我觉得“值”的,是它的自定义构建命令功能。

2026-07-19 05:00:00 298

原创 2026 Go 生态八大核心库深度解析

Go 语言自1.26版本更新后,泛型、标准库能力持续补强,云原生、微服务、可观测、数据层、测试工具链形成完整闭环。市面上库数不胜数,但真正能落地、解决业务核心痛点的工具屈指可数。本文精选8个2026年生产级必用Go库,,同时结合后端开发实战分享选型思考、优劣取舍。基础Web层:Gin是所有Go项目打底框架,无替代方案;分布式可观测:OpenTelemetry-Go微服务必装,排查效率提升数倍;日志标准化:slog标准库零依赖,新项目统一规范;

2026-07-18 05:00:00 569

原创 Zed 的 Git 暂存区更新

2026年7月,Zed 优化了git部分暂存的可视性。。对于长期使用 VS Code 的开发者来说,这几乎是 Git 面板的“出厂设置”。但在 Zed 这里,这件事的落地过程,恰好揭示了 Zed 与 VS Code 在工具哲学上的一个深层分水岭。

2026-07-18 05:00:00 176

原创 IntelliJ IDEA 2026.2 的 Logpoints:当调试告别“println重启”

在 IntelliJ IDEA 2026.2 的众多新特性中,“Logpoints ” 可能不是最光鲜的,但它绝对是最能体现 IDE 深层智慧的功能之一。println。

2026-07-18 05:00:00 377

原创 别堆砌中间件充门面:我们砍掉Redis/Kafka/ES,整套业务只用PostgreSQL落地实践

基础设施的价值是支撑业务,而非用来展示技术广度。不用为了架构看上去“专业”堆砌Redis、Kafka、Elasticsearch。当业务体量尚未达到专用中间件的性能门槛,PostgreSQL完全可以一站式承载缓存、消息、异步任务、全文检索全部能力,大幅降低运维复杂度、释放研发人力。技术优雅的本质不是组件繁多,而是恰到好处的简单。只有当业务负载明确证明单库无法支撑时,再按需引入专业中间件,才是成熟、务实的架构选型思路。

2026-07-17 05:15:00 384

原创 Go 新提案:maps.Same

Go 的 map 是引用类型,底层指向哈希表,同一哈希表的多个变量共享数据,修改任意一个都会同步影响所有引用。长期以来社区存在一个经典痛点:语言层面仅允许 map 和 nil 判等,无法直接判断两个 map 变量是否指向同一个底层哈希表。Go 1.28 将正式落地maps.Same标准库函数,为开发者提供原生、安全、零开销的 map 引用相等判断能力,补齐标准库长期缺失的能力缺口。本文结合官方提案、底层实现、业务开发场景,拆解该特性的价值、历史方案缺陷与实战用法。maps.Same。

2026-07-17 05:00:00 485

原创 Zed 的搜索体验进化:从“光标猜词“到“记忆优先“

工具应该在多大程度上"帮助"用户?VSCode 的答案是"尽可能多",JetBrains 的答案是"只在被明确要求时"。Zed 选择了后者。对于每天要进行几十次搜索操作的开发者来说,一个不会随意篡改你查询内容的搜索框,可能比十个智能提示都更有价值。

2026-07-16 05:00:00 183

原创 zed 新特性:终端选中自动复制

编辑器的竞争早已不止语法高亮、代码补全这类显性能力,终端检索、选中复制、搜索历史这类每日高频微小交互,才是长期编码舒适度的分水岭。Zed 的双参数设计证明:好的开发工具不应只提供基础功能,更要贴合开发者真实工作流,从细节减少无意义重复操作。VSCode与IDEA受架构与产品定位束缚,短期内无法补齐这类精细化终端交互短板,对于运维、后端从业者,Zed在终端体验上具备不可替代的优势。

2026-07-16 05:00:00 547

原创 Zed 新特性:“Expand All”:一个快捷键,两种哲学

Zed 的这个 新特性,就像是在一个已经打磨得很光滑的工具上,又精准地加了一个小小的凹槽。它没有改变工具的外观,但当你把手指放上去时,你会发现它刚好卡在那里,用起来更顺手了。它告诉我们,好的工具设计,不只是“把功能做出来”,更是“把功能用最符合产品气质的方式,放到用户需要它的地方”。在 Zed 这里,这个“气质”就是:界面极简,键盘优先,且相信用户有学习和成长的能力。这,或许才是开发者工具能够让人爱不释手的真正秘诀。

2026-07-15 05:00:00 181

原创 VSCode新特性:操作系统级快捷键

想象一下这个场景:你正在浏览器里查阅文档,突然想打开VSCode的AI代理窗口问个问题。你的手从键盘上抬起,移动鼠标到Dock栏,点击VSCode图标,等待窗口获得焦点,然后再按下——整个过程打断了你的思路。或者反过来,你正在VSCode里写代码,想快速暂停Spotify的音乐,却发现必须先离开编辑器,切换到音乐应用,再按空格键。。大多数应用的快捷键,只有在该应用获得焦点时才能生效。VSCode最新版本,正是为了解决这个长期存在的痛点而生。。

2026-07-15 05:00:00 505

Python Django 2024 年的生态报告

Python Django 2024 年的生态报告

2024-11-04

推荐几个国外 Java 大佬的优质博客.docx

推荐几个国外 Java 大佬的优质博客.docx

2024-11-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除