如何使用PHP優(yōu)雅地開(kāi)發(fā)應(yīng)用
流程圖設(shè)計(jì)
在我們開(kāi)發(fā)一個(gè)應(yīng)用的時(shí)候,第一時(shí)間我們不應(yīng)該去想如何編碼,我們第一要做的應(yīng)該是理清楚需求,因?yàn)榻鉀Q需求才是一個(gè)應(yīng)用存在的價(jià)值。
有句老話說(shuō)得好,干活不由東,累死也無(wú)功。很多時(shí)候,我們可能一開(kāi)始并不能理解用戶的需求,或者說(shuō),用戶或者產(chǎn)品經(jīng)理一開(kāi)始也不能夠確切地表明他們自己的真實(shí)需求。我們有責(zé)任,也有義務(wù)幫助產(chǎn)品經(jīng)理理清思路,而幫助他們理清思路,我們要做的就是通過(guò)畫(huà)出流程圖確認(rèn)清楚明確的需求,永遠(yuǎn)不要只在口頭上明確,否則將來(lái)誤工,或者出現(xiàn)問(wèn)題的時(shí)候,產(chǎn)品經(jīng)理是會(huì)讓你背鍋的。
接口設(shè)計(jì)
前面我們也說(shuō)過(guò),產(chǎn)品經(jīng)理可能一開(kāi)始并不清楚他們自己想要的功能,或者未來(lái)她們可能會(huì)添加其它功能,因此我們需要進(jìn)行合理地接口設(shè)計(jì),這里的接口設(shè)計(jì)不是指前后端通信的接口,而是指面向?qū)ο笾械慕涌?,一個(gè)合理地接口設(shè)計(jì),可以讓我們的程序更健壯,也更靈活,同時(shí)也能讓我們的業(yè)務(wù)更加清晰明確。
好的接口設(shè)計(jì)可以讓我們改動(dòng)很少的代碼就能添加和修改功能,而沒(méi)有接口設(shè)計(jì),或者說(shuō)接口設(shè)計(jì)不明確,我們的代碼將會(huì)變成一鍋粥,到時(shí)候你將不知道從哪里下勺。
設(shè)計(jì)模式的使用
設(shè)計(jì)模式不僅可以讓代碼開(kāi)起來(lái)更優(yōu)雅,最重要的是它可以讓代碼變得更加可復(fù)用。
通過(guò)使用設(shè)計(jì)模式,可以讓我們的代碼變得高內(nèi)聚低耦合,可以讓我們?cè)谛枨笞兏吞砑有鹿δ艿臅r(shí)候變得游刃有余。
通過(guò)依賴注入等設(shè)計(jì)模式,我們的代碼將會(huì)變得更加優(yōu)雅,測(cè)試也會(huì)變得更加容易。
使用ORM進(jìn)行數(shù)據(jù)庫(kù)的操作
雖然ORM會(huì)對(duì)性能會(huì)造成一定的影響,但是相比它帶來(lái)的好處,這點(diǎn)性能影響幾乎微乎其微。通過(guò)使用ORM,可以讓我們的代碼編寫變得更加簡(jiǎn)潔和方便。
使用ORM的最大好處就是可以節(jié)省開(kāi)發(fā)時(shí)間,畢竟面向?qū)ο蟮木幋a更容易被程序員所接受。
使用框架開(kāi)發(fā)
在web開(kāi)發(fā)領(lǐng)域,無(wú)論什么語(yǔ)言,都會(huì)有自己的框架,即使有些不是開(kāi)源的框架,即使有些框架是公司獨(dú)有的,它們也是框架,而采用框架的最大好處就是簡(jiǎn)化了開(kāi)發(fā)流程,避免了大量重復(fù)造輪子,讓代碼結(jié)構(gòu)變得更加清晰。
通過(guò)使用框架,可以避免很多低級(jí)的錯(cuò)誤,并且很多框架集成了很多好用的腳手架,我們可以直接開(kāi)箱即用。在時(shí)間就是金錢的今天,使用框架可以大大節(jié)省開(kāi)發(fā)時(shí)間,這無(wú)疑節(jié)省了大量金錢。
集成單元測(cè)試
一個(gè)出色的項(xiàng)目一定是能夠應(yīng)對(duì)各種風(fēng)險(xiǎn)的,同時(shí)也一定是很少出現(xiàn)bug的。
人無(wú)完人,孰能無(wú)過(guò),為了讓我們的錯(cuò)誤盡可能減少,或者讓我們的錯(cuò)誤盡可能在開(kāi)發(fā)階段暴露,通過(guò)使用PHPUnit等集成測(cè)試框架是最佳的選擇。
總結(jié)
無(wú)論何時(shí)都要對(duì)寫過(guò)的代碼進(jìn)行review,永遠(yuǎn)不要重復(fù)自己,一開(kāi)始,你寫的解決方案可能不是最佳的或者是最優(yōu)雅的,但是當(dāng)你全身心投入到工作的時(shí)候,靈感往往會(huì)不自然迸發(fā)而出。
寫代碼不是寫文章,我們往往不需要那些華麗的辭藻,我們需要的是能解決問(wèn)題的代碼。不要試圖去揣測(cè)代碼,要讓代碼自己說(shuō)話。