版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)成為好程序員必須避免的壞習(xí)慣作為一名程序員,犯錯(cuò)誤不可避免,這是你學(xué)習(xí)編程課程中的一部分。在你的職業(yè)生涯中你會(huì)犯很多錯(cuò)誤–有的特別、有的普遍–通過(guò)這些錯(cuò)誤你可以學(xué)習(xí)如何避免在將來(lái)再犯同樣的錯(cuò)誤。但是如果你是一個(gè)初學(xué)者,你犯的錯(cuò)誤可能會(huì)比其他人更頻繁。那么如何才能避免大部分程序員每天都犯的這些普遍的錯(cuò)誤呢?以下是我整理的成為好程序員必須避免的5個(gè)壞習(xí)慣,希望對(duì)大家有所幫助。
想要避免錯(cuò)誤,就要對(duì)它有所了解。這也是為什么我要和大家分享一些在我們的程序員生涯中阻礙我們成長(zhǎng)的普遍錯(cuò)誤。在開始之前,你可能想知道為什么我知道這些是錯(cuò)誤,不是最佳的方法?
有一個(gè)簡(jiǎn)單的回答就是–在我的職業(yè)生涯中,所有這些情況我都遇到過(guò)。有些情況經(jīng)常遇到,有些只遇到過(guò)幾次。每次犯錯(cuò)之后,我都后悔莫及。
最壞的情況是我根本你不知道我在做錯(cuò)的東西。一旦我意識(shí)到我在做錯(cuò)事,我就開始避免這些失誤。至少,我現(xiàn)在寫的代碼比以前寫的要好多了。
現(xiàn)在你們也可以避免這些錯(cuò)誤。首先要知道你現(xiàn)在在做的是錯(cuò)誤的。我知道大部門程序員都不會(huì)做任何錯(cuò)事,因?yàn)樗麄冋J(rèn)為那是正確的,所以他們的行為會(huì)對(duì)程序和程序員的職業(yè)成長(zhǎng)產(chǎn)生不利影響。
絕大部分的不良編程習(xí)慣都源于無(wú)知,而沒有任何其他原因。
要成為一個(gè)好的程序員,我們必須一個(gè)一個(gè)的去掉這些無(wú)知。這也是那些好的編程書籍所盡力展示給我們的。
我們犯這些錯(cuò)誤的部分原因在于它們確實(shí)完成了工作。并不是我們要做的–讓我們的程序運(yùn)行起來(lái),完成我們?nèi)粘5墓ぷ鳌?/p>
但是讓什么好用只是你工作的一部分。如果想要讓你的應(yīng)用程序好用,你將不得不定期更新,修復(fù)任何新的bug,這些將有可能變得很頻繁。這樣一來(lái)能讓你的工作變得比較容易的方法就是遵循好的編程實(shí)踐。
另外,即使你在小型程序中能夠擺脫這些錯(cuò)誤,在大型程序中你也可能碰到他們。
如果你仍然犯這些錯(cuò)誤,可能你的程序依然正常運(yùn)行,能夠完成需要的任務(wù),但是它會(huì)變得易出bug,充滿低效率的代碼,難于維護(hù)。并且,當(dāng)你很長(zhǎng)時(shí)間后再來(lái)看它的代碼的時(shí)候,你會(huì)發(fā)現(xiàn)代碼很難理解。
作為程序員,我們的工作不僅僅是讓我們的程序工作,而讓用戶來(lái)處理bug。我們的工作是確保用戶即使輸入錯(cuò)誤也不會(huì)得到意外的結(jié)果。
所以要?jiǎng)?chuàng)建高品質(zhì)的應(yīng)用程序,請(qǐng)確保你不會(huì)在編程的時(shí)候犯下面的這些普遍的錯(cuò)誤:
不加理解的拷貝代碼
你經(jīng)常會(huì)發(fā)現(xiàn)你需要的代碼在一些別的程序里面有。整段的拷貝代碼并且就這么使用它而不去煩惱于理解每一行代碼是很誘人的。
有時(shí)候你拷貝的代碼可能太大了以至于沒有時(shí)間去完全理解它。如果你拷貝任何代碼都像這樣,就會(huì)有讓你的程序變得脆弱易出bug等風(fēng)險(xiǎn)。
這樣可能讓工作完成,但是如果這段代碼在某種情況下產(chǎn)生了一些意外的行為將會(huì)怎么樣?如果使你的程序變慢或者有惡意行為將會(huì)怎么樣?因此需要恰當(dāng)?shù)睦斫膺@些代碼,或者需要絕對(duì)的確信你拷貝的代碼的出處。
如果以后產(chǎn)生了bug,你會(huì)發(fā)現(xiàn)很難理解這些代碼,因?yàn)槟銖膩?lái)沒有寫過(guò)它。甚至于你會(huì)發(fā)現(xiàn)很難去找出bug并且修復(fù)它,特別是如果拷貝了很多代碼在程序的不同地方。
所以當(dāng)拷貝代碼的時(shí)候要小心,即使很少的代碼。確保你完全理解它了。如果你以前用過(guò)一段代碼并且可以百分之百的保證它可以工作,那么它是安全可用的。但是如果不是的話,就要當(dāng)心了。
每次都從頭開始
這和我之前說(shuō)完全相反,但是這確實(shí)是初學(xué)者容易犯的另外一個(gè)錯(cuò)誤。
也許你認(rèn)為每次都從頭開始會(huì)很好,但是實(shí)際上它浪費(fèi)了太多資源–時(shí)間,精力和思維,你可以更好的在其他方面使用它們。
如果你需要的東西已經(jīng)存在了,那么使用它們。不要反復(fù)重復(fù)最基礎(chǔ)的東西。
你可以使用這些時(shí)間讓你的應(yīng)用在其他方面更加優(yōu)秀。
如果一個(gè)API、框架或者游戲引擎讓你的任務(wù)更加輕松,你沒有理由不適用它們。你的目標(biāo)不是展示你有多么的優(yōu)秀,也不是證明你可以自立完成任何任務(wù)。你的目標(biāo)是保證你的應(yīng)用完美工作,并且盡可能少花費(fèi)一些資源去創(chuàng)造它們。
如果你這樣做,你可以用更少的時(shí)間去完成同樣地工作。時(shí)間就是金錢,即使是你為你自己工作,你也應(yīng)該試著在同樣的時(shí)間賺更多的錢。
沒自己嘗試就開始Google
很多次,出于習(xí)慣,每次出現(xiàn)新的問(wèn)題,你都會(huì)通過(guò)Google來(lái)找找解決方案。對(duì)于程序來(lái)說(shuō),這不是個(gè)好辦法。如果你總是沒有自己試一試就通過(guò)外部方法來(lái)搜索答案,那么你的思維永遠(yuǎn)都不會(huì)受到挑戰(zhàn)。
當(dāng)你的思維停止挑戰(zhàn),你自身的編程技能就會(huì)停止增長(zhǎng)。把你自己的任何技能都練得很棒,你就可以自己解決問(wèn)題,這也適用于程序開發(fā)。
你是創(chuàng)建一個(gè)已經(jīng)存在的東西,你從來(lái)不進(jìn)行原創(chuàng)。這真是你想要做的嗎?
搜尋存在的解決方案看起來(lái)很聰明,但是這會(huì)蒙蔽你的雙眼,你的懶惰會(huì)阻止你成為一個(gè)好的程序員。如果你真的你想要搜尋一個(gè)解決方案,至少,開始的時(shí)候你在這個(gè)問(wèn)題上先花一點(diǎn)事件思考一下。
也許你自己不花多少事件就能解決掉它。也許你會(huì)有比其他人更好的解決它。也許你的解決方案比其他人的更加精確。
如果你不嘗試,你永遠(yuǎn)都不知道。
忽略警告
這是一個(gè)早期我進(jìn)行程序開發(fā)時(shí)犯的另一個(gè)錯(cuò)誤。我不能告訴你當(dāng)你的程序中出現(xiàn)幾百個(gè)警號(hào)和一次都不出現(xiàn)有什么大的不同-最重要的是忽略掉它就出現(xiàn)新的問(wèn)題。
警告通常是你做的東西可能不是每次都能正常工作的一個(gè)標(biāo)志。有時(shí),忽略這些警告會(huì)造成很大的安全問(wèn)題。但是真正的問(wèn)題通常是出現(xiàn)在程序出現(xiàn)幾百個(gè)警告,或者程序不能正常工作時(shí)。
很難確定到底是什么原因造成了那個(gè)錯(cuò)誤,你必須花更很多的時(shí)間來(lái)分析每一個(gè)警告來(lái)找出造成問(wèn)題發(fā)生的根本原因。相反,你可以在警告發(fā)生的時(shí)候就處理掉它。
通常你僅僅需要使用正確的變量或者正確的函數(shù)來(lái)處理這些警告。不會(huì)花你幾小時(shí),只需要幾分鐘遇到它們就把它們處理掉。
要盡早的處理警告。干凈的代碼看起來(lái)舒服工作起來(lái)也會(huì)很高。記住-對(duì)待警告和對(duì)待錯(cuò)誤一樣.
快速修復(fù)而不是永久性解決
是的,我對(duì)這樣做感到愧疚。我不為此而自豪。但通常,我們僅僅是草草的修復(fù)一下,很少會(huì)去從根本上解決這個(gè)問(wèn)題。
它能正常工作了,問(wèn)題也處理掉了。但是如果你一不小心,問(wèn)題又會(huì)以不同的方式重新出現(xiàn)。
無(wú)論你怎么修復(fù)一個(gè)問(wèn)題,都應(yīng)確保你不會(huì)把整個(gè)系統(tǒng)破壞掉。修復(fù)應(yīng)該提升整個(gè)系統(tǒng)的運(yùn)行狀況,而不是讓它更慢或更笨重。
同時(shí),進(jìn)行一個(gè)修復(fù)要能永久性的解決這個(gè)問(wèn)題。要長(zhǎng)期,不要短期。有時(shí),由于懶惰和無(wú)知,我們通常喜歡快速的把問(wèn)題解決掉,而不想在上面花太多時(shí)間。這就是為什么我們的寫的代碼能正常的工作,但是卻不是在所有情況下都能工作。
如果你在工作的時(shí)候把它忽略掉,你會(huì)在后面花更多的時(shí)間。
了解上面這些錯(cuò)誤能有助于你避免它們。如果你知道你所做的是錯(cuò)誤的,一般來(lái)說(shuō)你就不會(huì)去做。
為了把工作干好你應(yīng)該熱愛你所做的。如果因?yàn)槟承┰蚰悴幌矚g編程了那么你幾乎不會(huì)花額外的功夫來(lái)編寫好的可維護(hù)的程序。
如果你打算寫一手好程序那么你就應(yīng)該改變你對(duì)編程的看法。
你要把編程看成一門藝術(shù)而你自己則是一個(gè)藝術(shù)家。那么你就不會(huì)因?yàn)閼卸韬筒恍⌒亩稿e(cuò)。
作家會(huì)把一篇未完成的文章發(fā)表么?畫家會(huì)把未完成的畫作拿來(lái)出售么?歌手會(huì)在他的歌中唱沒有用的歌詞么?
絕不會(huì)。
對(duì)編程來(lái)說(shuō)也一樣。任何情況下,都別編寫未經(jīng)測(cè)試的半吊子代碼。在你的程序未寫完前,不要發(fā)布它。別編寫不會(huì)使用的無(wú)用代碼。這都是一些我們犯的一般性錯(cuò)誤,因?yàn)槲覀兿矚g在工作花更少的時(shí)間而去干其他事情。但這是不行的,遲早你都會(huì)為確保你的代碼不出問(wèn)題而負(fù)責(zé)。越早的練習(xí)正確的編程方法,就對(duì)你的用戶和自己越好。有時(shí)成為一個(gè)好的程序員意味著你不會(huì)犯糟糕程序員同樣的錯(cuò)誤。
如何成為一個(gè)好的程序員
一、學(xué)習(xí)和掌握一門編程語(yǔ)言
作為一名程序員,必須掌握至少一門編程語(yǔ)言。在初學(xué)者階段,可以先選擇比較易學(xué)的語(yǔ)言,如Python、Java等,熟練掌握其中一門語(yǔ)言后再嘗試學(xué)習(xí)其他語(yǔ)言。在掌握語(yǔ)言的過(guò)程中,可以結(jié)合一些在線學(xué)習(xí)資源或者參加一些培訓(xùn)班來(lái)提高自己的技術(shù)水平。
二、掌握算法和數(shù)據(jù)結(jié)構(gòu)
算法和數(shù)據(jù)結(jié)構(gòu)是程序員必修課程,只有掌握了算法和數(shù)據(jù)結(jié)構(gòu),才能編寫出高效、穩(wěn)定的代碼。我們可以通過(guò)參加編程競(jìng)賽或者閱讀相關(guān)書籍來(lái)提高自己的算法和數(shù)據(jù)結(jié)構(gòu)方面的能力。
三、注重團(tuán)隊(duì)協(xié)作
在現(xiàn)代軟件開發(fā)中,一個(gè)項(xiàng)目一般都需要由多人合作完成,因此優(yōu)秀的團(tuán)隊(duì)協(xié)作意識(shí)是非常重要的。在團(tuán)隊(duì)中,應(yīng)該注重相互溝通、協(xié)作,提高團(tuán)隊(duì)效率??梢酝ㄟ^(guò)使用一些團(tuán)隊(duì)協(xié)作工具,如Jira、Git等來(lái)提高協(xié)作效率。
四、持續(xù)學(xué)習(xí)和自我提升
技術(shù)日新月異,作為程序員必須不斷學(xué)習(xí)和掌握新技術(shù)。同時(shí),在日常開發(fā)中也要時(shí)刻保持敏銳的觀察力,發(fā)現(xiàn)并解決問(wèn)題。還可以通過(guò)一些技術(shù)分享、博客等途徑來(lái)獲取
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保衛(wèi)管理員崗前成果轉(zhuǎn)化考核試卷含答案
- 飛機(jī)雷達(dá)調(diào)試工崗前客戶關(guān)系管理考核試卷含答案
- 玻璃制品冷加工工崗前跨界整合考核試卷含答案
- 老年癡呆癥篩查指南的倫理更新
- 老年疼痛患者膝骨關(guān)節(jié)炎方案
- 公司員工合同模板及范例
- 餐飲行業(yè)新模式探討
- 老年智能健康監(jiān)測(cè)中的失能預(yù)防倫理策略
- 人體胚胎發(fā)育:定價(jià)策略課件
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)離島免稅行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 吞咽障礙患者誤吸的預(yù)防與管理方案
- 繼承農(nóng)村房屋協(xié)議書
- (新教材)2025年人教版八年級(jí)上冊(cè)歷史期末復(fù)習(xí)全冊(cè)知識(shí)點(diǎn)梳理
- 2025-2026學(xué)人教版八年級(jí)英語(yǔ)上冊(cè)(全冊(cè))教案設(shè)計(jì)(附教材目錄)
- 鋁方通吊頂施工技術(shù)措施方案
- 湖南公務(wù)員考試申論試題(行政執(zhí)法卷)1
- 欠款過(guò)戶車輛協(xié)議書
- 2025年江西省高職單招文化統(tǒng)考(語(yǔ)文)
- 《血管內(nèi)超聲指導(dǎo)冠脈介入診療技術(shù)規(guī)范》
- 2025版中國(guó)藥典一部凡例深度解讀
- 【語(yǔ)文】浙江省杭州市天長(zhǎng)小學(xué)小學(xué)五年級(jí)上冊(cè)期末試卷(含答案)
評(píng)論
0/150
提交評(píng)論