程序員的最佳調(diào)試神器是什么?
[導(dǎo)讀]花了一下午(或一天)在試圖解決某個(gè)Bug,后來(lái)才知道解決方案很簡(jiǎn)單,當(dāng)時(shí)就是沒有想到。有個(gè)同事正好路過(guò),看到你愁眉苦臉的,問你“怎么了呀?”“噢,是這樣的。我遇到了一個(gè)問題,點(diǎn)擊這個(gè)控件的時(shí)……”當(dāng)你正準(zhǔn)備和同事詳細(xì)解釋的時(shí)候,突然靈光一現(xiàn),你話都沒說(shuō)完,就中斷了和同事的傾訴,繼...
花了一下午(或一天)在試圖解決某個(gè) Bug,后來(lái)才知道解決方案很簡(jiǎn)單,當(dāng)時(shí)就是沒有想到。
有個(gè)同事正好路過(guò),看到你愁眉苦臉的,問你“怎么了呀?”
“噢,是這樣的。我遇到了一個(gè)問題,點(diǎn)擊這個(gè)控件的時(shí)……” 當(dāng)你正準(zhǔn)備和同事詳細(xì)解釋的時(shí)候,突然靈光一現(xiàn),你話都沒說(shuō)完,就中斷了和同事的傾訴,繼續(xù)干活了。
同事微微一笑,又走開了。他并沒有怪你。
相信大家都有類似的經(jīng)歷。遇到 Bug/問題被卡住了,拉個(gè)人過(guò)來(lái),和他 blablabla 講了一通,很多時(shí)候中途你就找到了解決辦法。
有時(shí)候,并不一定要和人傾訴,還可以像其他東西傾訴,強(qiáng)迫自己把遇到的問題,詳細(xì)地解釋出來(lái)(一定要說(shuō)出來(lái))。
其實(shí)呢。這種方法,有一個(gè)術(shù)語(yǔ):小黃鴨調(diào)試法(Rubber Duck Debugging)。
維基百科有解釋:小黃鴨調(diào)試法是軟件工程中使用的調(diào)試代碼方法之一。就是在程序的調(diào)試、糾錯(cuò)或測(cè)試過(guò)程中,耐心地向小黃鴨解釋每一行程序的作用,以此來(lái)激發(fā)靈感。
名稱由來(lái)
此概念是參照于一個(gè)故事。故事中程序大師隨身攜帶一只小黃鴨,在調(diào)試代碼的時(shí)候會(huì)在桌上放上這只小黃鴨,然后詳細(xì)地向鴨子解釋每行代碼。(引自維基百科)
(大家可以看下圖。鴨子真不少呢。)
演化
這種方法流傳開后,很多程序員效仿,開始拿其他玩具,比如手辦。喜歡二次元的,還會(huì)拿初音哈?;蛘呤瞧渌醒?。如下圖。
“小黃鴨調(diào)試法”既能提升自己解決問題的能力,也提高了團(tuán)隊(duì)開發(fā)效率(畢竟,自己獨(dú)立解決難題比打斷其他同事去求助,團(tuán)隊(duì)的效率差之千里)。這個(gè)方法真是程序員的”開發(fā)必備良策“,值得在每一個(gè)開發(fā)團(tuán)隊(duì)推廣。
范品社把這種調(diào)試法做到了衛(wèi)衣





