程式員在普通人的印象里是一份嚴(ku)謹(bi)的職業,也是一個被搞怪吐槽樂此不疲的職業,程式員們面對複雜的代碼敲打電腦時連眉頭都不會皺一下,但是有一個詞卻是他們痛苦的根源,它就是Bug。 有不少的新手程式員,剛開始都是從修BUG開始做起的。 修bug有助於熟悉項目,瞭解大概哪些類參與了執行線路,相 ...
程式員在普通人的印象里是一份嚴(ku)謹(bi)的職業,也是一個被搞怪吐槽樂此不疲的職業,程式員們面對複雜的代碼敲打電腦時連眉頭都不會皺一下,但是有一個詞卻是他們痛苦的根源,它就是Bug。
有不少的新手程式員,剛開始都是從修BUG開始做起的。
修bug有助於熟悉項目,瞭解大概哪些類參與了執行線路,相互調用關係又是如何,結構設計上有什麼特點。
以前猿姐就聽過這樣一個故事
有三個程式員需要穿過一片田地,到達對岸的房子。
初級程式員看了一眼笑著說道:不遠,只需要十分鐘就行。
資深級程式員想了一下說道:我應該在一天內過去。”菜鳥程式員很驚訝。
大神程式員看了一眼田地,說:我覺得十五分鐘應該夠了,資深程式員冷笑了一聲。
於是,初級程式員出發了,剛走了一步就碰到了地雷,只好返回再次嘗試,最好,花費了一天的時間才過去,結果卻是傷痕纍纍。
資深程式員一齣發就匍匐前進,仔細地拍打地面,尋找地雷,只有在安全的時候才前進。他在一天的時間內小心謹慎地緩慢爬過了這片地,只觸發了幾個地雷。
大神程式員出發之後徑直穿過了田地,十分果斷。他只用了十分鐘就到了另一邊。
“你是怎麼做到的?”另外兩個人問道,“那些地雷怎麼沒有傷到你?”
“很簡單,”他回答道,“我最初就沒有埋地雷。”
哈哈是不是很有意思呢
開發應用程式是一個非常有壓力的工作。沒有人是完美的,因此在這個行業中,代碼中出現 Bug 是相當普遍的現象。
面對 Bug,一些程式員會生氣,會沮喪,會心煩意亂,甚至會灰心喪氣,而另一些程式員會依然保持冷靜沉著。因此,如何處理修複 Bug 的過程也值得我們細細琢磨。
猿姐想分享一些程式員修複他們的源代碼時所經歷的想法。我相信很多開發人員和軟體工程師經歷過這些艱辛,然後在事後一笑而過。以下你經歷過哪些?
1.“我不知道是要刪除還是要重寫它”
回顧從前老的源代碼,會有一種想要返工寫成較大塊集群的衝動和誘惑。醜陋的邏輯語句,還有冗長的語法,導致代碼非常難以閱讀!
但話又說回來,如果代碼沒有壞掉的話,那就不要去修複它。這種洶涌澎拜的鬥爭是我經常要面對的,而且顯然會困擾許多軟體開發人員。
2.“對於起始框架我應該查看 Github”
我想大多數開發人員都知道 Github,上面每天都有數量驚人的開源項目發佈。
任何語言的程式員都可以通過互聯網借鑒現有項目,加入維基討論,或者創建自己的代碼倉庫。它是各種項目所需插件和模板的超棒資源。
3.“為什麼這個腳本需要這麼多庫?”
尤其是一些比較大眾化的語言,如 Java 和 Objective-C,庫的數量可能變得異常凶猛。當構建一個需要大量基礎的框架時,所需的庫的數量就變得顯而易見得多。
即使是一些適用於 Java 的插件,也會額外需要無數的文件。有時,這會讓人覺得煩雜惱人——但至少是有用的!
4.“在互聯網的某個地方一定已經有瞭解決方案。”
我面對棘手問題的第一反應是上網查。程式員會將他們遇到的問題通過帖子發佈到論壇上,然後這個問題最終得到解決並歸檔。
谷歌搜索問題關鍵字的好幫手,可以指點你往正確的討論方向走。不幸的是,有的時候卻是因為手頭沒有特定問題的太多信息而找不著北。
5.“有沒有這個功能的插件?”
為什麼要重新發明輪子?插件是擴大任何程式或網站用戶界面的偉大資源。此外,它們還為開發人員提供了一些自定義和獨特的選項。萬一真的沒有可用插件的話,為什麼不自己構建一個呢?
6.“雖然網站可以工作,但我害怕 IE 瀏覽器。”
在 Internet Explorer 中渲染網頁的歷史充滿了艱辛考驗,是我們有目共睹或親身體驗過的。
從 5.5 版本升級到 IE9、IE10,總是需要爭取到更高級瀏覽器的支持。Web 開發人員可能會害怕調試網頁,因為在 IE6 中打開頁面是一個渲染噩夢。值得慶幸的是,這樣的日子正在慢慢成為過去。
7.“對於邏輯表達式而言,這似乎並不怎麼合乎邏輯。”
對於 if / else 迴圈,for 迴圈,while 迴圈,do 迴圈等等,都有邏輯表達式。當瀏覽示例代碼時,我試圖指出我的邏輯是如何工作的。
NOT 運算符和比較標記的數量又是如此之多。我經常回過頭去更新我自己的邏輯以便於更好地適合未來的做法。
8.“我用 30 分鐘寫函數,花 2 小時讓它工作。”
這難道不像我們自己的編程故事嗎?你正興緻勃勃地在構建著什麼,但是突然之間,函數輸出了一個致命的錯誤。
所以,現在你必須回過頭去刪除一些代碼塊,以找出錯誤發生的行號。當你終於找到罪魁禍首,並解決它時,雖然有種精疲力竭的感覺,但也滿心安慰。
我常常會一開始就根據自己的編程思想,一頭扎進去研究,但是這可能會導致麻煩,如果事情不像原先設想地那樣順利的話。
已經有很多次在我啟動一個項目之後,陷入了困境,然後只好尋求博客和其他論文的支持。
最後我發現我的整個方法實際上是錯誤的,而且從頭來過更容易!如果我開始的時候能先做一番研究的話,從長遠來說,反而節省時間。
來源 https://post.mp.qq.com/kan/article/2063422179-295542592.html?_wv=2147483777&sig=ee208a49a460584bd6d97e6651f38a19&article_id=295542592&time=1552472230&_pflag=1&x5PreFetch=1