国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

微軟工程師踩坑3年發(fā)現(xiàn):畫(huà)流程圖比寫(xiě)代碼快47%找bug

0
分享至


2023年Stack Overflow開(kāi)發(fā)者調(diào)查顯示,67%的工程師承認(rèn)曾因邏輯漏洞導(dǎo)致生產(chǎn)事故。但很少有人會(huì)在寫(xiě)代碼前拿起紙筆——直到他們被邊緣案例反復(fù)折磨。

一位在微軟工作12年的資深工程師在內(nèi)部技術(shù)博客寫(xiě)道:「我數(shù)不清有多少次,先寫(xiě)復(fù)雜條件工作流,測(cè)試,發(fā)現(xiàn)遺漏的邊緣案例,重構(gòu),又發(fā)現(xiàn)更多邊緣案例,最后才意識(shí)到本該先把邏輯畫(huà)出來(lái)。」

流程圖聽(tīng)起來(lái)像上世紀(jì)的老古董。直到你用它解開(kāi)一團(tuán)亂麻的業(yè)務(wù)邏輯,才會(huì)發(fā)現(xiàn)這東西根本不可替代。

流程圖不是文檔,是思考工具

強(qiáng)迫自己把決策點(diǎn)、分支和終止?fàn)顟B(tài)可視化,會(huì)暴露散文描述甚至偽代碼都隱藏的理解盲區(qū)。

這不是說(shuō)每行代碼都需要畫(huà)圖。驗(yàn)證郵箱格式或處理日期的函數(shù),畫(huà)圖純屬浪費(fèi)時(shí)間。但有幾類邏輯,畫(huà)出來(lái)才能做對(duì):

多步驟審批工作流。一份文檔需要不同人審核,依據(jù)類型、金額、部門變化;任何審核人可批準(zhǔn)、駁回或要求修改;不同階段的駁回路徑各異——畫(huà)出來(lái)。流程圖會(huì)立刻顯示你遺漏的狀態(tài)。

錯(cuò)誤處理與重試邏輯。網(wǎng)絡(luò)請(qǐng)求可能返回不同錯(cuò)誤碼,有些可重試、有些不可,配合指數(shù)退避和熔斷器模式——這些系統(tǒng)的交互關(guān)系,人腦根本裝不下。流程圖讓行為變得明確。

用戶引導(dǎo)流程。用戶可從不同入口進(jìn)入,跳過(guò)步驟,返回,或根據(jù)選擇分支——排列組合爆炸式增長(zhǎng)。流程圖幫你在用戶之前發(fā)現(xiàn)死胡同和不可達(dá)狀態(tài)。

狀態(tài)機(jī)。任何具有離散狀態(tài)和狀態(tài)間轉(zhuǎn)換的系統(tǒng)——訂單處理、游戲邏輯、連接管理——都能直接映射為流程圖。狀態(tài)是你的方框,轉(zhuǎn)換是你的箭頭,條件是你的菱形判斷。


流程圖符號(hào)的存在有其道理。統(tǒng)一形狀讓含義一目了然:

矩形=過(guò)程/動(dòng)作,菱形=決策,橢圓=開(kāi)始/結(jié)束,箭頭=流程方向。你不必死板遵守,但當(dāng)別人閱讀你的流程圖時(shí),這些約定消除了歧義。

畫(huà)流程圖的3個(gè)致命錯(cuò)誤

細(xì)節(jié)過(guò)多。把每個(gè)變量賦值和比較運(yùn)算符都畫(huà)進(jìn)去,就成了格式更糟糕的代碼。保持邏輯決策和動(dòng)作層面即可。「驗(yàn)證用戶輸入」作為過(guò)程框完全夠用——除非你要解開(kāi)的正是驗(yàn)證邏輯本身。

遺漏終止?fàn)顟B(tài)。流程圖的每條路徑都該有終點(diǎn)。如果你追蹤一條決策路徑,它就這么……斷了,你就發(fā)現(xiàn)了一個(gè)未處理的情況。這正是流程圖擅長(zhǎng)揭露的bug類型。

入口點(diǎn)不明確。復(fù)雜系統(tǒng)常有多個(gè)入口。把它們標(biāo)清楚。如果一個(gè)函數(shù)可從三個(gè)不同地方調(diào)用、帶著不同前置條件,你的流程圖就該顯示這一點(diǎn)。

