php常用設(shè)計模式和應(yīng)用場景 PHP網(wǎng)站開發(fā)如何選擇開發(fā)方式?
PHP網(wǎng)站開發(fā)如何選擇開發(fā)方式?我認為您提到的開發(fā)模式應(yīng)該是指我們經(jīng)常談?wù)摰能浖_發(fā)模式。我想告訴您這些模式是否適用于PHP。答案是肯定的,它們是適用的。讓我們來談?wù)勥@些常見的開發(fā)方法。瀑布模式:從上
PHP網(wǎng)站開發(fā)如何選擇開發(fā)方式?
我認為您提到的開發(fā)模式應(yīng)該是指我們經(jīng)常談?wù)摰能浖_發(fā)模式。我想告訴您這些模式是否適用于PHP。答案是肯定的,它們是適用的。
讓我們來談?wù)勥@些常見的開發(fā)方法。
瀑布模式:
從上而下嚴格執(zhí)行,從需求分析、軟件設(shè)計、軟件編碼、軟件測試、維護等。優(yōu)點是每一步都很清楚,但是結(jié)果很慢
迭代模式:
是版本模式。首先開發(fā)一個基本框架,然后為每個版本添加新的和完善的功能更新。優(yōu)點是快速看到結(jié)果,迅速占領(lǐng)市場,缺點是給人的感覺是產(chǎn)品粗糙,缺乏完美的邏輯
增量模型:
非常類似于迭代模型。這是由模塊開發(fā)的。比如我先開發(fā)一個個人系統(tǒng)功能,只需要登錄、注冊和修改個人信息,然后再開發(fā)一個產(chǎn)品系統(tǒng)。優(yōu)點是客戶在使用產(chǎn)品時能立即看到產(chǎn)品,使產(chǎn)品更方便,缺點是缺乏對產(chǎn)品的宏觀控制
敏捷開發(fā):
這種模式以人為本,將大項目分解成幾個小項目。每個項目都是瀑布模型,因為劃分和分解是以人為本的,所以比較靈活
除此之外,我們經(jīng)常看到招聘的時候,需要TDD開發(fā)和DDD開發(fā),那么它們是什么
t DD:
測試驅(qū)動開發(fā)就是先寫測試用例,然后開發(fā)業(yè)務(wù)邏輯。在開發(fā)接口時,我們基本上采用這種模式。首先,我們讓接口返回固定數(shù)據(jù),然后為業(yè)務(wù)邏輯返回特定數(shù)據(jù)。因為每一步都經(jīng)過測試,所以代碼更可靠。每次我們添加新的邏輯,只需要運行一次測試用例,然后我們就可以擺脫它,它基本上可以保證軟件中沒有大的bug
DDD:
域驅(qū)動開發(fā)。它更關(guān)注業(yè)務(wù)邏輯。它是基于測試驅(qū)動開發(fā)的,但是它強調(diào)整體服務(wù),比如提供個人中心服務(wù),這是一種滿足業(yè)務(wù)邏輯需要的服務(wù),可以很容易地提供給其他模塊
學(xué)習(xí)本身就是一個循序漸進的過程,PHP很容易入門,但掌握需要一步一步來。
1. 從一個簡單的框架開始,比如ThinkPHP,從CMS開始,推薦thinkcmf。它們都是中國人的作品,材料不需要翻譯。
2. HTML、CSS和JavaScript都需要涉獵。JQuery,一個早期的框架,今天仍然很有用,而且尖端技術(shù)仍然需要掌握angular、js和Vue。也有相似之處余燼.js、主干等,前端框架最凌亂。ES6和ES7的語法仍在改進中。不要貪心,一步一步地去了解它。
3. 終極框架推薦國外最流行的laravel。它模仿ruby的設(shè)計理念,與Java類似。它將設(shè)計模式發(fā)揮到了極致。因此,掌握這個框架主要集中在控制反轉(zhuǎn)(IOC)、依賴注入(DI)上,這實際上是工廠模式和接口(laravel中的契約)。實現(xiàn)技術(shù)使用PHP的魔術(shù)方法(比如靜態(tài)調(diào)用)和反射機制來實現(xiàn)優(yōu)雅,被稱為Web藝術(shù)家的框架。
4. Mysql,mongodb慢查詢優(yōu)化,緩存設(shè)計,子數(shù)據(jù)庫,子表,分片設(shè)計,SQL優(yōu)化。大約是半分貝。
5. 異步消息隊列的使用,如Beanstalk或rabbitmq。Redis使用Memcache,結(jié)合特定的業(yè)務(wù)場景,具有處理高并發(fā)架構(gòu)的能力。
6. Lamp/LNMP部署,包括應(yīng)用集群、數(shù)據(jù)庫集群、MQ和redis緩存集群部署。大約是Devops的一半。
技術(shù)的最終目標是成為一名優(yōu)秀的架構(gòu)師。它是綜合能力的培養(yǎng),是新知識的學(xué)習(xí)能力,是解決商業(yè)問題的能力。我不認為許信辰已經(jīng)掌握了以上這么多。他在底層、PHP內(nèi)核、C擴展等方面比較精通,但他非常成功。也有spool和workman的作者,但是在社區(qū)中建立這種威望也是必要的,這需要付出很多代價。如果你想成為一名技術(shù)大師,這個過程是必不可少的。
手機打字不容易。我也是一個php程序員和標題作家。我會定期在專欄里發(fā)一些技術(shù)文章。歡迎你關(guān)注我。我們也歡迎更正上述評論。