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

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

讀代碼前先跑5個(gè)「Git命令」?方法火了,網(wǎng)友卻吵起來(lái)了

0
分享至

機(jī)器之心編輯部


問(wèn)大家一個(gè)問(wèn)題:當(dāng)你接觸一個(gè)陌生的代碼庫(kù)時(shí),第一步是做什么?

相信大多數(shù)人的做法是,打開 README,從目錄開始,一行一行往下讀。但現(xiàn)在,一些工程師開始采用一種完全不同的方法:在看代碼之前,先看 Git。

最近,一篇名為「在閱讀任何代碼之前,我會(huì)運(yùn)行的 Git 命令」的文章引發(fā)網(wǎng)友熱議,文中提出一個(gè)看似簡(jiǎn)單卻頗具顛覆性的觀點(diǎn):代碼只是結(jié)果,Git 才是過(guò)程。



如何理解?

作者 Ally Piechowski 認(rèn)為,對(duì)于一個(gè)新的代碼庫(kù),打開終端,運(yùn)行一組 Git 命令,在查看任何文件之前,「提交歷史」就能給出一幅關(guān)于這個(gè)項(xiàng)目的「診斷圖」:是誰(shuí)構(gòu)建了它、問(wèn)題集中在哪些地方、團(tuán)隊(duì)是自信滿滿地交付,還是在雷區(qū)邊緣小心試探……

因此,Ally Piechowski 建議,在讀代碼之前,可以先運(yùn)行這五個(gè) Git 命令:

一、哪些地方改動(dòng)最多



通過(guò)這一 Git 命令,可以查看過(guò)去一年中改動(dòng)最多的 20 個(gè)文件,排在最前面的那個(gè)文件,幾乎總是別人會(huì)提前提醒那一個(gè):「哦對(duì),就是那個(gè)文件,沒(méi)人敢動(dòng)它?!?/p>

當(dāng)然,高頻改動(dòng)并不一定意味著代碼不好,有時(shí)只是開發(fā)活躍,但如果一個(gè)文件改動(dòng)頻繁,同時(shí)又沒(méi)人愿意接手,那可能就是最明確的「代碼拖累」信號(hào)。這里的每一次修改,往往都是「舊補(bǔ)丁上再打補(bǔ)丁」。一個(gè)小改動(dòng)的影響范圍難以預(yù)測(cè)。團(tuán)隊(duì)在做估算時(shí)會(huì)刻意加 buffer,因?yàn)樗麄冎肋@塊代碼「會(huì)反抗」。

2005 年微軟研究院的一項(xiàng)研究發(fā)現(xiàn),基于「變更頻率」(churn)的指標(biāo),比單純的復(fù)雜度指標(biāo)更能預(yù)測(cè)缺陷。往往一個(gè)同時(shí)「高 churn + 高 bug」的文件,就是最大的風(fēng)險(xiǎn)點(diǎn)。

二、誰(shuí)在寫這些代碼?



查看按提交數(shù)量排序的所有貢獻(xiàn)者,如果一個(gè)人貢獻(xiàn)了 60% 以上,那就可能是「關(guān)鍵人依賴」(bus factor),而如果這個(gè)人已經(jīng)在六個(gè)月前離開了,那就是危機(jī)。

另外在尾部,比如有 30 個(gè)貢獻(xiàn)者,但過(guò)去一年只有 3 個(gè)活躍。這說(shuō)明,構(gòu)建這個(gè)系統(tǒng)的人,并不是現(xiàn)在在維護(hù)它的人。

還需要注意的是:如果團(tuán)隊(duì)使用 squash merge(壓縮合并),作者信息會(huì)被壓縮。這種情況下,結(jié)果反映的是「誰(shuí)合并了代碼」,而不是「誰(shuí)寫了代碼」。因此在下結(jié)論前,最好先了解團(tuán)隊(duì)的合并策略。

三、Bug 都集中在哪?



這一命令的結(jié)構(gòu)與 churn 分析類似,但只篩選包含 Bug 關(guān)鍵詞的提交。將這個(gè)列表與前面的 churn 熱點(diǎn)做對(duì)比,兩個(gè)列表都出現(xiàn)的文件,就是最高風(fēng)險(xiǎn)代碼:它們不斷出問(wèn)題、不斷被修補(bǔ),但從未被徹底解決。

但同時(shí),這也依賴于提交信息的規(guī)范程度,如果團(tuán)隊(duì)每次都寫「update stuff」,那幾乎得不到有效信息。不過(guò)即便是粗略的 Bug 分布圖,也比完全沒(méi)有要強(qiáng)。