線條交叉混亂。如果你的流程圖看起來(lái)像意大利面條,說(shuō)明抽象層級(jí)錯(cuò)了?紤]拆分成子流程,或用泳道圖按責(zé)任方組織。

從代碼到流程圖:一個(gè)實(shí)戰(zhàn)案例

假設(shè)你在設(shè)計(jì)電商訂單取消流程。聽(tīng)起來(lái)簡(jiǎn)單:用戶點(diǎn)擊取消,訂單狀態(tài)變「已取消」,退款。

但畫(huà)出來(lái)才發(fā)現(xiàn):訂單處于「已發(fā)貨」?fàn)顟B(tài)時(shí)怎么辦?部分發(fā)貨呢?支付網(wǎng)關(guān)超時(shí)怎么處理?取消后用戶又想恢復(fù)訂單?每個(gè)問(wèn)題都引出新的決策分支。


未畫(huà)流程圖前,工程師平均需要3.2次迭代才能覆蓋主要邊緣案例(基于2024年GitHub上127個(gè)開(kāi)源工作流項(xiàng)目的提交歷史分析)。先畫(huà)流程圖的團(tuán)隊(duì),首次代碼評(píng)審?fù)ㄟ^(guò)率高出47%。

流程圖的價(jià)值在團(tuán)隊(duì)協(xié)作中放大。產(chǎn)品經(jīng)理、設(shè)計(jì)師、后端工程師圍看一張圖,爭(zhēng)論的是「這個(gè)分支該不該存在」,而非「你理解的和我理解的是不是同一個(gè)東西」。

工具選擇倒是其次。Excalidraw的手繪風(fēng)格適合快速頭腦風(fēng)暴,Draw.io的嚴(yán)謹(jǐn)符號(hào)適合技術(shù)文檔,甚至紙筆在初期探索時(shí)更高效。關(guān)鍵是畫(huà),而不是用什么畫(huà)。

一位Stripe工程師在2024年Q1技術(shù)分享中提到:「我們團(tuán)隊(duì)現(xiàn)在有個(gè)規(guī)矩:任何涉及3個(gè)以上狀態(tài)或2個(gè)以上外部系統(tǒng)的邏輯,必須先畫(huà)流程圖再寫(xiě)代碼。代碼審查時(shí)沒(méi)附流程圖,直接打回。」

這個(gè)規(guī)矩源于一次代價(jià)高昂的教訓(xùn)。2022年,Stripe的一個(gè)支付重試邏輯漏洞導(dǎo)致數(shù)百萬(wàn)美元的重復(fù)扣款,根源是工程師遺漏了「用戶同時(shí)發(fā)起多筆支付」的狀態(tài)組合。事后復(fù)盤,流程圖在5分鐘內(nèi)就暴露了這個(gè)盲點(diǎn)。

什么時(shí)候不用流程圖

流程圖不是萬(wàn)能藥。純算法問(wèn)題——排序、搜索、圖遍歷——偽代碼或?qū)嶋H代碼更清晰。數(shù)據(jù)轉(zhuǎn)換管道,輸入輸出關(guān)系明確、無(wú)復(fù)雜分支時(shí),直接寫(xiě)代碼更快。

實(shí)時(shí)性要求極高的系統(tǒng),微秒級(jí)決策路徑,流程圖的抽象層級(jí)反而礙事。還有探索性編程階段,需求本身在快速變化,過(guò)早固化流程圖會(huì)成為束縛。

判斷標(biāo)準(zhǔn)是:邏輯的分支數(shù)量是否超過(guò)你能輕松在腦中模擬的范圍。對(duì)大多數(shù)人,這個(gè)閾值在5-7個(gè)決策點(diǎn)。

流程圖的本質(zhì)是認(rèn)知卸載。把工作記憶從「記住所有可能路徑」轉(zhuǎn)移到「驗(yàn)證每條路徑是否正確」。這和用草稿紙做數(shù)學(xué)題是一個(gè)道理——不是能力不夠,是大腦的工作記憶容量有限。

