写给2025年的我:在保持真我与适应社会之间找到平衡点

在这个复杂多变的世界里,每个人都以自己独特的方式存在着,而我,则被周围人贴上了“憨”、“固执”这样的标签。面对这些评价时,我的内心经历了从最初的困惑不解到后来逐渐接受的过程。起初,我试图去改变自己,让自己看起来更加圆滑、世故,但很快我发现,这样的尝试不仅让我感到疲惫不堪,更重要的是,它违背了我的本心——那个渴望真实表达自我的灵魂。

平台工程:开发者体验的下一个十年

博客分类: 

 

引言:从"能用"到"好用"的范式转变

 

2015年,你的团队刚刚完成了 DevOps 转型,开发人员终于可以自己部署应用了。但十年后的今天,你会发现工程师们面对的不再是"如何部署"的问题,而是"在20个工具之间如何协调"的困境。

这就是平台工程(Platform Engineering)兴起的背景——当 DevOps 把开发者从"等待运维"解放出来后,新的问题出现了:认知负担过载

今天我们来聊聊,为什么说平台工程不是 DevOps 的替代品,而是开发者体验(Developer Experience, DX)进化的必然结果,以及这对技术管理者意味着什么。

 

一、DevOps 的胜利与困境

 

 

DevOps 做对了什么

 

DevOps 运动的核心洞察是:消除开发与运维之间的墙。它带来了:

AI辅助开发工具如何改变软件工程实践

博客分类: 

在过去的几年里,人工智能技术的飞速发展正在深刻地改变着软件开发的方式。从代码补全到全栈应用生成,AI辅助开发工具已经从实验室走向了实际生产环境,成为越来越多开发者日常工作流程中不可或缺的一部分。2026年的今天,我们正站在一个转折点上:AI不再只是辅助工具,而是开始重新定义软件工程本身的实践方式。

 

AI辅助开发的演进历程

 

回顾AI辅助开发工具的发展,我们可以清晰地看到三个阶段的演进。第一阶段是简单的代码补全,IDE通过分析本地代码库和语法规则提供基础的自动完成功能。第二阶段是基于大语言模型的智能代码生成,工具能够根据注释或简单描述生成完整的函数甚至类。而我们现在正处于第三阶段:上下文感知的全栈开发助手,它们不仅能写代码,还能理解项目架构、调试问题、重构代码,甚至参与技术决策。

这种演进不是简单的功能叠加,而是开发范式的根本性转变。传统的软件开发流程是"人类思考→人类编码→机器执行",而AI辅助开发正在将其转变为"人类表达意图→AI生成实现→人类审核优化→机器执行"。这种转变的核心在于,开发者的角色从"代码编写者"向"架构设计者和代码审核者"转移。

 

实际应用场景与价值

 

模块化单体的回归:为什么我们要重新审视架构复杂度

博客分类: 

过去十年,微服务架构几乎成为了云原生应用的代名词。从 Netflix 到 Amazon,从创业公司到传统企业,似乎每个人都在把单体应用拆分成数十个甚至上百个微服务。但在 2026 年,我们看到了一个有趣的现象:越来越多的团队开始质疑这种架构选择,甚至主动将微服务重新整合回"模块化单体"(Modular Monolith)。

这不是技术的倒退,而是一次深刻的架构反思。

 

微服务的承诺与代价

 

2015 年左右,微服务架构带来了诱人的承诺:独立部署、技术栈自由、团队自治、水平扩展。Martin Fowler 的经典文章描绘了一幅美好的蓝图——每个服务由一个小团队维护,可以独立发布,使用最适合的技术栈。

但现实远比理想复杂。

当你把一个应用拆分成 50 个微服务时,你实际上是在用分布式系统的复杂度换取模块化的便利性。这个交易是否划算,取决于你的组织规模、技术成熟度,以及最重要的——你是否真的需要独立部署和水平扩展

对于大多数团队来说,答案是否定的。

一个典型的微服务架构带来的隐性成本包括:

技术债务的真相:不是代码问题,是决策问题

