真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎樣用PHP編寫(xiě)出簡(jiǎn)潔的代碼-創(chuàng)新互聯(lián)

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

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)萊州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過(guò)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

什么是重構(gòu),為什么我們需要它?

重構(gòu)是指幫組我們寫(xiě)簡(jiǎn)潔代碼的方法和步驟。這對(duì)其他可能閱讀,擴(kuò)展和不需要怎么編輯來(lái)復(fù)用我們代碼的其他開(kāi)發(fā)者來(lái)說(shuō)是很重要的。

下面的內(nèi)容將向你展示一些重構(gòu)邏輯代碼,讓它變得更好的例子。

不要在沒(méi)有單元測(cè)試的情況下重構(gòu)生產(chǎn)環(huán)境的代碼

我的第一條建議是從不在沒(méi)有完全進(jìn)行單元測(cè)試的情況下開(kāi)始重構(gòu)邏輯代碼。我的理由是:你將會(huì)以很難有修復(fù)的損壞的功能收尾,因?yàn)槟阋埠茈y指出是哪里損壞了。因此,如果你要重構(gòu)它,從測(cè)試開(kāi)始。保證你準(zhǔn)備重構(gòu)的部分被測(cè)試覆蓋到。PHPUnit 代碼覆蓋分析.

從你代碼最底層開(kāi)始重構(gòu)

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

示例:從底層開(kāi)始重構(gòu)

你看這個(gè)代碼,這里用紅色標(biāo)出了三個(gè)層級(jí)。最底層應(yīng)該是在第一個(gè) if 條件下被 if/else 包圍的申明。通常,最底層是集中在單一邏輯處理,比較容易重構(gòu)。

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

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

使你的方法更短

下一個(gè)深入點(diǎn)將是上傳參數(shù)和加載視圖?,F(xiàn)在,再來(lái)看看在重構(gòu)其他部分之后的 add() 方法。它變得更加簡(jiǎn)潔,易讀,易于測(cè)試。

示例:首先重構(gòu)最底層

if 申明堅(jiān)持使用大括號(hào)

大多數(shù)編程語(yǔ)言都支持單行 if 申明,因?yàn)檫@樣比較簡(jiǎn)單,所以一些開(kāi)發(fā)就這么使用,但是這樣不便于閱讀,而且容易造成問(wèn)題,因?yàn)橐粋€(gè)空行就可以中斷條件造成崩潰??聪孪旅鎯蓚€(gè)示例的不同:

示例:使用大括號(hào)

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

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

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

為了重構(gòu)這個(gè)方法,我們可以指出 250 表示大的房間數(shù)。為了替換硬編碼,我們可以提取它到一個(gè)變量 $maxAvailableRooms ?,F(xiàn)在對(duì)其他開(kāi)發(fā)者來(lái)說(shuō),它變得更易被理解。

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

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

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

示例:忽略 else 申明

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

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

示例:不好的方法命名

充分利用你的編程語(yǔ)言的功能

許多開(kāi)發(fā)者不會(huì)利用到他們使用的編程語(yǔ)言的全部功能。很多功能能夠節(jié)約你們的的時(shí)間,而且能夠讓你們的代碼更健壯??聪孪旅娴氖纠⒁馊绾卧诟俅a情況下更容易達(dá)到相同的結(jié)果的,通過(guò)使用類型提示。

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

● 使用新的數(shù)組形式 [] 替代舊的 array ()。

● 除非不檢查數(shù)據(jù)類型很重要,否則使用 === 操作符替代 ==。

● 給公共方法提供簡(jiǎn)短的描述性名稱總是一個(gè)好主意。私有方法可以使用更長(zhǎng)的名稱,因?yàn)樗鼈兊倪m用范圍比較有限。

● 僅對(duì)實(shí)現(xiàn)接口的方法使用通用名稱例如 add (),并對(duì)單個(gè)類方法使用描述性名稱例如 addUser () 或 addDocument ()。

● 從類中刪除未使用的方法。

● 對(duì)返回值為 boolean 等的函數(shù)使用 is/has 前綴:isAdmin ($user),hasPermission ($user)。

● 始終在類方法和屬性中使用訪問(wèn)修飾符。

● 注意接口污染:僅使用用戶可以公開(kāi)使用的方法。

● 在公共方法位于頂部的位置組織類方法。

● 始終在類中應(yīng)用單一職責(zé)的概念。

以上就是高級(jí)PHP工程師必備的編碼技巧及思維的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


當(dāng)前題目:怎樣用PHP編寫(xiě)出簡(jiǎn)潔的代碼-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/shehp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部