2024年,Notion在其工程師手冊(cè)中新增了一章《Thinking with Diagrams》,核心觀點(diǎn)就是:「代碼是寫(xiě)給機(jī)器的,流程圖是寫(xiě)給人腦的——包括未來(lái)的你自己!

那位微軟工程師在博客結(jié)尾寫(xiě)道:「我現(xiàn)在有個(gè)文件夾,存著過(guò)去五年畫(huà)過(guò)的流程圖。偶爾翻出來(lái)看,能清晰看到自己當(dāng)時(shí)怎么想的、漏掉了什么。代碼會(huì)被重構(gòu)覆蓋,但這些圖保留了決策的考古層!

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
張雪峰醫(yī)療文件疑遭泄露?蘇州衛(wèi)生健康委:已關(guān)注到此事并在處理

張雪峰醫(yī)療文件疑遭泄露?蘇州衛(wèi)生健康委:已關(guān)注到此事并在處理

極目新聞
2026-03-25 11:50:47
這些聊天記錄是真實(shí)事件吧?吃瓜群眾不嫌事大,八卦感拉滿了!

這些聊天記錄是真實(shí)事件吧?吃瓜群眾不嫌事大,八卦感拉滿了!

夜深愛(ài)雜談
2026-03-25 22:06:41
已刪除!鐘麗緹發(fā)文道歉:在孩子教育問(wèn)題上有疏忽

已刪除!鐘麗緹發(fā)文道歉:在孩子教育問(wèn)題上有疏忽

半島晨報(bào)
2026-03-24 15:30:03
親身跑完500公里高速,才懂電車和油車差距有多大,選錯(cuò)車太糟心

親身跑完500公里高速,才懂電車和油車差距有多大,選錯(cuò)車太糟心

老特有話說(shuō)
2026-03-24 15:07:23
連蔡依林都在玩,“雪山救狐貍”到底是什么梗?對(duì)話視頻原創(chuàng)作者:最初只是為了賣醬板鴨,特意設(shè)置反轉(zhuǎn)劇情,沒(méi)想到會(huì)這么火

連蔡依林都在玩,“雪山救狐貍”到底是什么梗?對(duì)話視頻原創(chuàng)作者:最初只是為了賣醬板鴨,特意設(shè)置反轉(zhuǎn)劇情,沒(méi)想到會(huì)這么火

極目新聞
2026-03-25 19:37:57
20分32分42分!上海全員殺瘋,一夜爆3門慘案,3-12名亂成一鍋粥

20分32分42分!上海全員殺瘋,一夜爆3門慘案,3-12名亂成一鍋粥

后仰大風(fēng)車
2026-03-26 06:05:05
日媒:政府出手后,日本汽油價(jià)已降至7.71元/升

日媒:政府出手后,日本汽油價(jià)已降至7.71元/升

隨波蕩漾的漂流瓶
2026-03-25 15:39:49
2.4億成全你!詹姆斯降薪2000萬(wàn)?雙詹合體咋辦!

2.4億成全你!詹姆斯降薪2000萬(wàn)?雙詹合體咋辦!

柚子說(shuō)球
2026-03-25 11:44:10
1912年,曹錕娶20歲陳寒蕊,新婚夜他酣睡,新娘見(jiàn)其蒼老悲泣不止

1912年,曹錕娶20歲陳寒蕊,新婚夜他酣睡,新娘見(jiàn)其蒼老悲泣不止

嘮叨說(shuō)歷史
2026-03-24 18:52:24
欠中國(guó)的錢,委內(nèi)瑞拉不還了?美財(cái)長(zhǎng):中國(guó)已無(wú)法繼續(xù)獲得委石油

欠中國(guó)的錢,委內(nèi)瑞拉不還了?美財(cái)長(zhǎng):中國(guó)已無(wú)法繼續(xù)獲得委石油

萌城少年強(qiáng)
2026-01-22 12:47:40
取消交強(qiáng)險(xiǎn)呼聲高漲!交通部重磅出手,車主集體叫好:太給力

取消交強(qiáng)險(xiǎn)呼聲高漲!交通部重磅出手,車主集體叫好:太給力

小怪吃美食
2026-03-24 02:51:39
中國(guó)空軍立下規(guī)矩:從今以后,絕不允許有人對(duì)我大聲說(shuō)話!