最近在一次技术评审会上,我听到一位工程师说:"这段代码已经成为技术债务了,我们需要重构它。"当我追问为什么时,他回答:"因为写得很烂,难以维护。"

这是一个典型的误解。技术债务从来不是代码写得好不好的问题,而是在特定时刻做出的理性决策。把技术债务等同于"烂代码",就像把信用卡债务等同于"乱花钱"——你完全忽略了债务背后的战略选择。

一、重新定义技术债务

Ward Cunningham 在 1992 年提出"技术债务"这个概念时,他的本意是:为了更快交付价值,有意识地选择了一个不够完美但足够好的技术方案,代价是未来需要额外的工作来改进它。

注意三个关键词:

  •  
    1. 有意识:这是一个深思熟虑的决策,不是偷懒或能力不足
    2. 足够好:当前方案能够满足业务需求,只是不够理想
    3. 未来代价:团队清楚知道这个选择的长期成本

然而在实践中,我们常常把四种完全不同的东西都叫做"技术债务":

 

API 设计的哲学:为什么 REST 和 GraphQL 都不是答案

> "工具本身从来不是问题的答案,理解问题才是。" —— 未署名的架构师

引言:一场永无止境的争论

在技术社区里,关于 API 设计的争论从未停止。REST 的支持者会告诉你:"遵循 RESTful 原则,你的 API 就会优雅、可扩展。" GraphQL 的拥趸则反驳:"单一端点、精确查询、类型安全,这才是现代 API 的未来。"

但如果我告诉你,这场争论本身就是一个错误的问题?

真正的问题不是"应该选择 REST 还是 GraphQL",而是我们为什么需要在两种范式之间做非此即彼的选择?更深层次的问题是:我们是否真正理解了 API 设计背后的本质问题?

REST 的谎言:资源导向的美丽陷阱

REST(Representational State Transfer)在 2000 年由 Roy Fielding 提出时,是一个革命性的概念。它将 Web 服务抽象为"资源"的集合,通过标准的 HTTP 方法(GET、POST、PUT、DELETE)进行操作。听起来很完美,对吧?

度量的陷阱:为什么大多数工程效能指标都在说谎

博客分类: 

在一次技术管理者的闭门会议上,一位 CTO 分享了他们公司的"成功经验":通过跟踪每个工程师的代码提交量和故事点完成数,他们将团队产出提升了 40%。台下掌声雷动。

三个月后,这家公司的核心产品因为技术债崩溃,两位资深工程师离职,留下一句话:"我不想在一个把我当成代码工厂的地方工作。"

这不是个案。在"数据驱动"的大旗下,工程效能度量正在变成一场全行业的自我欺骗。我们用精确的数字掩盖了对复杂性的无知,用短期的增长牺牲了长期的健康。更危险的是,当度量本身成为目标,我们就陷入了古德哈特定律(Goodhart's Law)的经典困境:当一个度量成为目标时,它就不再是一个好的度量。

一、我们在度量什么:从代码行数到 DORA

工程效能度量的演进史,本质上是管理者与工程师之间信息不对称的博弈史。

1.1 原始指标时代:数数字的快乐

早期的度量极其粗暴:

团队共享 Claude Code 的配置和经验

博客分类: 

 

想为团队共享 Claude Code 的配置和经验,最落地的方法就是通过 Git 管理一个“团队规范仓库”,再结合 Claude Code 内置的配置加载机制。这样既能保证团队规范一致,又能让成员保留个人偏好。

整个流程的核心,就是利用 Claude Code 的分层配置特性。我们将创建一个团队共享的规范仓库,团队成员克隆后,通过符号链接(symbolic link) 把它“植入”到自己的 Claude Code 全局配置中,从而实现共享。

当清明节遇上 AI:科技能否承载千年的思念?

写在前面:2026 年清明刚过,全国 3073 万人次现场祭扫、859 个网络祭扫平台服务数千万人。当无人机扫墓、AI 代祭、数字遗产成为新话题,我们不禁要问:科技是在稀释传统,还是在延续另一种形式的"孝"?

页面