PTT推薦

[討論] 靠submit紀錄來除錯是一個不好的習慣嗎

看板Soft_Job標題[討論] 靠submit紀錄來除錯是一個不好的習慣嗎作者
cytus74
(微酸桔子)
時間推噓27 推:29 噓:2 →:73

大家好 小弟剛出社會 在純軟這個行業大約半年
最近code base在做IT的時候打出一個bug
老鳥們沒空所以派我這隻菜鳥去修
當我打開專案開始從模組方向找線索時
老鳥甲路過 看了一眼說
你這樣debug效率有點慢 直接看submit紀錄找戰犯比較快
我試了一下 果然滿快就找到問題點了
根據老鳥甲所說 大概7-80%的bug都可以這樣抓

這裡想詢問各位大大
這種除錯習慣是不是對新手熟悉軟體架構不利
畢竟第一時間都在抓戰犯 而不是去了解目前軟體架構遇到的問題


----
Sent from BePTT on my OnePlus GM1910

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.128.240 (臺灣)
PTT 網址

ssccg12/27 19:33熟悉架構是一回事,除錯是一回事,沒有一定要同一個手段吧

ssccg12/27 19:34記錄不拿來抓錯,記身體健康的?

bill020512/27 19:38這是兩回事 埋了log但是不熟架構你還是不知道為何出現b

bill020512/27 19:38ug 但更多的是再熟架構都可能出現奇葩的bug 就是需要lo

bill020512/27 19:38g去幫忙debug

alan2327385012/27 19:55是 submit 記錄還是 commit 記錄呢?

cytus7412/27 19:56submit紀錄 看code diff抓bug

s06i0612/27 20:01我猜貴司沒在code review

nh60211as12/27 20:30沒在管控程式碼commit的這樣確實比較快

Onnnnnnnnnnn12/27 20:30這叫夾版本啦 通常就是週五上code 趕下班 賭一波

Onnnnnnnnnnn12/27 20:30 不驗就直接上啊哈哈哈

Onnnnnnnnnnn12/27 20:30敝司MTK 抓戰犯也這樣搞啊

samioplg12/27 20:56我以為debug靠log

alihue12/27 21:03急的話當然從 commit log 與 bug 執行路徑下手

alihue12/27 21:04要熟悉架構通常開發做吧 除非 bug 不急

yamakazi12/27 22:15如果是IT就能抓到的話,有沒有考慮CICD的時候把IT也做了

yamakazi12/27 22:15,這樣bug commit進去馬上就能抓到

yamakazi12/27 22:17我都這樣找root cause。還有的時候會上issue tracker看

yamakazi12/27 22:17看別組有沒有解過類似問題,有的話直接拿來抄,一小時就