四、項(xiàng)目是在加速,還是在停滯?



這一命令可以查看整個(gè)倉(cāng)庫(kù)歷史中,每個(gè)月的提交數(shù)量。如果節(jié)奏穩(wěn)定,則說(shuō)明項(xiàng)目是健康的;如果某個(gè)月提交量突然減半,通常意味著有人離開了;如果 6 到 12 個(gè)月呈下降趨勢(shì),說(shuō)明團(tuán)隊(duì)正在失去動(dòng)能;如果是周期性高峰 + 低谷,說(shuō)明團(tuán)隊(duì)是「集中發(fā)版」,而不是持續(xù)交付。

五、團(tuán)隊(duì)有多頻繁在「救火」?



這一命令是查看「回滾」(revert)與「熱修復(fù)」(hotfix)的頻率。一年內(nèi)偶爾幾次是正常的,但如果每隔幾周就有一次「回滾」,說(shuō)明團(tuán)隊(duì)并不信任自己的發(fā)布流程,而這通常意味著更深層的問(wèn)題:測(cè)試不可靠、缺乏預(yù)發(fā)布環(huán)境(staging),或者部署流程讓「回滾」變得困難。

如果結(jié)果為零,也是一種信號(hào):要么系統(tǒng)非常穩(wěn)定,要么團(tuán)隊(duì)根本不寫清晰的提交信息。

危機(jī)模式是很容易識(shí)別的:要么存在,要么不存在。

在文章的最后,作者表示,這五個(gè) Git 命令只需要幾分鐘時(shí)間,但卻能讓你知道:應(yīng)該先讀哪些代碼,以及閱讀時(shí)要重點(diǎn)關(guān)注什么,從而讓你在一開始就有策略地理解代碼庫(kù),而非在其中盲目游走。

其實(shí),從作者的分享來(lái)看,這幾個(gè) Git 命令,改變了傳統(tǒng)對(duì)代碼庫(kù)的理解方式,提供了一種新的視角,看到的不再只是「現(xiàn)在的代碼長(zhǎng)什么樣」,而是「現(xiàn)在的代碼為何會(huì)變成這樣」。

與此同時(shí),這種新穎的視角在 Hacker News 上并沒(méi)有被完全接受,大家熱議:這,真的靠譜嗎?

有網(wǎng)友認(rèn)為,Git 數(shù)據(jù)并不總是可靠,Commit Message 也會(huì)很水。

他表示,「如果團(tuán)隊(duì)有規(guī)范的提交信息,這些方法才有用?!沟F(xiàn)實(shí)中,無(wú)論大公司還是中小企業(yè),提交記錄往往混亂,清一色的「Changes」、隨意 merge、莫名 revert,還有一些人,明明團(tuán)隊(duì)約定用 rebase,卻還是會(huì)提交 merge commit。

所以,他認(rèn)為,「這一套方法主要只在中大型開源項(xiàng)目中才真正有用 —— 那些有清晰的 CONTRIBUTING.md/ README.md,以及明確的提交規(guī)范和合并流程的項(xiàng)目?!?/p>



還有網(wǎng)友認(rèn)為,這種方法是在過(guò)度解讀 Git 數(shù)據(jù),Git 分析并不總是等于真相,很容易誤導(dǎo)判斷。

他結(jié)合自己的親身經(jīng)歷分析,有時(shí)候開發(fā)者提交次數(shù)多,也許只是因?yàn)樗麄儽旧砟芰Σ恍?。?dāng)然,他也表示,這并不是說(shuō)提交次數(shù)多就等于開發(fā)者不好。只是想提醒大家,如果把這些 Git 命令的結(jié)果當(dāng)成事實(shí)本身,就有可能看不到全貌。

「如果有人跑完這些命令后跑來(lái)跟我說(shuō):「我發(fā)現(xiàn)某某是提交最多的人,但他 X 個(gè)月前離職了,我們?cè)撛趺崔k???」我可能要很努力才能忍住不笑……」



此外,還有一個(gè)爭(zhēng)議點(diǎn)在于,高 churn 是否等于高風(fēng)險(xiǎn)?

網(wǎng)友認(rèn)為,在測(cè)試中接觸最多的文件往往也是最無(wú)關(guān)緊要的文件,比如依賴文件(package.json)、lock file、CI 配置,以及一些自動(dòng)生成文件等,這些文件會(huì)頻繁改動(dòng),但并不代表復(fù)雜。

