成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么日本代碼‘穩如狗’?走訪豐田等多家日本團隊:寫代碼像做壽司,每天進步1%「侘寂」美學讓系統跑幾十年,網友:任天堂都30年了

譯文 精選
人工智能
這篇文章的作者是一位老鳥后端工程師?Sohail Saifi,也在用各種 AI Coding 工具。近三年里他研究了日本和硅谷程序員的代碼風格,這篇文章就是研究成果的總結。

編譯 | 云昭

這周一,小編偶然看到了一篇角度很奇特的、有關日本代碼風格的文章。

雖說現在 Vibe Coding 盛行,很多老鐵們都不那么關注代碼本身了,但若要真的讓 AI 工具編寫含金量組足夠的代碼,反而對于開發者的“代碼審美”提出了更高的要求。

這篇文章的作者是一位老鳥后端工程師 Sohail Saifi,也在用各種 AI Coding 工具。近三年里他研究了日本和硅谷程序員的代碼風格,這篇文章就是研究成果的總結。

他發現:日本程序員的 coding style 非常不同,而且更穩定、更有效比如,他們甚至會讓一個團隊花兩天時間去修復一個僅影響 0.1% 用戶的邊界問題。

“因為他們把代碼當作豐田凱美瑞來對待,而不是特斯拉。”

“在西方,寫代碼是為了快速上線功能;在日本,寫代碼是為了讓系統運行幾十年。上線只是開始。”

文章一經發布,就很快引起了網友的熱議,贏得了高達 6100 的點贊,173 條評論。

圖片圖片

評論中一方面,許多硅谷程序員在評論中表示不服,另一方面,很多網友對于日本的這種“快即是慢”的代碼寫作風格表示認同。

話不多說,讓咱們撇看心中的成見,一起來看看這篇熱文。

日本軟件系統為什么最穩定

在過去三年里,我一直在研究日本的軟件開發實踐。而我的發現,完全顛覆了我對編寫代碼的認知。

當西方程序員還在追逐最新的 JavaScript 框架、為縮進到底用 Tab 還是空格爭論不休時,日本程序員卻在悄悄打造全球最穩定、最可維護的軟件系統之一。他們的做法甚至可能會讓硅谷程序員翻白眼。

秘訣是什么?他們把代碼當作豐田凱美瑞來對待,而不是特斯拉。

一種改變一切的哲學

Monozukuri:「制造之道」

在日本,有一個理念叫做 monozukuri(ものづくり),意思是「制造之道」或「匠人精神」。它不只適用于實體產品的制造,更是一種強調工藝、持續改進、并對創作過程本身引以為傲的哲學。

ps:Monozukuri,直譯就是制造東西的意思。在現代語境下,Monozukuri 意指一種精益求精的工匠精神,是對制造過程、產品質量、團隊協作與持續改進的高度重視和執著追求。

日本程序員不是在寫代碼,他們是在“雕刻”代碼。

我曾采訪日本某大型科技公司的高級工程師中村宏(化名),他這樣說:

「在西方,寫代碼是為了快速上線功能;在日本,寫代碼是為了讓系統運行幾十年。上線只是開始。」

這套心態的轉變非常深刻。與其“快速試錯”,他們更傾向于“慢慢構建,盡量不出錯”。

Kaizen:「每天進步 1%」

你或許聽說過 kaizen(改善)這個詞,原本用于企業流程優化。但日本程序員將其直接應用到代碼中。

他們不會搞大刀闊斧的重構或“技術債償還沖刺”,而是每天做一點微小的改進。每一次提交,都改善一點點。

來看例子:

// 西方式寫法:計劃下一次迭代時重構整個模塊
function processUserData(users) {
  // 200 行越來越復雜的代碼
  return results;
}

// 日本式寫法:今天改進 1%,明天再來一點
function processUserData(users) {
  const validUsers = filterValidUsers(users); // 提取了一個小函數
  return processValidUsers(validUsers);
}

日本程序員不會等待“批準”來改進代碼,也不搞“技術債沖刺”。他們就是每天持續優化一點點。

「豐田生產方式」的程序員版本

Just-In-Time:「按需開發」

他們借鑒了豐田著名的生產系統: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);
  }
}

「未來的復雜性來了再加,現在只管把今天的事情做好。」

Jidoka:「停線精神」

在豐田工廠,任何工人都可以因發現瑕疵而按下“急停按鈕”,整個產線會立刻停下。日本的開發團隊也遵循這一原則:

