特斯拉引荐奖励
Posted by quentin 在 Friday, 24 November 2023使用我的引荐链接下单,可赢得8000元车漆选装礼金。限抵扣付费车漆选配的价款。https://ts.la/ywjrg531660
API 设计的两个误区:RESTful 和 GraphQL 都不是银弹
Posted by quentin 在 Wednesday, 15 April 2026前两天团队讨论新业务的技术方案,后端同学提议用 GraphQL,理由是"前端可以自己控制数据结构,不用频繁改接口"。我问了一句:"你们后端有多少人?"答:"3个人"。我说:"那别折腾了,RESTful 就够了"。
这不是第一次遇到这种情况。这些年做全栈,从后端写 API 到前端调 API 再到 BFF 层设计 API,见过太多技术选型上的执念。最常见的两个误区:一是觉得 RESTful 就是正统,必须符合所有规范;二是觉得 GraphQL 能解决前后端协作的所有问题。
事实上,这两个都不是银弹。
RESTful 的形式主义陷阱
大部分开发者第一次接触 API 设计,学的都是 RESTful 规范。GET 查询、POST 创建、PUT 更新、DELETE 删除,资源路径用名词不用动词,状态码要严格遵循 HTTP 标准。这些原则没错,但问题在于,很多人把它当成了教条。
前后端分离的代价:为什么全栈工程师越来越香
Posted by quentin 在 Wednesday, 15 April 2026前后端分离已经是前端圈的"政治正确"了。但最近几年,我观察到一个反常识的现象:不少团队在推进前后端分离几年后,又开始招聘全栈工程师,甚至把部分项目重新合并。
这不是技术倒退,而是对"分离成本"的重新认识。
前后端分离的三大隐形成本
大部分团队谈前后端分离时,强调的是"职责清晰"、"技术栈解耦"、"并行开发"。但很少有人提它的代价。
1. 沟通成本:从「对话」变成「会议」
以前一个功能,全栈工程师自己从前端写到数据库,遇到问题自己调试,半天搞定。
前后端分离后?先写需求文档,前后端对齐接口,联调发现参数不对,再开个会讨论,改完继续联调。原本半天的事,拉长成三天。
我不是说会议不重要,而是很多"会议"本质上是在弥补"认知鸿沟"——前端不知道后端为什么这么设计,后端不知道前端要什么。
金融业务尤其明显。理财产品的持仓逻辑,涉及到实时资产、历史收益、预期收益三种数据,前端需要合并展示。如果后端不理解前端的渲染逻辑,可能会返回三个接口;前端不理解后端的数据模型,可能会要求合并成一个接口但无法满足缓存策略。
这不是技术问题,是认知问题。
BFF的谎言:为什么前端团队不应该拥有后端代码
Posted by quentin 在 Wednesday, 15 April 2026BFF(Backend For Frontend)这个概念被讨论了很多年,大部分文章都在讲它的好处:给前端更多控制权、减少沟通成本、提升迭代效率。但我想说点不一样的:BFF可能是过去十年最被滥用的架构模式,它给很多团队带来的不是效率提升,而是隐性灾难。
这个判断可能有争议,但基于我多年全栈实践的观察,大部分公司的BFF实践都走偏了。问题不在于BFF本身,而在于一个看似合理但实则危险的假设:前端团队应该拥有和维护BFF代码。
谁在真正维护BFF
先说个常见场景。你们公司引入了BFF架构,用Node.js写,部署在前端团队的代码仓库。最开始确实很爽,需要什么接口自己写,数据格式自己定,不用等后端排期。
三个月后,问题来了:
- 后端换了新的认证方式,BFF层要同步升级
- 用户反馈接口偶尔超时,排查发现是BFF内存泄漏
- 运营要做数据统计,需要在BFF加审计日志
- 监控告警BFF的某个依赖包有安全漏洞
- 后端要做灰度发布,BFF要配合调整负载均衡策略
Node.js BFF层的三个认知误区:不只是接口转发
Posted by quentin 在 Wednesday, 15 April 2026很多团队在引入 Node.js 做 BFF(Backend for Frontend)层时,都会陷入一个误区:把它当成简单的接口转发器。写几个路由,调用后端 API,拼装数据,返回给前端,就算完成任务了。
这种理解不能说错,但实在太浅。
我见过不少团队的 BFF 层,最后都沦为"接口透传中间件"——前端要什么数据,就透传什么接口;后端改了接口,前端也跟着改。这样的 BFF 层除了增加一层延迟和维护成本,没有创造任何价值。
今天想聊聊三个常见的认知误区,以及 BFF 层真正应该做什么。
误区一:BFF 只是为了"聚合接口"
很多人认为 BFF 层的核心价值是"把多个后端接口聚合成一个"。比如一个页面需要调用用户信息、订单列表、推荐数据三个接口,前端调三次太慢,所以在 BFF 层写个聚合接口,一次性返回所有数据。
这个思路听起来很合理,但问题在于:聚合只是手段,不是目的。
真正的目的是什么?是为前端定制适合它的数据结构和粒度。
AI编程工具的分野:OpenClaw、Hermes Agent与Claude Code
Posted by quentin 在 Tuesday, 14 April 2026最近半年,AI编程工具层出不穷。从GitHub Copilot开始,到Cursor、Claude Code、OpenClaw、Hermes Agent,每个都说自己是"下一代编程方式"。
用了几个之后发现,这些工具看起来都是"AI帮你写代码",实际上解决的问题完全不同。
这不是功能对比,是设计理念的分野。
三种不同的定位
先说结论:OpenClaw、Hermes Agent、Claude Code 虽然都叫"AI编程工具",但定位差异巨大。
OpenClaw:开源、可定制、工程师导向。
核心理念是"把AI当工具"。你可以自己部署、自己调教、自己定义workflow。它不是一个产品,更像是一个框架。
适合人群:愿意折腾、对隐私敏感、有特殊需求的团队。
Hermes Agent:自动化、任务导向、减少人工干预。
核心理念是"把AI当助手"。你下达一个任务,它自动拆解、执行、验证。你不需要一步步指导,它会自己判断下一步做什么。
适合人群:希望提高效率、不想深入细节、任务明确的场景。
技术选型的真相:为什么最后总是选那几个
Posted by quentin 在 Tuesday, 14 April 2026每次做技术选型,团队都会认真调研:列出五六个候选方案,做技术对比表,分析优缺点,开会讨论半天。最后呢?React、TypeScript、MySQL、Redis,还是那几个。
新人会问:"为什么不试试XX框架?它的性能更好啊。"老人会说:"稳妥起见,还是用主流的吧。"
技术选型最大的谎言是:我们在做技术决策。实际上,大部分时候我们在做风险决策。
技术选型的三个阶段
做了很多年技术,观察到一个有意思的现象:工程师对技术选型的态度,会随着工作年限发生变化。
刚入行时,看到新技术就想用。看到有人在用Vue 3,立刻想在项目里试试;看到Rust很火,马上想重写服务;看到某个数据库号称性能是MySQL的10倍,恨不得立刻迁移。
这个阶段的特点是:只看优点,不看成本。
工作几年后,开始变得谨慎。新技术出来不会马上跟,会等社区成熟、生态完善、踩坑的人多了再考虑。这时候的决策标准是:技术是否成熟、团队是否掌握、是否有成功案例。
这个阶段的特点是:看优点也看缺点,但忽略了隐性成本。
管理团队和教育子女:被低估的相似性
Posted by quentin 在 Monday, 13 April 2026在技术圈混久了,发现一个有趣的现象:那些把团队管得很好的技术Leader,往往在子女教育上也有一套。反过来,那些在团队管理上焦头烂额的,当了父母后也容易陷入同样的困境。
这不是巧合。管理团队和教育子女,底层逻辑是一样的:都是在试图影响另一个独立个体的行为。
只不过,在团队里你可以炒人,在家里不行。
控制的幻觉
见过很多技术管理者,刚升职时会犯一个错误:觉得"我是Leader了,我说了算"。于是开始制定各种规范、流程、制度,试图让团队按照自己的意图运转。
三个月后发现不对劲:表面上大家都遵守规则,实际上阳奉阴违。能偷懒就偷懒,能应付就应付,遇到问题第一反应是"这不在我职责范围内"。
为什么?因为把人当成了机器,以为输入指令就能得到预期输出。
人不是代码,不会严格按照你的逻辑执行。
子女教育也一样。很多父母觉得"我是家长,孩子就该听我的"。于是制定各种规矩:几点睡觉、看多久电视、周末上什么兴趣班。孩子小的时候可能还管用,到了青春期就会发现,你说什么他都反着来。
本质上都是"控制的幻觉"——以为通过规则和权威就能让对方按你的意愿行事。
一个前端老兵眼中的AI时代
Posted by quentin 在 Monday, 13 April 2026在金融科技公司做了很多年前端,经历过几轮技术变革。从移动端崛起、SPA框架盛行,到微前端、Serverless,每次都有人说"前端要变天了"。现在轮到AI了,焦虑又开始蔓延。
但我的观察是:大部分前端开发者高估了AI的威胁,低估了自己的价值。
这次真的不一样吗?
先说个场景。我们在做理财产品详情页改版时,产品经理提了个需求:"能不能感知用户的疑虑,在适当的时候主动给出回答?"
听起来很AI,对吧?但落地时发现,金融产品的风险提示有严格的合规要求:哪些话能说、哪些不能说、如何表述、字号大小、颜色对比度,全部有监管规定。AI生成的回答可能很流畅,但不能直接上线,必须经过合规审核、法务确认、AB测试验证。
最后怎么做的?我们用AI做语义理解和意图识别,但回答内容是预设的合规话术库,前端负责整个交互流程、异常处理、埋点监控、合规展示。这个需求,AI解决了一部分问题,但核心的业务理解、风险控制、用户体验,还是要靠人。
AI时代和以往技术变革最大的不同:它不是替代某个技术栈,而是改变了生产方式。
