站長資訊網
        最全最豐富的資訊網站

        值得一看!高級PHP工程師必備的編碼技巧及思維

        推薦:《PHP視頻教程》

        好的開發(fā)者通常以代碼質量來定義。在軟件行業(yè),寫好的代碼意味著在在測試,更新,擴展或者修復漏洞中省錢。本文,我將向你展示一些現(xiàn)實生活中技巧和想法的例子,來幫助你清理你的邏輯代碼,重構它,讓它變得更健壯和模塊化。這些技巧將不僅僅幫助你重構你的舊代碼,而且給你一些如何從現(xiàn)在開始寫出簡潔代碼的好建議。

        什么是重構,為什么我們需要它?

        重構是指幫助我們寫簡潔代碼的方法和步驟。這對其他可能閱讀,擴展和不需要怎么編輯來復用我們代碼的其他開發(fā)者來說是很重要的。

        下面的內容將向你展示一些重構邏輯代碼,讓它變得更好的例子。

        不要在沒有單元測試的情況下重構生產環(huán)境的代碼

        我的第一條建議是從不在沒有完全進行單元測試的情況下開始重構邏輯代碼。我的理由是:你將會以很難有修復的損壞的功能收尾,因為你也很難指出是哪里損壞了。因此,如果你要重構它,從測試開始。保證你準備重構的部分被測試覆蓋到。PHPUnit 代碼覆蓋分析.

        從你代碼最底層開始重構

        看一下下面的圖片。這是一個我從 Github 找到的真實的酒店管理系統(tǒng)項目。這是一個開源的項目,可想閉源項目將是糟糕的。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例:從底層開始重構

        你看這個代碼,這里用紅色標出了三個層級。最底層應該是在第一個 if 條件下被 if/else 包圍的申明。通常,最底層是集中在單一邏輯處理,比較容易重構。

        讓你的方法更短,分解它們到更小的方法或者配置文件/DB 表

        也許在這里,我們可以向下面一樣提煉它到一個私有方法:

        值得一看!高級PHP工程師必備的編碼技巧及思維

        使你的方法更短

        下一個深入點將是上傳參數(shù)和加載視圖。現(xiàn)在,再來看看在重構其他部分之后的 add() 方法。它變得更加簡潔,易讀,易于測試。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例:首先重構最底層

        if 申明堅持使用大括號

        大多數(shù)編程語言都支持單行 if 申明,因為這樣比較簡單,所以一些開發(fā)就這么使用,但是這樣不便于閱讀,而且容易造成問題,因為一個空行就可以中斷條件造成崩潰。看下下面兩個示例的不同:

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例: 使用大括號

        別使用魔術數(shù)字或者魔術字符串:

        下個示例中,你注意到如果房間超過 250 ,會返回一個錯誤信息。這里,250 就被認為是一個魔術數(shù)字。如果你不是寫這個的開發(fā)者,很難指出這個數(shù)字表示什么。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例:魔術數(shù)字

        為了重構這個方法,我們可以指出 250 表示最大的房間數(shù)。為了替換硬編碼,我們可以提取它到一個變量 $maxAvailableRooms 。現(xiàn)在對其他開發(fā)者來說,它變得更易被理解。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例:修復魔術數(shù)字

        不要使用 else 申明,如果你不是真的需要:

        在相同的 availablerooms() 函數(shù)中,你注意到那個 if 申明, 其中我們可以很容易擺脫 else 部分,而且邏輯保持一致。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例:忽略 else 申明

        使用能夠表示你的方法,變量和測試的命名

        在后面的示例中,你會發(fā)現(xiàn)酒店管理系統(tǒng)有兩個方法分別是“ index() ”和“ room_m() ”。 對我來說,我搞不清它們的目的是什么。我認為它應該很容易被理解,如果它們的命名都能夠描述自己。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        示例:不好的方法命名

        充分利用你的編程語言的功能

        許多開發(fā)者不會利用到他們使用的編程語言的全部功能。很多功能能夠節(jié)約你們的的時間,而且能夠讓你們的代碼更健壯。看下下面的示例,注意如何在更少代碼情況下更容易達到相同的結果的,通過使用類型提示。

        值得一看!高級PHP工程師必備的編碼技巧及思維

        值得一看!高級PHP工程師必備的編碼技巧及思維

        最后,我想提供一些關于更好編碼的快速提示:

        • 使用新的數(shù)組形式 [ ] 替代舊的 array()。
        • 除非不檢查數(shù)據(jù)類型很重要,否則使用 === 操作符替代 ==。
        • 給公共方法提供簡短的描述性名稱總是一個好主意。私有方法可以使用更長的名稱,因為它們的適用范圍比較有限。
        • 僅對實現(xiàn)接口的方法使用通用名稱例如 add(),并對單個類方法使用描述性名稱例如 addUser() 或 addDocument()。
        • 從類中刪除未使用的方法。
        • 對返回值為 boolean 等的函數(shù)使用 is/has 前綴:isAdmin($user),hasPermission($user)。
        • 始終在類方法和屬性中使用訪問修飾符。
        • 注意接口污染:僅使用用戶可以公開使用的方法。
        • 在公共方法位于頂部的位置組織類方法。
        • 始終在類中應用單一職責的概念。

        原文地址:https://medium.com/@maladdinsayed/advanced-techniques-and-ideas-for-better-coding-skills-d632e9f9675

        譯文地址:https://learnku.com/php/t/37900

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 91麻精品国产91久久久久| 国亚洲欧美日韩精品| 国产精品自产拍在线观看花钱看| 亚洲综合精品网站在线观看| 2020最新久久久视精品爱| 人妻精品久久久久中文字幕69 | 精品国产精品国产偷麻豆| 狠狠色伊人久久精品综合网 | 91老司机深夜福利精品视频在线观看| 亚洲精品成人久久久| 国产精品无码v在线观看| 久久免费国产精品一区二区| 午夜精品久久久久久99热| 欧美激情精品久久久久久久| 99久久婷婷国产综合精品草原| 8x福利精品第一导航| 蜜臀久久99精品久久久久久小说| 四虎永久在线精品免费一区二区| 精品国产欧美一区二区三区成人 | 久久影院综合精品| 天天爽夜夜爽夜夜爽精品视频| 精品人妻伦九区久久AAA片69| 日韩人妻无码精品久久久不卡 | 99精品热这里只有精品| 亚洲色精品aⅴ一区区三区| 四虎精品免费永久免费视频| 久久青青草原精品国产软件| 国产这里有精品| 国产偷国产偷高清精品| 国自产精品手机在线观看视| 精品中文高清欧美| 热RE99久久精品国产66热| 欧美精品一二区| 亚洲av无码成人精品国产| 亚洲色精品88色婷婷七月丁香| 青青青青久久精品国产h久久精品五福影院1421| 精品国产污污免费网站入口| 久久丝袜精品中文字幕| 亚洲av午夜国产精品无码中文字| 日本欧美国产精品第一页久久| 午夜精品久久影院蜜桃|