沒有人是完美的,因此在Java開發(fā)這個(gè)行業(yè)中,代碼中出現(xiàn)BUG是相當(dāng)正常的現(xiàn)象。面對(duì)BUG,一些Java程序員會(huì)生氣,會(huì)沮喪,會(huì)心煩意亂,甚至?xí)倚膯蕷猓硪恍㎎ava程序員仍然可以保持冷靜沉著,仔細(xì)的思考如何處理修復(fù)BUG,如何修復(fù)BUG,而修復(fù)BUG的過程也是值得一個(gè)程序員細(xì)細(xì)琢磨的地方。
開發(fā)應(yīng)用程序是一個(gè)非常有壓力的工作。我想分享一些程序員修復(fù)他們的源代碼時(shí)所經(jīng)歷的的想法。這是事情變得緊張時(shí)所觸發(fā)的輕松幽默。而且我也相信很多程序員都經(jīng)歷過這些艱辛,然后再事后一笑而過。
1.“我不知道我該刪除它還是重寫它”
回顧從前老的源代碼,會(huì)有一種想要返工寫成較大塊集群的沖動(dòng)和誘惑。丑陋的邏輯語(yǔ)句,還有冗長(zhǎng)的語(yǔ)法,導(dǎo)致代碼非常難以閱讀!但話又說回來,如果代碼沒有壞掉的話,那就不要去修復(fù)它。這種洶涌澎拜的斗爭(zhēng)是我經(jīng)常要面對(duì)的,而且顯然會(huì)困擾許多軟件開發(fā)人。
2.“對(duì)于起始框架我應(yīng)該查看Github”
我想大多數(shù)開發(fā)人員都知道Github,上面每天都有數(shù)量驚人的開源項(xiàng)目發(fā)布。任何語(yǔ)言的程序員都可以通過互聯(lián)網(wǎng)借鑒現(xiàn)有項(xiàng)目,加入維基討論,或者創(chuàng)建自己的代碼倉(cāng)庫(kù)。它是各種項(xiàng)目所需插件和模板的超棒資源。
3.“為什么這個(gè)腳本需要這么多庫(kù)?”
尤其是一些比較大眾化的語(yǔ)言,如Java和Objective-C,庫(kù)的數(shù)量可能變得異常兇猛。當(dāng)構(gòu)建一個(gè)需要大量基礎(chǔ)的框架時(shí),所需的庫(kù)的數(shù)量就變得顯而易見得多。即使是一些適用于JavaScript的插件,也會(huì)額外需要無數(shù)的文件。有時(shí),這會(huì)讓人覺得煩雜惱人——但至少是有用的!
4.“在互聯(lián)網(wǎng)的某個(gè)地方一定已經(jīng)有了解決方案。”
我面對(duì)棘手問題的第一反應(yīng)是上網(wǎng)查。程序員會(huì)將他們遇到的問題通過帖子發(fā)布到論壇上,然后這個(gè)問題最終得到解決并歸檔。谷歌搜索問題關(guān)鍵字的好幫手,可以指點(diǎn)你往正確的討論方向走。不幸的是,有的時(shí)候卻是因?yàn)槭诸^沒有特定問題的太多信息而找不著北。
5.“有沒有這個(gè)功能的插件?”
為什么要重新發(fā)明輪子?插件是擴(kuò)大任何程序或網(wǎng)站用戶界面的偉大資源。此外,它們還為開發(fā)人員提供了一些自定義和獨(dú)特的選項(xiàng)。萬一真的沒有可用插件的話,沒什么不自己構(gòu)建一個(gè)呢?
6.“雖然網(wǎng)站可以工作,但我害怕IE瀏覽器。”
在InternetExplorer中渲染網(wǎng)頁(yè)的歷史充滿的艱辛考驗(yàn),是我們有目共睹或親身體驗(yàn)過的。從5.5版本升級(jí)到IE9-IE10,總是需要爭(zhēng)取到更高級(jí)瀏覽器的支持。web開發(fā)人員可能會(huì)害怕調(diào)試網(wǎng)頁(yè),因?yàn)樵贗E6中打開頁(yè)面是一個(gè)渲染噩夢(mèng)。值得慶幸的是,這樣的日子正在慢慢成為過去。
7.“對(duì)于邏輯表達(dá)式而言,這似乎并不怎么合乎邏輯。”
對(duì)于if/else循環(huán),for循環(huán),while循環(huán),do循環(huán)等等,都有邏輯表達(dá)式。當(dāng)瀏覽示例代碼時(shí),我試圖指出我的邏輯是如何工作的。NOT運(yùn)算符和比較標(biāo)記的數(shù)量又是如此之多。我經(jīng)常回過頭去更新我自己的邏輯以便于更好地適合未來的做法。
8.“我用30分鐘寫函數(shù),花2小時(shí)讓它工作。”
這難道不像我們自己的編程故事嗎?你正興致勃勃地在構(gòu)建著什么,但是突然之間,函數(shù)輸出了一個(gè)致命的錯(cuò)誤。所以,現(xiàn)在你必須回過頭去刪除一些代碼塊,以找出錯(cuò)誤發(fā)生的行號(hào)。當(dāng)你終于找到罪魁禍?zhǔn)祝⒔鉀Q它時(shí),雖然有種精疲力竭的感覺,但也滿心安慰。
9.“在閱讀多篇博客文章之后,我意識(shí)到,我之前全都是錯(cuò)的。”
我常常會(huì)一開始就根據(jù)自己的編程思想,一頭扎進(jìn)去研究,但是這可能會(huì)導(dǎo)致麻煩,如果事情不像原先設(shè)想地那樣順利的話。已經(jīng)有很多次在我啟動(dòng)一個(gè)項(xiàng)目之后,陷入了困境,然后只好尋求博客和其他論文的支持。然后我發(fā)現(xiàn)我的整個(gè)方法實(shí)際上是錯(cuò)誤的,而且從頭來過更容易!如果我開始的時(shí)候能先做一番研究的話,從長(zhǎng)遠(yuǎn)來說,反而節(jié)省時(shí)間。
10.“StackOverflow上和善的人或許愿意幫助我。”
我已經(jīng)數(shù)不清有多少次我通過StackOverflow解決了難題。社區(qū)里都是和善和聰明的人,他們非常愿意提供幫助,如果你邁出第一步的話。在所有的在線論壇中,StackOverflow絕對(duì)是對(duì)軟件編程以及前端/后端web開發(fā)支持很廣泛的網(wǎng)絡(luò)。
關(guān)注動(dòng)力節(jié)點(diǎn)官網(wǎng)更多的咨詢?cè)诘却恪jP(guān)注動(dòng)力節(jié)點(diǎn)官方微信(動(dòng)力節(jié)點(diǎn)Java學(xué)院)還可獲得免費(fèi)Java視頻喲。