




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 PHP和和JS的代碼組織的代碼組織2015-11-06目錄PHP和JS在公司已有項目中的作用面向過程和面向對象PHP面向對象PHP良好的代碼組織實踐JS函數式編程,閉包和面向對象總結PHP和JS在公司已有項目中的作用官網AOAB易寶C易火D?對象狂熱過程狂熱面向過程和面向對象面向對象與面向過程在許多編程語言中只能使用二者之一來進行編程,但是PHP語言與其他編程語言有不同之處,那就是我們可以自由的選擇或者將PHP面向對象和PHP面向過程二者混用。 PHP的一些基礎開發(fā),PECLPECL和PEARPEAR都收到了很多贊揚和批評。這兩個項目為闡明PHP面向過程和面向對象編程的區(qū)別提供了很好的例子。
2、The PHP Extension Community LibraryPHP 擴展模塊過程狂熱,最喜愛的編程語言是C和匯編,寫驅動程序,文件系統或其它的偏向底層的編程,他們的注意力集中于速度和代碼的精煉。PECl提供了PHP的擴展庫,用C和面向過程的方式開發(fā),注重速度和簡潔精煉。通常,這些都是從已經存在的LGPL軟件中移植而來,其中許多有趣的特性已經加入PHP。畢竟,PHP是用C寫的。(PhpMyAdmin)面向過程The PHP Extension and Application RepositoryPHP擴展與應用庫對象狂熱,在任何時候使用PHP面向對象的風格來書寫代碼。他們沒有真正考慮過
3、用這種方式是否會影響程序的執(zhí)行效率。PEAR則貢獻了很多有趣的類如建立Excel表或改變DNS記錄等。使用PEAR類庫可以為你節(jié)約大量時間。 (Smarty,ThinkPHP)面向對象PHP面向對象三大特征1231.封裝就是把抽象出的數據和對數據的操作封裝在一起,數據被保護在內部,程序的其它部 分只有通過被授權的操作(成員方法),才能對數據進行操作.2.繼承可以解決代碼復用,讓我們的 編 程 更 加 靠 近 人 類 思 維 .3.重載”是類的多態(tài)的一種實現。覆寫,子類可以把父類中繼承過來的方法進行重寫,便于擴展。, ,當系統各部分代碼緊密綁在一起時,就會產生密耦合,這時在一個組件中的變化會迫使
4、其他部分隨之改變。低耦合03內聚是一個模塊內部各成分之間相關聯程度的度量。低內聚的代碼間關聯范圍廣,維護很困難。高內聚02過程式代碼忙于處理細節(jié),而面向對象代碼只需一個接口即可工作,并且不用考慮實現的細節(jié)。職責分明01正交指將職責相關的組件緊緊組合在一起,而與外部系統環(huán)境隔開保持獨立。正交04面向對象設計 MVC 企業(yè)模式數據映射.數據庫模式單例模式工廠方法模式抽象工廠模式生成對象的模式組合模式裝飾模式外觀模式組織對象和類的模式解釋器模式策略模式觀察者模式訪問者模式命令模式面向任務的模式設計模式 一、Duplicate Code(重復代碼)1、同一個類,兩個方法含有相同表達式。解決方法:你可以
5、Extract Method提煉重復代碼,然后讓這兩個方法都調用這個Extract Method。2、兩個類,有相似的方法。 解決方法:(1)把兩個類的方法提出來,共同構造一個父類。 (2)把其中一個類的方法刪除,調用另一個類的方法?!薄癙HP良好的代碼組織實踐 二、Long Method(過長的函數方法)1、短函數:代碼閱讀費點力氣,因為我們必須經常轉換上下文去看看子程序做了什么。但是讓small method容易理解的真正關鍵在于一個好的名字。讀者可以通過名字了解函數的作用,根本不必去看其中寫了些什么。早期的編程語言中,調用方法需要額外開銷,這使得coder不愿意使用small metho
6、d。但是現代的OO語言幾乎已經完全免除了process內的額外開銷(函數調用)。 2、注釋地方提煉信號:每當感覺需要以注釋來說明點什么的時候,我們就把需要說明的東西寫進一個獨立函數中,并以其用途命名。可以對一組或甚至短短一行代碼做這件事。只要函數名稱能夠解釋其用戶,我們也該毫不猶豫地那么做。”“PHP良好的代碼組織實踐 動機 三、Large Class(萬能的類)1、Class內數個屬性變量有相同前綴或者字尾,可使用Extract Class。 2、Class內并非大多數變量使用屬性變量,可使用Extract Class。3、有太多代碼,可Extract Class?!薄癙HP良好的代碼組織實
7、踐四、Replace Temp with Query(查詢替換臨時變量)如果一個Temp變量,保存一個表達式,將這個表達式Extract Method。這就是所謂的查詢式,query”“PHP良好的代碼組織實踐 動機函數式編程讓JS更優(yōu)美 函數式編程只描述在程序輸入上執(zhí)行的操作,不必使用臨時變量保存中間結果。重點是捕捉 “是什么以及為什么”,而不是 “如何做”。與將重點放在執(zhí)行連續(xù)命令上的過程性編程相比,函數式編程的重點是函數的定義而不是狀態(tài)機(state machine)的實現。 函數式編程概念,包括匿名函數、調用函數的不同方法,以及將函數作為參數傳遞給其他函數的方式。在許多情況下,Java
8、Script 的重復代碼導致了一些拙劣的編碼。如果使用函數式編程,就可以避免這些問題。此外,可以利用函數式編程風格編寫更加優(yōu)美的回調。下一代編程閉包就是能夠讀取其他函數內部變量的函數閉包是Javascript語言的一個難點,也是它的特色,很多高級應用都要依靠閉包實現。要理解閉包,首先必須理解Javascript特殊的變量作用域。變量的作用域無非就是兩種:全局變量和局部變量。Javascript語言的特殊之處,就在于函數內部可以直接讀取全局變量。另一方面,在函數外部自然無法讀取函數內的局部變量。理解并用好閉包(closure)1 12 2閉包的用途使用閉包的注意點1)由于閉包會使得函數中的變量都
9、被保存在內存中,內存消耗很大,所以不能濫用閉包,否則會造成網頁的性能問題,在IE中可能導致內存泄露。解決方法是,在退出函數之前,將不使用的局部變量全部刪除。2)閉包會在父函數外部,改變父函數內部變量的值。所以,如果你把父函數當作對象(object)使用,把閉包當作它的公用方法(Public Method),把內部變量當作它的私有屬性(private value),這時一定要小心,不要隨便改變父函數內部變量的值。“”JS的面向對象面向對象的語言有一個標志,即擁有類的概念,抽象實例對象的公共屬性與方法,基于類可以創(chuàng)建任意多個實例對象,一般具有封裝、繼承、多態(tài)的特性!但JS中對象與純面向對象語言中的對象是不同的,ECMA標準定義JS中對象:無序屬性的集合,其屬性可以包含基本值、對象或者函數??梢院唵卫斫鉃镴S的對象是一組無序的值,其中的屬性或方法都有一個名字,根據這個名字可以訪問相映射的值(值可以是基本值/對象/方法)。Lorem ipsum dolor consectetur adipisicing do eiusmod tempor incididunt labore olore magna aliqua dolor adipisicing dodo eiusmod tempor incicic didunt labore ipsum dolor .創(chuàng)建對象對象繼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年河南省遂平縣事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河南省汝陽縣事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河南省周口市川匯區(qū)人民政府招聘23人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河南新鄉(xiāng)市直事業(yè)單位招聘考試筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河南南陽市西峽縣醫(yī)療健康服務總醫(yī)院招聘122人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河南中煙工業(yè)限責任公司大學生招聘筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河北邯鄲叢臺區(qū)委人才工作領導小組博碩引才44人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河北衡水冀州區(qū)事業(yè)單位招聘工作人員193人筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河北省邯鄲涉縣事業(yè)單位招聘考試(138人)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年河北省白沙煙草限責任公司保定卷煙廠招聘15人易考易錯模擬試題(共500題)試卷后附參考答案
- 山東省威海市乳山市銀灘高級中學2024-2025學年高一下學期4月月考地理試題(原卷版+解析版)
- 信息技術在商業(yè)中的應用研究試題及答案
- 2025-2030中國味精行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究報告
- 2025建筑信息模型技術員(初級)技能鑒定精練考試題庫及答案
- 2024-2025學年七年級語文下學期期中模擬卷05
- 實施《中華人民共和國反外國制裁法》的規(guī)定
- 2025年中國儲能檢測認證行業(yè)市場運行態(tài)勢及發(fā)展趨勢預測報告-智研咨詢發(fā)布
- 湖南新高考教學教研聯盟暨長郡二十校聯盟2025屆高三年級第二次聯考物理試題及答案
- 診斷與評估課件 第十二節(jié) 資賦優(yōu)異兒童特征及學習資料
- 襄陽市樊城區(qū)城市更新投資發(fā)展有限公司招聘考試真題2024
- 2022智能變電站網絡記錄及分析裝置測試規(guī)范
評論
0/150
提交評論