您好,登錄后才能下訂單哦!
這篇文章主要介紹“高級PHP工程師必備的編碼技巧有哪些”,在日常操作中,相信很多人在高級PHP工程師必備的編碼技巧有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”高級PHP工程師必備的編碼技巧有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
什么是重構(gòu),為什么我們需要它?
重構(gòu)是指幫助我們寫簡潔代碼的方法和步驟。這對其他可能閱讀,擴(kuò)展和不需要怎么編輯來復(fù)用我們代碼的其他開發(fā)者來說是很重要的。
下面的內(nèi)容將向你展示一些重構(gòu)邏輯代碼,讓它變得更好的例子。
不要在沒有單元測試的情況下重構(gòu)生產(chǎn)環(huán)境的代碼
我的第一條建議是從不在沒有完全進(jìn)行單元測試的情況下開始重構(gòu)邏輯代碼。我的理由是:你將會以很難有修復(fù)的損壞的功能收尾,因?yàn)槟阋埠茈y指出是哪里損壞了。因此,如果你要重構(gòu)它,從測試開始。保證你準(zhǔn)備重構(gòu)的部分被測試覆蓋到。PHPUnit 代碼覆蓋分析.
從你代碼最底層開始重構(gòu)
看一下下面的圖片。這是一個我從 Github 找到的真實(shí)的酒店管理系統(tǒng)項(xiàng)目。這是一個開源的項(xiàng)目,可想閉源項(xiàng)目將是糟糕的。
示例:從底層開始重構(gòu)
你看這個代碼,這里用紅色標(biāo)出了三個層級。最底層應(yīng)該是在第一個 if 條件下被 if/else 包圍的申明。通常,最底層是集中在單一邏輯處理,比較容易重構(gòu)。
讓你的方法更短,分解它們到更小的方法或者配置文件 / DB 表
也許在這里,我們可以向下面一樣提煉它到一個私有方法:
使你的方法更短
下一個深入點(diǎn)將是上傳參數(shù)和加載視圖。現(xiàn)在,再來看看在重構(gòu)其他部分之后的 add() 方法。它變得更加簡潔,易讀,易于測試。
示例:首先重構(gòu)最底層
if 申明堅持使用大括號
大多數(shù)編程語言都支持單行 if 申明,因?yàn)檫@樣比較簡單,所以一些開發(fā)就這么使用,但是這樣不便于閱讀,而且容易造成問題,因?yàn)橐粋€空行就可以中斷條件造成崩潰??聪孪旅鎯蓚€示例的不同:
示例:使用大括號
別使用魔術(shù)數(shù)字或者魔術(shù)字符串:
下個示例中,你注意到如果房間超過 250 ,會返回一個錯誤信息。這里,250 就被認(rèn)為是一個魔術(shù)數(shù)字。如果你不是寫這個的開發(fā)者,很難指出這個數(shù)字表示什么。
示例:魔術(shù)數(shù)字
為了重構(gòu)這個方法,我們可以指出 250 表示最大的房間數(shù)。為了替換硬編碼,我們可以提取它到一個變量 $maxAvailableRooms ?,F(xiàn)在對其他開發(fā)者來說,它變得更易被理解。
示例:修復(fù)魔術(shù)數(shù)字
不要使用 else 申明,如果你不是真的需要:
在相同的 availablerooms () 函數(shù)中,你注意到那個 if 申明, 其中我們可以很容易擺脫 else 部分,而且邏輯保持一致。
示例:忽略 else 申明
使用能夠表示你的方法,變量和測試的命名
在后面的示例中,你會發(fā)現(xiàn)酒店管理系統(tǒng)有兩個方法分別是 “index () ” 和 “ room_m () ”。對我來說,我搞不清它們的目的是什么。我認(rèn)為它應(yīng)該很容易被理解,如果它們的命名都能夠描述自己。
示例:不好的方法命名
充分利用你的編程語言的功能
許多開發(fā)者不會利用到他們使用的編程語言的全部功能。很多功能能夠節(jié)約你們的的時間,而且能夠讓你們的代碼更健壯。看下下面的示例,注意如何在更少代碼情況下更容易達(dá)到相同的結(jié)果的,通過使用類型提示。
最后,我想提供一些關(guān)于更好編碼的快速提示:
使用新的數(shù)組形式 [] 替代舊的 array ()。
除非不檢查數(shù)據(jù)類型很重要,否則使用 === 操作符替代 ==。
給公共方法提供簡短的描述性名稱總是一個好主意。私有方法可以使用更長的名稱,因?yàn)樗鼈兊倪m用范圍比較有限。
僅對實(shí)現(xiàn)接口的方法使用通用名稱例如 add (),并對單個類方法使用描述性名稱例如 addUser () 或 addDocument ()。
從類中刪除未使用的方法。
對返回值為 boolean 等的函數(shù)使用 is/has 前綴:isAdmin ($user),hasPermission ($user)。
始終在類方法和屬性中使用訪問修飾符。
注意接口污染:僅使用用戶可以公開使用的方法。
在公共方法位于頂部的位置組織類方法。
始終在類中應(yīng)用單一職責(zé)的概念。
到此,關(guān)于“高級PHP工程師必備的編碼技巧有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。