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