PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計》之三 重新組織數(shù)據(jù)
Jun 13, 2016 pm 12:01 PM
思維導(dǎo)圖
介紹
accessor:訪問者,存儲器——在本文翻譯為“函數(shù)”
dumb:啞
domain class:用以處理業(yè)務(wù)邏輯
presentation class:用以處理”數(shù)據(jù)表現(xiàn)形式“
business logic:業(yè)務(wù)邏輯
unidirectional:單向的
bidirectional:雙向的
collection:群集
?
動機(jī):
“間接訪問變量”:支持更靈活的數(shù)據(jù)獲取方式,如lazy Initialization(意思是只有用到值時,才對它進(jìn)行初始化。)
“直接訪問變量”:代碼比較容易閱讀,不需要停下來說:“啊,這只是個取值函數(shù)”。
?????? 選擇:1、代碼規(guī)范,按照團(tuán)隊中大多數(shù)人的做法去做。
2、個人比較喜歡“直接訪問變量”,直到這種方式帶來麻煩為止。
martin(作者)的例子:你想獲取superclass中的field,卻又想在subclass中將該field改為計算后的值,這就最該使用Self Encapsulate Field。
???????????????????????? 我自己的例子:我一般會把field設(shè)置成private,如果外部變量,需要用到此field的時候,我就會用Self Encapsulate Field?;蛘遞ield的值有變化的時候,用Self Encapsulate Field。
?
開發(fā)初期,我們也許會使用基本數(shù)據(jù)類型表示簡單的行為。例如:你可能會用一個字符串表示電話號碼,但是隨后可能會出現(xiàn)電話號碼的“格式化“,”驗證“,”抽取區(qū)號“之類的特殊行為?!@時候我們就需要一個新類。
?動機(jī):
數(shù)組常用于一組相似對象。如果數(shù)組中的元素不同,很難明白數(shù)組中的第一個元素是人名這樣的約定。對象就不同了,可以通過值域名稱和函數(shù)名稱傳達(dá)這樣的信息?!@樣無須死記,無須注釋。
?動機(jī):

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

掌握PHP常用運(yùn)算符能應(yīng)對多數(shù)開發(fā)場景,主要包括:1.算術(shù)運(yùn)算符( 、-、、/、%)用于數(shù)學(xué)計算,支持變量動態(tài)運(yùn)算,但需注意自動類型轉(zhuǎn)換可能引發(fā)的問題;2.比較運(yùn)算符(==、===、!=、>、

在PHP中定義常量主要有define()函數(shù)和const關(guān)鍵字兩種方式。define()是運(yùn)行時函數(shù),可在任意位置動態(tài)定義常量;而const是編譯階段處理的語言結(jié)構(gòu),必須在全局或類中直接使用,不能放在條件語句、循環(huán)或函數(shù)中。兩者區(qū)別主要體現(xiàn)在:1.define()支持動態(tài)定義,適合根據(jù)配置文件決定的情況;2.const適用于類中定義常量、命名空間中使用,更具可讀性和組織性且性能略優(yōu);3.const定義常量需注意作用域問題,如命名空間前綴不可省略;4.兩者均不支持修改已定義的值,但define()

TostartwithPHP,firstsetupalocalserverenvironmentusingtoolslikeXAMPPorMAMP,thenwriteabasicPHPscriptusingechotodisplaytext,andfinallyintegratePHPwithHTMLfordynamiccontent.1.ChooseatoollikeXAMPPforWindowsorMAMPforMactoinstallApache,MySQL,andPHP.2.PlaceP

PHP有三種常見的注釋方式,分別是單行注釋、多行注釋和文檔塊注釋。1.單行注釋使用//或#,適合簡短說明,可置于代碼行末或單獨一行;2.多行注釋以/開頭并以/結(jié)尾,適合詳細(xì)說明如函數(shù)功能或版本記錄;3.文檔塊注釋以/**開頭,結(jié)合@param、@return等標(biāo)簽,能被IDE和工具識別,用于生成代碼提示和文檔。此外,建議為函數(shù)和類編寫注釋,尤其公共方法;在復(fù)雜邏輯處添加解釋性注釋;避免無意義注釋;不提交被注釋掉的調(diào)試代碼。掌握這些注釋方式和使用建議,有助于提升代碼可讀性和維護(hù)效率。

PHP中添加注釋有三種方式://、#和//,其中//最常用。注釋能提升代碼可讀性和維護(hù)性,應(yīng)解釋“為什么”而非“做了什么”,同時需保持更新。函數(shù)和類應(yīng)注明功能及輸入輸出參數(shù),內(nèi)聯(lián)注釋可用于解釋復(fù)雜邏輯。合理使用注釋有助于團(tuán)隊協(xié)作與后期調(diào)試,避免過多或過時的注釋。

安裝PHP常見問題有四種,分別是:1.PHP無法啟動或報錯,應(yīng)檢查php.ini配置錯誤并用php-t驗證;2.安裝擴(kuò)展失敗時確認(rèn)底層依賴是否安裝完整;3.Web服務(wù)器無法解析PHP文件需檢查PHP-FPM是否啟用并與服務(wù)器配置匹配;4.多版本沖突可通過whichphp和php-v查看當(dāng)前使用版本并調(diào)整環(huán)境變量或切換工具。遇到問題應(yīng)逐步排查配置和日志以定位原因。

注釋應(yīng)說明“為什么”而非“做了什么”,如解釋業(yè)務(wù)原因而非重復(fù)代碼操作;2.在復(fù)雜邏輯前加總覽性注釋,簡要說明流程步驟,幫助建立整體印象;3.給“奇怪”代碼加注釋,解釋非常規(guī)寫法的意圖,避免誤解為bug;4.注釋格式建議簡潔為主,單行用//,函數(shù)/類用/*.../,保持統(tǒng)一風(fēng)格;5.避免注釋與代碼不同步、注釋過長或注釋掉代碼未刪除等問題,確保注釋真正提升代碼可讀性和維護(hù)性。

這篇文章回答了新手學(xué)習(xí)PHP的幾個關(guān)鍵問題。一,快速上手基礎(chǔ)語法的方法是通過實踐變量、條件判斷和循環(huán)等基本結(jié)構(gòu),例如使用$定義變量、echo輸出內(nèi)容、if判斷條件;二,PHP與HTML結(jié)合使用的方式是將PHP代碼嵌入HTML中,用包裹,并注意在支持PHP的服務(wù)器環(huán)境下運(yùn)行;三,處理表單提交和數(shù)據(jù)庫連接的流程包括:前端提交表單、PHP接收數(shù)據(jù)、驗證數(shù)據(jù)、使用mysqli或PDO等方式連接數(shù)據(jù)庫并執(zhí)行插入操作,同時推薦使用ORM工具提高安全性與便捷性。文章強(qiáng)調(diào)學(xué)習(xí)PHP要注重動手實踐,逐步積累經(jīng)驗。
