<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 怎樣用PHP編寫出簡潔的代碼-創(chuàng)新互聯(lián)

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

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

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

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

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

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

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

            從你代碼最底層開始重構

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

            示例:從底層開始重構

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

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

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

            使你的方法更短

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

            示例:首先重構最底層

            if 申明堅持使用大括號

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

            示例:使用大括號

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

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

            示例:魔術數(shù)字

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

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

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

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

            示例:忽略 else 申明

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

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

            示例:不好的方法命名

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

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

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

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

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

            ● 給公共方法提供簡短的描述性名稱總是一個好主意。私有方法可以使用更長的名稱,因為它們的適用范圍比較有限。

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

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

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

            ● 始終在類方法和屬性中使用訪問修飾符。

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

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

            ● 始終在類中應用單一職責的概念。

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

            分享名稱:怎樣用PHP編寫出簡潔的代碼-創(chuàng)新互聯(lián)
            文章路徑:http://www.jbt999.com/article48/shehp.html

            成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站服務器托管、外貿(mào)建站定制開發(fā)、關鍵詞優(yōu)化、建站公司

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

            成都網(wǎng)站建設公司

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 日本本一道久久久久久久 | 蜜桃四季春秘 一区二区三区 | 国产色无码网站www色视频 | 操BAV视频 | 在线aⅴ|