这周一,小编偶然看到了一篇角度很奇特的、有关日本代码风格的文章。虽说现在 Vibe Coding 盛行,很多老铁们都不那么关注代码本身了,但若要真的让...
2025-07-27 0
这周一,小编偶然看到了一篇角度很奇特的、有关日本代码风格的文章。
虽说现在 Vibe Coding 盛行,很多老铁们都不那么关注代码本身了,但若要真的让 AI 工具编写含金量组足够的代码,反而对于开发者的“代码审美”提出了更高的要求。
这篇文章的作者是一位老鸟后端工程师 Sohail Saifi,也在用各种 AI Coding 工具。近三年里他研究了日本和硅谷程序员的代码风格,这篇文章就是研究成果的总结。
他发现:日本程序员的 coding style 非常不同,而且更稳定、更有效比如,他们甚至会让一个团队花两天时间去修复一个仅影响 0.1% 用户的边界问题。
“因为他们把代码当作丰田凯美瑞来对待,而不是特斯拉。”
“在西方,写代码是为了快速上线功能;在日本,写代码是为了让系统运行几十年。上线只是开始。”
文章一经发布,就很快引起了网友的热议,赢得了高达 6100 的点赞,173 条评论。
评论中一方面,许多硅谷程序员在评论中表示不服,另一方面,很多网友对于日本的这种“快即是慢”的代码写作风格表示认同。
话不多说,让咱们撇看心中的成见,一起来看看这篇热文。
在过去三年里,我一直在研究日本的软件开发实践。而我的发现,完全颠覆了我对编写代码的认知。
当西方程序员还在追逐最新的 JavaScript 框架、为缩进到底用 Tab 还是空格争论不休时,日本程序员却在悄悄打造全球最稳定、最可维护的软件系统之一。他们的做法甚至可能会让硅谷程序员翻白眼。
秘诀是什么?他们把代码当作丰田凯美瑞来对待,而不是特斯拉。
在日本,有一个理念叫做 monozukuri(ものづくり),意思是「制造之道」或「匠人精神」。它不只适用于实体产品的制造,更是一种强调工艺、持续改进、并对创作过程本身引以为傲的哲学。
ps:Monozukuri,直译就是制造东西的意思。在现代语境下,Monozukuri 意指一种精益求精的工匠精神,是对制造过程、产品质量、团队协作与持续改进的高度重视和执着追求。
日本程序员不是在写代码,他们是在“雕刻”代码。
我曾采访日本某大型科技公司的高级工程师中村宏(化名),他这样说:
「在西方,写代码是为了快速上线功能;在日本,写代码是为了让系统运行几十年。上线只是开始。」
这套心态的转变非常深刻。与其“快速试错”,他们更倾向于“慢慢构建,尽量不出错”。
你或许听说过 kaizen(改善)这个词,原本用于企业流程优化。但日本程序员将其直接应用到代码中。
他们不会搞大刀阔斧的重构或“技术债偿还冲刺”,而是每天做一点微小的改进。每一次提交,都改善一点点。
来看例子:
复制
// 西方式写法:计划下一次迭代时重构整个模块function processUserData(users) { // 200 行越来越复杂的代码 return results;}// 日本式写法:今天改进 1%,明天再来一点function processUserData(users) { const validUsers = filterValidUsers(users); // 提取了一个小函数 return processValidUsers(validUsers);}1.2.3.4.5.6.7.8.9.10.11.
日本程序员不会等待“批准”来改进代码,也不搞“技术债冲刺”。他们就是每天持续优化一点点。
他们借鉴了丰田著名的生产系统:Just-In-Time(JIT)按需制造。与其预先构建可能永远不会用到的功能,他们只在真正需要时才构建。
复制
// 西方式写法:预先构建一堆可配置选项class DataProcessor { constructor(options = {}) { this.enableCaching = options.enableCaching || false; this.enableValidation = options.enableValidation || false; this.enableLogging = options.enableLogging || false; this.maxRetries = options.maxRetries || 3; this.timeout = options.timeout || 5000; // 还有15个“以防万一”的选项 }}// 日本式写法:先解决今天的问题class DataProcessor { process(data) { return this.validateAndTransform(data); }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.
「未来的复杂性来了再加,现在只管把今天的事情做好。」
在丰田工厂,任何工人都可以因发现瑕疵而按下“急停按钮”,整个产线会立刻停下。日本的开发团队也遵循这一原则:
一旦发现问题,全体停工,优先解决。
没有“下个迭代修吧”,没有“先上线后补丁”。
我曾见过一个团队花两天时间去修复一个仅影响 0.1% 用户的边界问题。问他们为什么不忽略时,组长回答:
「一旦我们默认小问题无所谓,就会开始容忍缺陷。久而久之,缺陷会变成常态。」
所以他们的系统几乎没有线上 bug。
你可能以为日本程序员用全日文变量名,其实并不是:
复制
// 想象中的写法const ユーザー = getUsers();const データ = processData(ユーザー);// 实际写法const userList = getUsers();const processedData = transformData(userList);// 注释用日文解释业务逻辑// 業務ロジック: ユーザーの権限を確認してからデータを変換する1.2.3.4.5.6.7.8.9.10.
因为大多数日本工程师的英文并不流利,他们倾向于使用更简单、直白、没有炫技的变量名。这反而提升了可读性。
他们大量写注释。不是因为代码差,而是因为他们把注释当作给未来维护者(可能是五年后的自己)写的文档。
复制
// 西方式写法:代码自解释const result = users.filter(u => u.age >= 18 && u.status === 'active') .map(u => ({ id: u.id, name: u.name }));// 日本式写法:加注解释业务含义// ビジネスルール: 18歳以上のアクティブユーザーのみを対象とするconst eligibleUsers = users.filter(user => {const isAdult = user.age >= 18;const isActive = user.status === 'active';return isAdult && isActive;});// 画面表示用のデータ形式に変換const displayData = eligibleUsers.map(user => ({ id: user.id, name: user.name}));1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
结果是:即使 10 年后,这段代码依然能维护下去。
借鉴丰田制造理论,日本程序员总结出“七种浪费”:
侘寂(Wabi-Sabi)是一种日本美学,强调“不完美之美”。日本程序员不追求完美代码,而是写“可逐步进化的代码”。
小编这里解释下“侘寂”(日语:わびさび / 发音:wabi-sabi),是日本美学中极为核心、也极富哲思的一个概念,汉语中很难有一个精确的中文对应词,大致是“不完美之美”的意思。可以这样体感一下,比如:
一只有裂痕但修补过的陶碗,比一只崭新的碗更有温度。因为有岁月、使用过的痕迹。等等。
复制
// 西方写法:预判未来需求class DataValidator { validate(data, rules, options, context, metadata) { // 太多参数以应对所有情况 }}// 日本写法:从简单开始,未来再扩展class DataValidator { validate(data) { if (!data) returnfalse; if (!data.email) returnfalse; returntrue; }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
他们知道需求会变,与其预判未来,不如为“变化”做好准备。
每个项目结束后,他们都会举行 hansei(反省)会议。不是为了追责,而是集体回顾:“下次如何做得更好?”
我曾旁听一场反省会,他们花了 30 分钟讨论一个函数。不是因为它出错,而是它“可以更清晰”。
他们提出了三个改进点:
看似微不足道,但积累 100 次这样的小改进后,代码库就会焕然一新。
任天堂:30 年前写的代码仍在用。不是因为他们懒得重写,而是代码写得足够好,根本不用重写。
对比数据(日本团队 vs 西方团队):
每天 1% 的改善会复利增长。西方团队每 3-5 年重写系统,日本团队几十年持续演化。
没有“996”或“爆肝上线”,他们保持可持续节奏,做出更理性的决策,写出更持久的代码。
当你希望代码运行 20 年,而不是 2 年时,你的选择就会不一样:
技巧很容易学,但从“上线第一”切换到“长久为先”,才是最难的部分。
日本程序员懂得一个简单的道理——最快的“快”,是从来不用“慢”下来。
而不被迫慢下来的唯一方式,就是一开始就别留下让你慢下来的“技术债”。
你的代码不应该像一家疯狂扩张的初创公司,而应该像一座打理良好的日式庭院——稳、静、美、可持续。
评论区炸锅:太保守了,这不是日本独有的
就如开头所介绍的,这篇文章引起了许多网友的讨论。有人共鸣,有人质疑。共鸣的朋友站出来说:我就是这样写代码的程序员!
质疑的网友则回应说:其实这些思维风格也存在于西方。
还有一位网友认为:其实上面说的50%的理念,其实都写在敏捷宣言里。
甚至有网友直接开怼,表示:日本模式也有很大的局限。
现实中并没有什么广泛使用的日本开发的软件。内部使用倒是有(比如丰田)。因为他们缺乏那种“大胆试错、独立探索”的文化。还有一种“尊重权威”的氛围,让人们不敢质疑现状……
另有网友质疑:如果日本方法这么好,为什么他们没做出全球爆款?其实任天堂就是活例。问题也许不在“模式”,而在语言、市场与文化壁垒。
当然,劝架的网友显得更加睿智:
我现在脑海里浮现出两个跨洋而立的公司,如同兄弟一样联手:西方的敢于质疑与挑战,东方的古老智慧则以清晰和谐协调一切。
各位网友表面上看是实在对比日本和西方程序员的编写风格,其实是在探讨两种编程文化:一种是稳定压倒一切,另一种是大胆创新。跟国别关系不大。
这其实就是企业版的 slow is smooth, smooth is fast。
所以,小编在最后把问题留给评论区的大佬们,各位认同哪种风格?你见过像任天堂那样 30 年都不用重写的代码吗?在 Vibe Coding 时代,哪种风格更值得提倡呢?
欢迎拍砖。
相关文章
这周一,小编偶然看到了一篇角度很奇特的、有关日本代码风格的文章。虽说现在 Vibe Coding 盛行,很多老铁们都不那么关注代码本身了,但若要真的让...
2025-07-27 0
2025世界人工智能大会(WAIC2025)在开幕前夕曾提出“AI三问”:数学之问、科学之问和模型之问,希望以此“三问”破题,直击人工智能发展的核心,...
2025-07-27 0
极目新闻通讯员 张玺7月26日,全球人工智能领域极具影响力的盛会——2025世界人工智能大会(WAIC2025)在上海启幕。国务院国资委当日下午专场发...
2025-07-27 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-07-27 7
现在人们打棋牌麻将谁不想赢?手机微乐麻将必赢神器但是手机棋牌麻将是这么好赢的吗?在手机上打棋牌麻将想赢,不仅需要运气,也需要技巧。掌握的棋牌麻将技巧就...
2025-07-27 10
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-07-27 7
亲,这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-07-27 10
现在人们打棋牌麻将谁不想赢?手机微乐麻将必赢神器但是手机棋牌麻将是这么好赢的吗?在手机上打棋牌麻将想赢,不仅需要运气,也需要技巧。掌握的棋牌麻将技巧就...
2025-07-27 9
发表评论