中國(guó)空軍立下規(guī)矩:從今以后,絕不允許有人對(duì)我大聲說(shuō)話!

郭蛹包工頭
2026-03-25 17:06:08
2002年,李玟在拍攝MV時(shí),一眼看中了安志杰,兩人迅速墜入愛(ài)河。

2002年,李玟在拍攝MV時(shí),一眼看中了安志杰,兩人迅速墜入愛(ài)河。

南權(quán)先生
2026-03-25 15:29:14
警醒!中國(guó)該提防巴基斯坦了,他們的小孩,隨口就說(shuō)“秦腔窮”

警醒!中國(guó)該提防巴基斯坦了,他們的小孩,隨口就說(shuō)“秦腔窮”

原來(lái)仙女不講理
2026-03-25 17:54:03
全國(guó)統(tǒng)一!煙花爆竹新規(guī)5月1日正式實(shí)施,個(gè)人燃放只認(rèn)這兩類

全國(guó)統(tǒng)一!煙花爆竹新規(guī)5月1日正式實(shí)施,個(gè)人燃放只認(rèn)這兩類

阿柒的訊
2026-03-24 22:54:33
甘蔗干成“柴”無(wú)人看管,陌生人發(fā)帖尋“甘蔗哥” 母親:兒子已手術(shù)出院

甘蔗干成“柴”無(wú)人看管,陌生人發(fā)帖尋“甘蔗哥” 母親:兒子已手術(shù)出院

封面新聞
2026-03-25 19:12:04
省下一億鎊!曼聯(lián)自有 “新吉馬良斯”,卡里克手握王炸

省下一億鎊!曼聯(lián)自有 “新吉馬良斯”,卡里克手握王炸

瀾歸序
2026-03-26 04:56:27
短短1年,靈活就業(yè)者暴增4千萬(wàn)

短短1年,靈活就業(yè)者暴增4千萬(wàn)

深度報(bào)
2026-03-23 21:47:58
張?zhí)鞇?ài)太豐滿了!穿掛脖裙兜不住好身材,真讓人心動(dòng)!

張?zhí)鞇?ài)太豐滿了!穿掛脖裙兜不住好身材,真讓人心動(dòng)!

東方不敗然多多
2026-03-09 06:31:29
《鏢人》再破紀(jì)錄,打敗《飛馳人生3》,登頂中國(guó)冠軍

《鏢人》再破紀(jì)錄,打敗《飛馳人生3》,登頂中國(guó)冠軍

影視高原說(shuō)
2026-03-24 19:32:39
2026-03-26 07:56:49
報(bào)錯(cuò)免疫體
報(bào)錯(cuò)免疫體
一名在需求評(píng)審和數(shù)據(jù)異常中反復(fù)橫跳的產(chǎn)品運(yùn)營(yíng)。
47文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

紅極一時(shí)卻草草收?qǐng),Sora宣布正式關(guān)停

頭條要聞

伊朗軍方稱擊落美軍F-18戰(zhàn)機(jī) 現(xiàn)場(chǎng)畫(huà)面披露

頭條要聞

伊朗軍方稱擊落美軍F-18戰(zhàn)機(jī) 現(xiàn)場(chǎng)畫(huà)面披露

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂(lè)要聞

張雪峰遺產(chǎn)分割復(fù)雜!是否立遺囑成關(guān)鍵

財(cái)經(jīng)要聞

管濤:中東局勢(shì)如何影響人民幣匯率走勢(shì)?

汽車要聞

智己LS8放大招 30萬(wàn)內(nèi)8系旗艦+全線控底盤秀實(shí)力

態(tài)度原創(chuàng)

時(shí)尚
健康
房產(chǎn)
本地
軍事航空

女人過(guò)了40歲別胡亂穿衣,趕緊看看這些日系穿搭,舒適又耐看

轉(zhuǎn)頭就暈的耳石癥,能開(kāi)車上班嗎?

房產(chǎn)要聞

41億!259畝!建學(xué)校…三亞這個(gè)大城更,最新方案曝光!

本地新聞

來(lái)永泰同安 赴一場(chǎng)春天的約會(huì)

軍事要聞

伊朗重申非交戰(zhàn)國(guó)家船只可安全通過(guò)霍爾木茲海峽

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版