一旦發現問題,全體停工,優先解決。

沒有“下個迭代修吧”,沒有“先上線后補丁”。

我曾見過一個團隊花兩天時間去修復一個僅影響 0.1% 用戶的邊界問題。問他們為什么不忽略時,組長回答:

「一旦我們默認小問題無所謂,就會開始容忍缺陷。久而久之,缺陷會變成常態。」

所以他們的系統幾乎沒有線上 bug。

語言劣勢,變成可讀性優勢

簡單的變量名

你可能以為日本程序員用全日文變量名,其實并不是:

// 想象中的寫法
const ユーザー = getUsers();
const データ = processData(ユーザー);

// 實際寫法
const userList = getUsers();
const processedData = transformData(userList);

// 注釋用日文解釋業務邏輯
// 業務ロジック: ユーザーの権限を確認してからデータを変換する

因為大多數日本工程師的英文并不流利,他們傾向于使用更簡單、直白、沒有炫技的變量名。這反而提升了可讀性。

| 注釋文化

他們大量寫注釋。不是因為代碼差,而是因為他們把注釋當作給未來維護者(可能是五年后的自己)寫的文檔。

// 西方式寫法:代碼自解釋
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
}));

結果是:即使 10 年后,這段代碼依然能維護下去。

軟件開發中的「七大浪費」

借鑒豐田制造理論,日本程序員總結出“七種浪費”:

  1. 未完成的工作:寫了但沒測、沒部署的代碼。
  2. 多余的功能:沒人用的 feature。
  3. 反復學習:因為缺文檔或代碼混亂而重復理解。
  4. 交接:不同團隊之間的“扔鍋”式協作。
  5. 等待:審批、代碼審查、依賴延遲。
  6. 任務切換:在多個項目之間頻繁跳轉。
  7. 缺陷:最浪費的就是修 bug,所以他們防患于未然。

「侘寂」寫法:不完美之美,擁抱演化

侘寂(Wabi-Sabi)是一種日本美學,強調“不完美之美”。日本程序員不追求完美代碼,而是寫“可逐步進化的代碼”。

小編這里解釋下“侘寂”(日語:わびさび / 發音:wabi-sabi),是日本美學中極為核心、也極富哲思的一個概念,漢語中很難有一個精確的中文對應詞,大致是“不完美之美”的意思。可以這樣體感一下,比如:

一只有裂痕但修補過的陶碗,比一只嶄新的碗更有溫度。因為有歲月、使用過的痕跡。等等。

// 西方寫法:預判未來需求
class DataValidator {
  validate(data, rules, options, context, metadata) {
    // 太多參數以應對所有情況
  }
}

// 日本寫法:從簡單開始,未來再擴展
class DataValidator {
  validate(data) {
    if (!data) returnfalse;
    if (!data.email) returnfalse;
    returntrue;
  }
}

他們知道需求會變,與其預判未來,不如為“變化”做好準備。

「反省會」:持續反思的文化

每個項目結束后,他們都會舉行 hansei(反省)會議。不是為了追責,而是集體回顧:“下次如何做得更好?”

我曾旁聽一場反省會,他們花了 30 分鐘討論一個函數。不是因為它出錯,而是它“可以更清晰”。

他們提出了三個改進點:

  • 改變量名更清楚
  • 加一句注釋解釋業務含義
  • 拆出一個小工具函數

看似微不足道,但積累 100 次這樣的小改進后,代碼庫就會煥然一新。

結果不會騙人

任天堂:30 年前寫的代碼仍在用。不是因為他們懶得重寫,而是代碼寫得足夠好,根本不用重寫。

對比數據(日本團隊 vs 西方團隊):

  • 生產環境 bug 少 60%
  • 維護時間減少 40%
  • 新功能交付快 25%
  • 開發者滿意度高 80%

為什么日本式代碼更有效?

復利效應

每天 1% 的改善會復利增長。西方團隊每 3-5 年重寫系統,日本團隊幾十年持續演化。

可持續節奏

沒有“996”或“爆肝上線”,他們保持可持續節奏,做出更理性的決策,寫出更持久的代碼。

長遠思維

當你希望代碼運行 20 年,而不是 2 年時,你的選擇就會不一樣:

  • 你會選擇清晰,而不是聰明
  • 你會選擇可靠的技術,而不是最新的潮流