yamakazi12/27 22:17搞定,然後其餘五天都在打混(?

yamakazi12/27 22:19debug mode能用就用,比你單看code更快熟悉架構。

charliejack12/27 22:22我有時候會用Binary search耶 有時候懶得看Code

charliejack12/27 22:22尤其專案真的太大 但能看Code當然會看

charliejack12/27 22:22照理來說 每次的Commit 應該是小區域小區域

yamakazi12/27 22:23要熟悉軟體架構的話,可以順便幫忙把class diagram, seq

yamakazi12/27 22:23uence diagram畫一畫分享到組內wiki,我會很感謝您

yamakazi12/27 22:30夾版本可以用git bisect

alan2327385012/27 22:33我也用過 binary search 大法...

taikobo12/27 22:38看到 submit 紀錄還以為是什麼 form...結果是 commit

superpandal12/27 22:51那只是因為他架構比你熟很多才會這樣 而且通常有抓戰

superpandal12/27 22:53犯習慣的公司程式碼幾乎都是屎山 你改他也改 不就看

superpandal12/27 22:54誰哪天被坑到...

superpandal12/27 22:56職場一些小手法很容易看清楚 不過就算老鳥錯他還是活

superpandal12/27 22:57的很滋潤 然後拿crud boy的錢要幫忙處理大事情 做的

superpandal12/27 22:57好也沒獎勵...

peter9812/27 23:08我也想了一下submit是甚麼 原來只的是交code...

viper970912/27 23:22推樓樓上

kurtsgm12/27 23:49git叫做commit 但有些version control叫做submit啦....

kurtsgm12/27 23:49不用挑語病 原po也不見得講錯

kurtsgm12/27 23:50前公司用perforce印象中就是submit

bill020512/28 00:11..原來是commit喔...還以為是form submit

vi00024612/28 00:33很少這樣查bug 除非是毫無頭緒的 才會看是不是最近改的

vi00024612/28 00:33通常都是從各種log查吧

Gaogaigar12/28 01:06/description/

JasonChou00712/28 01:38另外提供一個想法,有時候程式較大,主程式跳至子

JasonChou00712/28 01:38函數,子函數再跳至孫函數,來來去去的,有可能會

JasonChou00712/28 01:38在某一個函數裡面不小心計算錯誤,而造成執行次數

JasonChou00712/28 01:38出錯。這種情況可在子函數跟孫函數裡面,各加一個

JasonChou00712/28 01:38執行次數計數器,跑完一遍後可以直接查看計數器的

JasonChou00712/28 01:38值,就能知道子函數、孫函數各執行了幾次

acgotaku12/28 01:57其實commit 加上票號版本,看功能就能快速對應哪一版bug

acgotaku12/28 01:58搭配changelog管理生成工具

acgotaku12/28 01:58還在對commit, 只能說版控做得還不夠好

darkMood12/28 02:28老鳥很清楚,bug都是同事生產的,公司一堆廢物啊

ericthree12/28 08:44不然你debug要花多少時間

hidog12/28 09:00了解架構 <= 這個要看你急不急

hidog12/28 09:01都火燒屁股了還在了解架構,會被釘得滿頭包

hidog12/28 09:01眼前的火滅了有空在自己去研究架構

superpandal12/28 09:14哪有時間可以給你搞好commit... 一個人又不是另一個

superpandal12/28 09:15人肚子裡的蛔蟲... 簡單化才是正確的 簡單並不意味著

superpandal12/28 09:16無法實現複雜功能

superpandal12/28 09:18通常老鳥當時是bug開始的一員 不管有沒有機會管事 最

Lhmstu12/28 09:19熟架構跟debug本身就不衝突

superpandal12/28 09:19後有機會了也是不可能改變了 後面的人會很痛苦

superpandal12/28 09:20要解決的好要了解架構 沒時間當然只能端出一個十分馬

superpandal12/28 09:21乎的成果 出張嘴檢討是很簡單的

superpandal12/28 09:24最後就是繼續堆屎山 反正被檢討的是別人 每個人都想

superpandal12/28 09:24過的好

Csir12/28 09:26原來大家都用二元搜尋夾版本

dave12312/28 09:59用commit抓bug跟理解架構不衝突。說先用commit點除錯的無

dave12312/28 09:59法理解架構,應該是個人就不想去理解。你發現commit的cha

dave12312/28 09:59nge造成錯誤,仍然會去了解他上下幾層的關係以及邏輯。這

dave12312/28 09:59兩個方式是相輔相成。

abc092200112/28 10:10form submit +1

ScottOAO12/28 10:20git bisect

CRPKT12/28 10:29一個 commit 引發 bug 不代表錯的是那支 commit 呀 XD

bnd032712/28 12:06https://git-scm.com/docs/git-bisect 了解一下

eva1945200212/28 12:58我以為debug都是用step in step out

SouthRa12/28 13:45可以光靠看diff而不用熟悉架構就能抓出來的bug不就低能錯

SouthRa12/28 13:45誤嗎,review時就該看出來的那種

SouthRa12/28 13:48但就算是不低能的bug,熟悉系統架構的情況下還是配diff一

SouthRa12/28 13:48起看最有效率

bnd032712/28 13:59樓上一個鬼轉耶,那幹嘛要噓人

knives12/28 14:14這老鳥甲沒救了

knives12/28 14:16原來不是 form submit,推回來

andy83102012/28 15:54你講的兩個domain不同吧 debug跟架構瞭解是兩回事

SouthRa12/28 17:18就純噓低能錯誤,推回來

lazarus112112/28 23:16db撈出來才造成錯誤的這種方法就沒效了

open201412/29 00:58用二元搜尋夾版本是什麼意思?

s06yji312/29 01:02看哪個版本是第一個有bug,看改了什麼鬼

kattte12/29 14:13長知識

kewang12/29 18:55改了一點點東西記得commit 然後用git bisect找問題就很快

luluking12/29 21:04看是哪種bug啊,新改出來的這樣找比較有效率

crazylunar12/30 02:48debug用log找吧,找到問題再git history 抓戰犯不是

crazylunar12/30 02:48嗎…commit message 能找bug 第一次聽到…

crazylunar12/30 03:19更正,是git blame

physicsdk01/01 00:58工作要的是效率,事情丟給你要在時間內有結果,解掉是

physicsdk01/01 00:58結果,抓到戰犯也是,後者簡單啊,不難理解

zased01/01 04:13這有什麼好吵 兩項技能都點滿就好了啊 說實在不要去糾結

zased01/01 04:13這些 趕快變強比較實在

mithuang01/02 08:44沒版控就算了,有版控可找BUG了,誰還在管你習慣好不好咧~

mithuang01/02 08:44能找到問題就是好方法啦,不然寫git bisect功能的人不就

mithuang01/02 08:44是軟體界的敗類,教壞大家依賴版控了?