因此,更準(zhǔn)確的做法是,將 churn 結(jié)合復(fù)雜度來(lái)看。



那么你呢,你是如何看代碼庫(kù)的?或者覺(jué)得這種方法是否有啟發(fā),歡迎大家評(píng)論區(qū)留言、交流!

https://piechowski.io/post/git-commands-before-reading-code/

https://news.ycombinator.com/item?id=47687273

特別聲明:以上內(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)推薦
前阿里財(cái)務(wù)總監(jiān)爆火言論:普通家庭買車是最蠢的動(dòng)作!評(píng)論炸鍋

前阿里財(cái)務(wù)總監(jiān)爆火言論:普通家庭買車是最蠢的動(dòng)作!評(píng)論炸鍋

許三歲
2026-04-10 09:31:44
官宣!馬刺傷情報(bào)告出爐,掘金有意挑火箭,湖人干就完了

官宣!馬刺傷情報(bào)告出爐,掘金有意挑火箭,湖人干就完了

世界體育圈
2026-04-12 11:59:28
1954年,甘祖昌得知被評(píng)為準(zhǔn)軍級(jí):我有意見,要向中央討要個(gè)說(shuō)法

1954年,甘祖昌得知被評(píng)為準(zhǔn)軍級(jí):我有意見,要向中央討要個(gè)說(shuō)法

史之銘
2026-04-12 17:55:26
狂轟11:2,溫瑞博3:1淘汰日乒世界冠軍,球迷怒噴王皓撞南墻不拐

狂轟11:2,溫瑞博3:1淘汰日乒世界冠軍,球迷怒噴王皓撞南墻不拐

觀察鑒娛
2026-04-12 10:28:21
中年男人最大的悲哀是什么?網(wǎng)友:我,中年女人,也對(duì)啥都沒(méi)興趣

中年男人最大的悲哀是什么?網(wǎng)友:我,中年女人,也對(duì)啥都沒(méi)興趣

帶你感受人間冷暖
2026-04-10 01:21:44
美伊談判破裂的三大癥結(jié):霍爾木茲、濃縮鈾和百億凍結(jié)資金

美伊談判破裂的三大癥結(jié):霍爾木茲、濃縮鈾和百億凍結(jié)資金

華爾街見聞官方
2026-04-12 16:55:53
“留學(xué)回來(lái),15次相親失敗”,杭州女孩被拆穿:連繁殖能力都沒(méi)有

“留學(xué)回來(lái),15次相親失敗”,杭州女孩被拆穿:連繁殖能力都沒(méi)有

皓皓情感說(shuō)
2026-04-10 22:54:59
廣東戰(zhàn)廣廈12人名單,黃明依入圍,杜鋒變陣,徐杰替補(bǔ)三將關(guān)鍵

廣東戰(zhàn)廣廈12人名單,黃明依入圍,杜鋒變陣,徐杰替補(bǔ)三將關(guān)鍵

佳佳說(shuō)奇事故事
2026-04-12 16:58:26
教育部通知!9月入學(xué)迎來(lái)顛覆性改革,孩子上學(xué)不用再拼家底了

教育部通知!9月入學(xué)迎來(lái)顛覆性改革,孩子上學(xué)不用再拼家底了

今朝牛馬
2026-04-10 22:35:42
熱議!雖然把醫(yī)生投訴了,但醫(yī)生醫(yī)術(shù)好,還想找你看??!醫(yī)生能拒診嗎?

熱議!雖然把醫(yī)生投訴了,但醫(yī)生醫(yī)術(shù)好,還想找你看病!醫(yī)生能拒診嗎?

華醫(yī)網(wǎng)
2026-04-12 05:41:34
廣東莫氏雞煲老板誠(chéng)實(shí)經(jīng)營(yíng):雞源已斷卻贏得食客信賴

廣東莫氏雞煲老板誠(chéng)實(shí)經(jīng)營(yíng):雞源已斷卻贏得食客信賴

馬蹄燙嘴說(shuō)美食
2026-04-12 12:04:59
中美印負(fù)債金額差距斷崖:美36萬(wàn)億,印160萬(wàn)億,中國(guó)有多少?

中美印負(fù)債金額差距斷崖:美36萬(wàn)億,印160萬(wàn)億,中國(guó)有多少?

