<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何寫出優(yōu)秀的代碼

          共 2023字,需瀏覽 5分鐘

           ·

          2020-08-01 02:47

          ?

          小閆語錄:不要讓過重的負擔,在起步時壓垮你。輕裝上陣,簡化目標,堅持不懈就夠了。

          ?

          寫了太多屎一樣的代碼,終于不臭了!更多精彩文章請關(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)注小閆




          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品国产激情 | 天天爽天天干成人av一区二区三区 | 日本黄色片小视频 | 日本黄色美女网站 | 国产一区二区在线导航 |