如何把這些哲學用到你的代碼中?

  • 從 Kaizen (改善)開始:每天改善一點點。堅持 30 天。
  • 實踐 Jidoka(停線精神):發現 bug 別只修復,要找出防止它再次發生的方法。
  • 擁抱侘寂:別追求完美,寫出可演化、易維護的代碼。
  • 做 Hansei(反省):每次迭代結束,花 30 分鐘團隊反思“什么可以更好”。

真正的挑戰是文化轉變

技巧很容易學,但從“上線第一”切換到“長久為先”,才是最難的部分。

日本程序員懂得一個簡單的道理——最快的“快”,是從來不用“慢”下來。

而不被迫慢下來的唯一方式,就是一開始就別留下讓你慢下來的“技術債”。

你的代碼不應該像一家瘋狂擴張的初創公司,而應該像一座打理良好的日式庭院——穩、靜、美、可持續。

評論區炸鍋:太保守了,這不是日本獨有的

就如開頭所介紹的,這篇文章引起了許多網友的討論。有人共鳴,有人質疑。共鳴的朋友站出來說:我就是這樣寫代碼的程序員!

圖片圖片

質疑的網友則回應說:其實這些思維風格也存在于西方。

圖片圖片

還有一位網友認為:其實上面說的50%的理念,其實都寫在敏捷宣言里。

圖片圖片

甚至有網友直接開懟,表示:日本模式也有很大的局限。

現實中并沒有什么廣泛使用的日本開發的軟件。內部使用倒是有(比如豐田)。因為他們缺乏那種“大膽試錯、獨立探索”的文化。還有一種“尊重權威”的氛圍,讓人們不敢質疑現狀……

圖片圖片

另有網友質疑:如果日本方法這么好,為什么他們沒做出全球爆款?其實任天堂就是活例。問題也許不在“模式”,而在語言、市場與文化壁壘。

當然,勸架的網友顯得更加睿智:

我現在腦海里浮現出兩個跨洋而立的公司,如同兄弟一樣聯手:西方的敢于質疑與挑戰,東方的古老智慧則以清晰和諧協調一切。

各位網友表面上看是實在對比日本和西方程序員的編寫風格,其實是在探討兩種編程文化:一種是穩定壓倒一切,另一種是大膽創新。跟國別關系不大。

這其實就是企業版的 slow is smooth, smooth is fast。

所以,小編在最后把問題留給評論區的大佬們,各位認同哪種風格?你見過像任天堂那樣 30 年都不用重寫的代碼嗎?在 Vibe Coding 時代,哪種風格更值得提倡呢?

歡迎拍磚。

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2010-04-14 13:38:36

Linux桌面

2013-07-10 10:41:29

2021-11-16 09:36:11

蘋果 英特爾芯片

2014-07-09 09:32:39

2016-12-19 08:53:44

2020-07-30 15:20:15

代碼開發黑客

2019-12-16 09:25:38

技術研發指標

2023-07-28 12:47:41

2023-09-04 13:16:00

人工智能模型

2016-04-20 11:08:57

代碼歷史新功能

2016-11-14 20:09:58

2020-03-26 15:00:52

計算機互聯網 技術

2015-09-09 09:41:28

十年代碼

2019-06-05 10:12:11

2018-08-17 10:07:58

保險業

2023-01-04 13:01:55

AI數學

2021-02-02 10:53:10

技術研發博客

2020-07-29 15:06:39

數據泄露源代碼泄露信息安全

2021-02-20 16:03:50

代碼開發編程

2013-11-29 15:38:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品伦理一区 | 九色在线视频 | 天天干天天谢 | 在线播放黄色 | 99久久久国产精品 | 日韩国产中文字幕 | 午夜国产在线观看 | 国产精品久久久久久久久久久久久久久 | 日日日操| 免费在线小视频 | 青青久草 | 成人一级片| 中文精品一区 | 老司机午夜免费精品视频 | 久久精品2| 色中色综合 | 日韩国产精品一区二区 | 日韩成人av在线 | 亚洲精品久久久久久久久久久 | 嫩草视频在线观看 | 国产区精品 | 国产福利av | 欧美一区二区三 | 秋霞啪啪片 | 国产成人精品一区二区 | 黄视频免费看网站 | 亚洲免费成人 | 成人不卡视频 | 亚洲欧美综合网 | 91久久久精品 | 日韩国产在线 | 男女无遮挡xx00动态图120秒 | 狠狠干欧美| 免费黄色av| 亚洲男人天堂网 | 久久久久黄色 | 国产精品999 | 欧美在线视频一区 | 国产伦精品一区二区三区免费视频 | 在线不卡一区 | 毛片网站大全 |