在編程的道路上,犯錯(cuò)也是學(xué)習(xí)道路上不可或缺的一部分,但一旦意識(shí)到某種錯(cuò)誤的發(fā)生,就應(yīng)該想辦法避免,這樣,代碼就會(huì)越來越好,自己也會(huì)得到成長(zhǎng)。
話說失敗是成功之母,在編程的道路上,犯錯(cuò)也是學(xué)習(xí)道路上不可或缺的一部分。尤其是初學(xué)者,他們犯的錯(cuò)誤可能會(huì)比其他人更多,那么該如何才能避免這些錯(cuò)誤的發(fā)生呢?
要有避免錯(cuò)誤發(fā)生的意識(shí),一旦意識(shí)到某種錯(cuò)誤的發(fā)生,在下次編碼時(shí),就應(yīng)該想辦法避免,這樣,代碼就會(huì)越來越好,自己也會(huì)得到成長(zhǎng)。
其實(shí),大多數(shù)不良編程習(xí)慣的發(fā)生都源于我們的無知,沒有其他原因了,下面讓我們一起來看看哪些錯(cuò)誤是編程人員經(jīng)常犯的,不知道你有沒有犯過這些錯(cuò)誤,有則改之。
1.在沒有理解的情況下就粘貼代碼
有時(shí),你會(huì)發(fā)現(xiàn),你正在尋找某個(gè)功能的代碼恰巧存在于他人的代碼里,于是,你開始拷貝整段代碼,而不是去理解每一行代碼。
有時(shí),你所拷貝的代碼可能非常多,以至于你沒有時(shí)間去完全理解它。如果你經(jīng)常以這種方式拷貝代碼,那么你的應(yīng)用程序可能會(huì)存在很大的潛在風(fēng)險(xiǎn),比較脆弱而易出現(xiàn)bug。
這樣做的優(yōu)點(diǎn)就是你可以很快完成工作,但由于你沒有編寫這段代碼,所以,萬一在后期,這段代碼出現(xiàn)問題,你可能很難去維護(hù)。
所以,無論你所拷貝的代碼是多還少,你都應(yīng)該非常小心,確保自己已經(jīng)完全理解了這些代碼。如果你之前已經(jīng)使用過這段代碼,并且可以100%的運(yùn)行起來,沒有其他問題,那么你就可以放心地使用,否則,你一定要謹(jǐn)慎。
2.每次都從頭開始
這是初學(xué)者經(jīng)常犯的錯(cuò)誤,你可能會(huì)認(rèn)為很好,每一次都重頭開始創(chuàng)建應(yīng)用程序。但殊不知,這是巨大的資源浪費(fèi)——時(shí)間、精力和心思——這些完全可以更好地用在其它地方。
如果你需要的東西已經(jīng)有了,那就直接利用它,無需對(duì)同一個(gè)概念一遍一遍地重建。
如果有現(xiàn)成的API、框架或游戲引擎可以輕松完成你的任務(wù),那么你就應(yīng)用使用它。你的目標(biāo)并不是展示你的能力有多強(qiáng),而是確保應(yīng)用工作起來有多完美,并且利用較少的資源實(shí)現(xiàn)它。
這樣,你就可以事半功倍地完成任務(wù)。話說時(shí)間就是金錢,花更少的時(shí)間完成更多的事情,何樂而不為呢。
3.遇到問題就Google
許多次,習(xí)慣性的,一遇到新問題就通過Google來查找解決方案,要想成為一名好程序員,這并不是個(gè)好法子。如果你每次都是通過外部力量獲取解決方案,而不是自己思考,那么,你的思維將永遠(yuǎn)得不到挑戰(zhàn),不是有句俗話嗎:腦子不用會(huì)生銹的。
當(dāng)你的思維停止挑戰(zhàn),編程技能也會(huì)下降,尤其是對(duì)于程序員來說。解決問題的能力與編程技能的提升是有很大關(guān)系的。當(dāng)然,通過搜索來查找解決方案并不是什么壞事,但前提是,先動(dòng)腦;蛟S,你只需花費(fèi)很少的時(shí)間,就可能把問題很好地解決、或許你的解決方案比他人的更加精確。
不嘗試,你永遠(yuǎn)都不知道。
4.忽視警告
當(dāng)出現(xiàn)警告時(shí),你應(yīng)該意識(shí)到會(huì)有潛在的問題產(chǎn)生。
警告是一種跡象,表明你所做的功能并不能時(shí)時(shí)刻刻很好地工作。有時(shí),這些警告并不嚴(yán)重,并且可以安全的忽視。但當(dāng)問題真正來臨的時(shí)候,在應(yīng)用程序顯示成百上千個(gè)警告,并且不能完全正確地工作。
這樣,要想發(fā)現(xiàn)這些錯(cuò)誤的原因,就變成非常困難。你不得不花更多的時(shí)間來分析每個(gè)警告,并且查找問題的根源所在。相反,最佳的解決方案是當(dāng)警告初次出現(xiàn)時(shí),你就開始查找原因并解決。
通常,你只需使用正確的變量或方法即可解決大多數(shù)警告,無需花費(fèi)太多的時(shí)間。要盡早處理這些警告。
記住,對(duì)待警告如同錯(cuò)誤一樣。
5.快速修復(fù)而不是永久性地修復(fù)
有時(shí),我們只是快速地修復(fù)下問題,而不是永久性地解決。但如果一不小心,問題還會(huì)以各種各樣地方式出現(xiàn)。
同樣,修復(fù)問題時(shí)不應(yīng)該破壞原有的系統(tǒng),修復(fù)一個(gè)bug應(yīng)該是提高整個(gè)系統(tǒng)的運(yùn)行效率,而不是使它變慢或變笨。