夢(mèng)史
2026-04-12 04:48:05
政變只是一個(gè)開始,伊朗要變天了,中國(guó)最擔(dān)心的事情,恐將發(fā)生

政變只是一個(gè)開始,伊朗要變天了,中國(guó)最擔(dān)心的事情,恐將發(fā)生

舊鐵皮往南開
2026-04-12 12:31:02
亞錦賽戰(zhàn)報(bào):韓國(guó)3金1銀收官!國(guó)羽鎖定1金2銀只待石宇奇

亞錦賽戰(zhàn)報(bào):韓國(guó)3金1銀收官!國(guó)羽鎖定1金2銀只待石宇奇

老汆古裝影視解說(shuō)
2026-04-12 17:11:36
機(jī)關(guān)事業(yè)單位職工未來(lái)要調(diào)整為“一周4天工作制”,你贊同嗎?

機(jī)關(guān)事業(yè)單位職工未來(lái)要調(diào)整為“一周4天工作制”,你贊同嗎?

細(xì)說(shuō)職場(chǎng)
2026-04-12 09:39:35
農(nóng)村酒席嚴(yán)查!2026新規(guī)落地,這3種酒堅(jiān)決不能辦,違者直接處罰

農(nóng)村酒席嚴(yán)查!2026新規(guī)落地,這3種酒堅(jiān)決不能辦,違者直接處罰

復(fù)轉(zhuǎn)這些年
2026-04-08 13:04:32
2換1神級(jí)交易!狂攬31助攻5失誤!詹姆斯等來(lái)頂級(jí)控衛(wèi)

2換1神級(jí)交易!狂攬31助攻5失誤!詹姆斯等來(lái)頂級(jí)控衛(wèi)

籃球教學(xué)論壇
2026-04-12 13:27:10
蘭州擒獲殺人惡魔:八名特警破門而入,搏斗十分鐘,情節(jié)堪比武俠劇

蘭州擒獲殺人惡魔:八名特警破門而入,搏斗十分鐘,情節(jié)堪比武俠劇

隴史薈王文元
2026-04-11 07:34:39
全程眼突鼓腮,看了觀眾對(duì)孫儷的評(píng)價(jià),才知張藝謀這句話的含金量

全程眼突鼓腮,看了觀眾對(duì)孫儷的評(píng)價(jià),才知張藝謀這句話的含金量

陳述影視
2026-04-04 17:53:34
一場(chǎng)3-1,讓國(guó)乒收獲第2冠!太原賽12日賽程出爐:溫瑞博沖雙冠王

一場(chǎng)3-1,讓國(guó)乒收獲第2冠!太原賽12日賽程出爐:溫瑞博沖雙冠王

侃球熊弟
2026-04-11 20:26:26
2026-04-12 18:35:00
機(jī)器之心Pro incentive-icons
機(jī)器之心Pro
專業(yè)的人工智能媒體
12729文章數(shù) 142623關(guān)注度
往期回顧 全部

科技要聞

理想稱遭惡意拉踩,東風(fēng)日產(chǎn):尊重同行

頭條要聞

伊朗不接受美"紅線" 消息人士:美在談判決策上犯了錯(cuò)

頭條要聞

伊朗不接受美"紅線" 消息人士:美在談判決策上犯了錯(cuò)

體育要聞

五大聯(lián)賽首冠出爐?拜仁或提前4輪衛(wèi)冕德甲

娛樂(lè)要聞

46歲趙達(dá)官宣結(jié)婚!曾與殷桃談婚論嫁

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

美伊談判破裂的三大癥結(jié)

汽車要聞

煥新極氪007/007GT上市 限時(shí)19.39萬(wàn)起

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

藝術(shù)
親子
手機(jī)
數(shù)碼
公開課

藝術(shù)要聞

書法“初學(xué)者”如何選帖?這3大重點(diǎn)一定要牢牢記住!

親子要聞

“孩子都8歲了 一定要分床睡”,醫(yī)生分享:如果孩子長(zhǎng)期不和家人分床,“會(huì)影響性格發(fā)育、情商發(fā)育 很難培養(yǎng)獨(dú)立性”

手機(jī)要聞

蘋果贏麻了!iPhone 17國(guó)內(nèi)銷量突破2721萬(wàn)臺(tái):Pro Max成最大功臣

數(shù)碼要聞

破壁機(jī)哪個(gè)牌子好?安全無(wú)毒材質(zhì)是重點(diǎn),揭秘TOP10家用哪種好

公開課

李玫瑾:為什么性格比能力更重要?

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