如何寫出優(yōu)秀的代碼
?小閆語錄:不要讓過重的負擔,在起步時壓垮你。輕裝上陣,簡化目標,堅持不懈就夠了。
?
寫了太多屎一樣的代碼,終于不臭了!更多精彩文章請關(guān)注公眾號『Pythonnote』或者『全棧技術(shù)精選』
1.第一坨屎-變量
為了不讓下任『接盤俠』看到代碼罵娘,我勸你善良。請不要使用如下方式命名變量:
1.拼音命名(不會英文就去下載個某道詞典,翻譯一下嘛。name 總比 mingzi 好辨認吧?字數(shù)還少,還能國際通用)
2.使用簡單字母命名(a/b等等,別說其他人,過兩天自己都不曉得寫了個什么鬼)更多精彩文章請關(guān)注公眾號『Pythonnote』或者『全棧技術(shù)精選』
3.異想天開(不要隨便拍腦袋起名,要做到見名知義。總不能一個 id 的列表,你叫個 item 吧?xxx_id_list 稍微強一些吧?)
4.不要命名沖突(最起碼在一個函數(shù)內(nèi),不能重復。project 既是生產(chǎn)項目又是測試項目?變量不斷被覆蓋,奇奇怪怪的 bug 就夠你喝一壺的了)
?這種病的病根兒一般是詞匯量匱乏,治療建議某道翻譯。
?
5.查詢數(shù)據(jù)庫時,變量與字段名、模型類或者表名不一致(查的 Product 就不要叫 Mobiles;查的 name ,就不要叫 leader )
2.第二坨屎-注釋
為了第二天代碼還認識你,請你添加注釋。
1.一定要添加注釋,最起碼重要的邏輯部分覆蓋到。
2.注釋要清晰、易懂、簡單明了。
3.注釋不是流水賬,不是每一行代碼的解釋,而是某一塊邏輯的說明。
4.對于復雜的數(shù)據(jù)結(jié)構(gòu)請舉例說明。
5.每個函數(shù)的說明文檔起碼要有。更多精彩文章請關(guān)注公眾號『Pythonnote』或者『全棧技術(shù)精選』
3.第三坨屎-嵌套
1.不要里三層外三層的 if-else,邏輯判斷可以有,但是一定有更加簡明的表示方法。嵌套的層級太多,不僅難理解,還影響美觀。
2.簡單的一層 if-else ,有時三元運算符會更加方便。
3.若想你的程序執(zhí)行效率高一些,就不要循環(huán)套循環(huán)。
4.無論何時何地都不要在循環(huán)里面有查詢數(shù)據(jù)庫的語句。也許一次訪問,只需要查詢幾次數(shù)據(jù)庫,但是用戶量大時,能把你數(shù)據(jù)庫搞癱。多使用一些 bulk_create 或者 bulk_update 等等類似的批量操作方法,一次訪問遠比多次訪問數(shù)據(jù)庫效率高。
4.第四坨屎-邏輯
1.請將復雜的邏輯單獨抽出來做成函數(shù)或者類,不要讓你的接口內(nèi)部過于復雜。否則即使有注釋,也太晦澀難懂。
?將復雜邏輯抽調(diào)后,不光能被其他地方調(diào)用,還能使你的接口清晰明了。
?
2.實現(xiàn)一個功能,肯定不止一種方法,要不斷的去優(yōu)化,去尋找一條最快最簡單的路徑。
?當然優(yōu)化的前提是存在,即使用笨辦法也得先實現(xiàn)再說。
?
5.第五坨屎-校驗
1.一定要添加必要的校驗操作!一定要添加必要的校驗操作!一定要添加必要的校驗操作!重要的事情說三遍,想要保證程序的健壯性,永遠不要相信用戶的任何操作!(用戶不是開發(fā)人員,一定會做出你想不到的操作。為了保證程序安全、數(shù)據(jù)安全,請?zhí)砑有r灒?span style="letter-spacing: 2px;text-align: left;word-spacing: 2px;color: rgb(178, 178, 178);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 12px;text-indent: 32px;">更多精彩文章請關(guān)注公眾號『Pythonnote』或者『全棧技術(shù)精選』
2.常用的校驗有:為空校驗、長度校驗、規(guī)則校驗、常識性校驗(最起碼上限不能低于下限)、業(yè)務校驗、邊界情況校驗等。
6.第六坨屎-單元測試
1.自動化遠比人工可靠。
?不是說人工偷懶,而是重復的點點點難免會有遺漏的情況。添加單元測試,就要可靠的多。
?
2.單元測試并不是負擔,當你重構(gòu)代碼時,你會發(fā)現(xiàn)它的重要作用!
?有單元測試做保障,測試通過就代表重構(gòu)成功。不需要重復界面點點點,太浪費時間。當然前提是:你的單元測試是可靠的。
?
3.重要的方法、邏輯,單元測試一定要覆蓋到,它會保證你的程序安全上線!更多精彩文章請關(guān)注公眾號『Pythonnote』或者『全棧技術(shù)精選』
4.code_review 只能是看規(guī)范,看邏輯,肉眼能核對運行結(jié)果嗎?提交代碼先跑一遍單元測試,是否可靠的多?
?這就體現(xiàn)出來自動化測試的好處了,最簡單的方法,在
?GitLab上集成單元測試,這樣提交代碼后自動運行單元測試,不通過肯定不會合并到master?分支,保證線上環(huán)境安全。
7.第七坨屎-重用
1.將公共的代碼抽調(diào)出來,做成公共模塊、通用組件。「減少程序代碼量」,讓程序起飛。
2.重用的優(yōu)點不光是省代碼這么簡單,如果相同的代碼這也有,那也有,出錯怎么辦?改幾遍?「便于維護」
3.將常用的數(shù)字抽出一個常數(shù)文件,其他地方調(diào)用變量的形式使用,這樣維護一個常數(shù)文件比維護分散在各個角落的代碼要好的多。
更多精彩文章請關(guān)注公眾號『Pythonnote』或者『全棧技術(shù)精選』


排版:小閆
圖片素材:小閆
文案:小閆
長按掃描下方二維碼即刻關(guān)注小閆










