編程中有哪些好習(xí)慣一開始就值得堅(jiān)持?

2021-02-16    分類: 網(wǎng)站建設(shè)


規(guī)范的命名對于閱讀程序是如此重要,本文開篇就不得不提到它。在閱讀代碼時(shí),理解一個(gè)變量和函數(shù)都是從名字開始的。它是什么?它的職責(zé)是什么?這些問題從名字就應(yīng)該看出來,如果名稱需要注釋來補(bǔ)充,那就不算是好名字。

例如:將變量名


修改為:


將函數(shù)名


修改為:


寧可名字取長一點(diǎn),也不要起個(gè)模糊的名字。一個(gè)清楚的變量名還會帶來可搜索的好處。即使在寫二分算法時(shí),也盡量別用"l"和"r"來指代左右邊界,換成"left"和"right"會更好。

不過,變量名也并非越長越好,去除變量名中的冗余也是一個(gè)好習(xí)慣。Variable 一詞永遠(yuǎn)不應(yīng)當(dāng)出現(xiàn)在變量名中,Table 一詞永遠(yuǎn)不應(yīng)當(dāng)出現(xiàn)在表名中。 nameString 與 name 沒區(qū)別,moneyAmount 與 money 沒區(qū)別, customerInfo 與 customer 沒區(qū)別, theMessage 也與 message 沒區(qū)別。

命名風(fēng)格應(yīng)該保持統(tǒng)一,每個(gè)概念對應(yīng)一個(gè)詞。如果一堆代碼中既有 Controller,又有 Manager,還有 Driver,Presenter,就會令人困惑:他們之間有什么區(qū)別?為什么不全用 Controller?如果同一概念可被多個(gè)詞語描述,請確定其中一個(gè)名字,并在你的代碼中一以貫之。

總之,取一個(gè)精準(zhǔn)的名字是一名優(yōu)秀程序員的基本功。從一開始學(xué)習(xí)編程時(shí),每次取名都應(yīng)仔細(xì)思考,切不可草草了事。




同樣的代碼,僅僅是加上空格與縮進(jìn)就能看起來更美觀。現(xiàn)代化的 IDE 都有代碼格式化快捷鍵,在代碼敲完后隨時(shí)格式化,并去掉多余的空行,是一個(gè)讓代碼保持美觀的好習(xí)慣。


斐波那契程序員:每天都在修復(fù)昨天和前天的 bug

你是否有過這樣的經(jīng)歷:代碼刪了又寫,寫了又刪。在敲代碼之前,先問自己一個(gè)問題:我寫下的這行代碼是真的能用上的嗎?會不會有邏輯漏洞?思考清楚業(yè)務(wù)流程之后再寫代碼,往往事半功倍。

以筆者親身經(jīng)歷過的一個(gè)項(xiàng)目為例,項(xiàng)目已經(jīng)做了一年, 除了三方庫,代碼量共有兩萬行,平均算下來,開發(fā)者一年來每天只需要寫 55 行代碼。這樣看來,開發(fā)者的每一天都差不多是”很閑的“,然而開發(fā)者每天都忙得不得了,從早到晚都在碼代碼。這些代碼量如果純粹敲出來,最多十個(gè)小時(shí)就可以完成。我們應(yīng)該用大部分的時(shí)間思考代碼邏輯,不要花大量時(shí)間將代碼刪了又寫,寫了又刪。磨刀不誤砍柴工,事先做好全面的考慮,爭取讓寫下的每一行代碼都有價(jià)值。

程序員的時(shí)間分配

梳理代碼邏輯是有一定方法的,例如:



  • 當(dāng)你需要添加一個(gè)新功能,突然發(fā)現(xiàn)程序耦合嚴(yán)重,導(dǎo)致新功能不是那么好添加,那就先將程序重構(gòu)到可以方便的添加新功能
  • 當(dāng)你閱讀代碼時(shí),發(fā)現(xiàn)程序可讀性低,導(dǎo)致理解上的困難,顯然代碼還不夠清晰,先將其重構(gòu)到一眼能夠看出結(jié)構(gòu)。
  • 你找到一種更好的實(shí)現(xiàn)方式,千萬不要因?yàn)楝F(xiàn)有的代碼仍然可用就置之不理。嘗試將你的想法實(shí)現(xiàn)出來。即使失敗了,你也會更能理解為什么代碼是現(xiàn)在這個(gè)樣子。
    • PS:關(guān)于重構(gòu)的更多知識可以閱讀 Martin Fowler 所著的《重構(gòu)改善既有代碼的設(shè)計(jì)》,軟件開發(fā)不朽的經(jīng)典。


      年輕時(shí),我曾在網(wǎng)上問一個(gè)命令行怎么寫,有人教我 rm -rf / ...

      如果程序中用到數(shù)據(jù)庫操作,一定要記得定時(shí)備份。數(shù)據(jù)庫備份有諸多好處:可以防止數(shù)據(jù)丟失,可以在程序出錯(cuò)時(shí)方便數(shù)據(jù)回滾。而且它并不需要太多的成本,只需要寫個(gè)腳本完成定時(shí)自動(dòng)備份,并刪除過老的備份數(shù)據(jù)即可。如果數(shù)據(jù)庫沒有做備份,而數(shù)據(jù)庫又被誤操作刪除了的話,那就等同于


      同樣,代碼也需要及時(shí)備份,使用版本管理系統(tǒng)可以解決這個(gè)問題。用上 Git,隨時(shí) commit,丟失代碼的情況幾乎不可能發(fā)生。


      寫一份完善的 README

      github 上有非常多的好項(xiàng)目,無一例外,他們都有一份完善的 README。 README 是程序的門面,有助于別人及時(shí)發(fā)現(xiàn)你寫的好項(xiàng)目(不要奢望每個(gè)人都有閑情逸致來閱讀你的源碼)。況且 README 文檔的好處不止于此,它還可以幫助自己梳理邏輯,理清思路。

      寫好 README 之后,隨著項(xiàng)目的演進(jìn)及時(shí)更新它,不會花太多時(shí)間,但能讓你隨時(shí)都對項(xiàng)目有個(gè)整體的把握。絕對值得一試。

      分享文章:編程中有哪些好習(xí)慣一開始就值得堅(jiān)持?
      鏈接URL:http://www.muchs.cn/news9/101209.html

      成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)虛擬主機(jī)、服務(wù)器托管、ChatGPT、企業(yè)網(wǎng)站制作網(wǎng)站策劃

      廣告

      聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

      h5響應(yīng)式網(wǎng)站建設(shè)