成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

我的 PHP 學(xué)習(xí)路線

zhunjiee / 1693人閱讀

摘要:我的學(xué)習(xí)路線入門入門沒啥好說的,會基本編碼,基本的開發(fā)結(jié)構(gòu)通常指,呵呵噠,類與對象,就差不多了,可以說是入門了。在這些已有基礎(chǔ),我們需要學(xué)習(xí)并且還需要學(xué)會各種推陳出新,這樣才可以讓自己讓他人走得更遠(yuǎn)。

我的 PHP 學(xué)習(xí)路線 1. PHP 入門

PHP 入門沒啥好說的,會基本編碼,基本的開發(fā)結(jié)構(gòu)(通常指MVC,呵呵噠),類與對象,就差不多了,可以說是入門了。

1.1 OOP

寫 PHP 最多目前無非就是 OOP,面向?qū)ο?,說時遲那時快。不開玩笑地說,與我共事的某些前輩是連 OOP 都搞不清的,這里我就不多說了。

其實不是說一定要會,要去理解 OOP,只是如果你理解這個玩意,對于你后面的工作已經(jīng)學(xué)習(xí)會非常的有好處。

其實面向?qū)ο笠矝]有那么復(fù)雜,只要理解一點,單一職責(zé),其實就是一個對象越簡單越好。

也就是說,是自己該做就由自己做,不該由自己做的就不要自己做。

1.2 MVC

老梗了,所謂 MVC 很多人會說 Model, View, Controller, 其實這樣說沒錯的,只是這樣說不會讓你更好地理解結(jié)構(gòu)以及擴展性。

MVC 我當(dāng)前的理解是:調(diào)用(度),也很簡單,其他框架也差不多這個原理,當(dāng)然每個框架的實現(xiàn)方式都不一樣。

基本流程:

+--------------+      +-----------+      +--------------+                  +--------------+
|              |  ----+  request  +----> |              |  ------------>   |              |
|              |      +-----------+      |              |                  |              |
|   Request    |                         | Route Match  |                  |    Handle    |
|              |      +-----------+      |              |   +----------+   |              |
|              | <----+ Response  +----- |              | <-+ Response +-- |              |
+--------------+      +-----------+      +--------------+   +----------+   +--------------+

大致列了下最基礎(chǔ)的框架底層原理,實際上咱們開發(fā)中 90% 接觸的只是在 Handle 處的工作,至于 RequestMatch、 Route 等基礎(chǔ)的對象或者數(shù)據(jù),框架早已經(jīng)封裝好了,也無需過度糾結(jié)和頭疼這方面的事情,先要把業(yè)務(wù)功能處理好,并且容錯處理好即可。

簡單總結(jié)一句話:知其然而不知其所以然。


2. PHP 進階

進階這個真是個頭疼的問題,啥叫進階,我的理解是,做一些之前沒有做過的(指本領(lǐng)域:PHP),例如:設(shè)計模式,SPL,緩存設(shè)計(Cache),研究框架,開發(fā)規(guī)范,單元測試,行為驅(qū)動開發(fā),組件(包括自己著手開發(fā)的),Composer 等等的東西,都可以理解為進階。

框架推薦:

Symfony

Laravel

Yaf

PHP 開發(fā)規(guī)范(PSR):

PHP FIG

PHPUnit & TDD/BDD:

PHPUnit

PHP spec

設(shè)計模式:

設(shè)計模式

SPL:

PHP SPL

Composer:

Composer

歡迎補充

2.1 設(shè)計模式

設(shè)計模式,一個在軟件設(shè)計中占有重要角色的課程,而我們又不得不去了解。而對于設(shè)計模式來說,很多人是抗拒的,因為他和普通的開發(fā)者有著不一樣的思維方式,一個很明顯的提升就是: 設(shè)計,而設(shè)計應(yīng)該是根據(jù)發(fā)展的變化而變化,業(yè)務(wù)的變化而變化,模式也一樣,不會是永恒不變的。唯一不變的是,基礎(chǔ),這些技巧與思維少不了的是需要良好的基礎(chǔ)。

所以說,基礎(chǔ)是多么重要的,任何一切的一切都是建立與基礎(chǔ)之上,這叫積累。如同蓋樓。

在這些已有基礎(chǔ),我們需要學(xué)習(xí)并且還需要學(xué)會各種推陳出新,這樣才可以讓自己讓他人走得更遠(yuǎn)。

設(shè)計模式學(xué)習(xí)推薦: 設(shè)計模式

2.2 資源節(jié)省

當(dāng)今互聯(lián)網(wǎng),每秒鐘都是錢,能節(jié)省的,絕對不能浪費,而且節(jié)省還可以一定地提高服務(wù)的質(zhì)量。

一般我們說的資源是:

內(nèi)存

帶寬

磁盤

CPU

而這些之間其實是有一定的關(guān)聯(lián)的,和代碼質(zhì)量和容錯機制也有一定關(guān)系。

上述每一個都很重要,決定著你的服務(wù)質(zhì)量。

能少占用內(nèi)存就少占用內(nèi)存,圖片、媒體資源能壓縮就壓縮,減少無用的存儲,降低代碼的復(fù)雜度。

2.3 容錯

比較常見的是: file_get_contents,connection,有時候我們會很自然地遺忘這里其實會有一定幾率出現(xiàn)超時,最嚴(yán)重的就是造成服務(wù)無響應(yīng),如下代碼:

file_get_contents("https://www.google.com/");

這代碼分分鐘被打,活生生將程序毀了。

如果發(fā)生超時,會占用大量 CPU,嚴(yán)重可能會導(dǎo)致服務(wù)無響應(yīng),危害極大。

容錯是每個開發(fā)者在開發(fā)過程中必須要考慮的地方,沒有代碼沒有 “八阿哥”,總會有意外的地方,做好容錯可以最大程度地減少對用戶的傷害以及可以有效提高在出錯時的用戶體驗。百利而無一害。

2.4 日志

日志,一個很容易被無視而又非常非常重要的環(huán)節(jié),可以說,這一環(huán)節(jié)比你做的任何一個地方的業(yè)務(wù)代碼都要重要。

日志的好處:

記錄,跟蹤

調(diào)試

恢復(fù)

分析

調(diào)優(yōu)

等等...

好處有好多,但在我們開發(fā)者當(dāng)中,其日志最重要的功能之一就是,記錄問題,調(diào)試代碼,優(yōu)化架構(gòu)。

不得不說日志的重要性,請你好好重視這一個容易被忽略的環(huán)節(jié)。

而日志的設(shè)計需要考慮性能,不能因為日志而影響服務(wù)質(zhì)量哦。所以在日的環(huán)節(jié)在完整性和效率上要做好權(quán)衡。

2.5 緩存設(shè)計

緩存必須是針對業(yè)務(wù)情況而設(shè)計,不能生搬硬套。大公司的不一定適合你,開源方案也不一定不適合你,一定要找到自己合適的方案。

而在緩存設(shè)計方面,我個人推薦這一系列的文章: 緩存使用與設(shè)計

通俗簡單地說,緩存的目的是為了提高服務(wù)的響應(yīng)速度以及質(zhì)量,不能因為緩存的添加而導(dǎo)致服務(wù)異常。

2.6 原理理解 (這里說到框架的研究,說得不好的地方,請多多批評和教導(dǎo))

我們平時開發(fā)接觸不同的開發(fā)工具,操作,甚至是監(jiān)控,那么他們其中的原理,你又理解么?

其實我們每天接觸的東西都有它的實現(xiàn)原理,算法等等的東西,但我們一直都在使用,并沒有很好地去理解他們當(dāng)中的奧秘。時候有空去接觸一下了。

首先,開發(fā),編碼我覺得就是將現(xiàn)實生活搬到互聯(lián)網(wǎng)中,我舉個例子:

為什么人訪問量上來了,咱們就要擴容,去擴展呢?原理很簡單,看看咱們超市里面的收銀臺就知道了。咱們超市里面所有收銀臺不是每天每個位置都有人的,根據(jù)人流(流量)動態(tài)擴容,而且有些收一臺的一個位置上設(shè)置有兩個人(多線程/多進程,看個人理解),這個設(shè)計挺妙的。當(dāng)人一多,就會開多各個位置收銀臺,和增加人手。那他是怎么知道人多的呢?也很簡單,就是經(jīng)理(Manager/Master進程或者是運維,看理解),他知道,內(nèi)部調(diào)度安排人手。

大致舉了這么一個例子來說明擴展的原理。

回到正題: 框架

相信大家都有接觸過很多不同的框架,CI, TP, Symfony, Yii, Laravel, Slim等等,最深刻,最相似的地方在哪里呢?可能有些沒有,但是,有一點可以肯定的,就是,都是有一系列 Http 封裝,Route 處理。因為這兩是靈魂,剩下的是不是業(yè)務(wù)和結(jié)構(gòu)。

剩下的就是考驗框架代碼質(zhì)量的時候了,這里有一系列的框架,有的輕量,有的重量,有的靈活,有的高效。其實說到這里很多朋友都大概了解框架的運行原理。

我看過Symfony、Laravel、CI、Silex和ThinkPHP的代碼,當(dāng)然很粗略地看看。里面實現(xiàn)的大部分代碼都是將各個處理模塊 “粘合” 一起,也就是 "Bridge"。

大致流程圖:

   +----------+           +-------------+                      +------------+                          
   |          |           |             |                      |            |                          
   |  Client  |---------->| Application |--------------------->|   Start    |                          
   |          |           |             |                      |            |                          
   +----------+           +-------------+                      +------------+                          
         ^                                                            |                                
         |                                                            |                                
         |                                                            v                                
         |                         +-------------+             +-------------+                         
         |                         |             |             |             |                         
         |                         |  Container  |------------>|  Bootstrap  |-----+                   
         |                         |             |             |             |     |                   
         |                         +-------------+             +-------------+     |                   
         |                                ^                                        |     +------------+
         |                        +-------+--------+                               |     |            |
         |                        |                |                               +---->|  Request   |
         |                  +-----------+    +-----------+                               |            |
         |                  |           |    |           |                               +------------+
         |                  |   Route   |    |  Service  |                                      |      
         |                  |           |    |           |                                      |      
+----------------+          +-----------+    +-----------+       +-------------+                |      
|                |                                               |             |                |      
|    Response    |                                               | Dispatcher  |                |      
|                |<----------------------------------------------|             |<---------------+      
|                |                                               |             |                       
+----------------+                                               +-------------+                       
                                                                        ^                              
                                                                        |                              
                                                                        +--------------+               
                                                                        |              |               
                                                                        |              v               
                                                                        |        +----------+          
                                                                        |        |          |          
                                                                        +--------|Controller|          
                                                                                 |          |          
                                                                                 +----------+          

當(dāng)你了解了這些流程以及所需的組建,用先用的組件的話都是可以很方便地組合出自己想要的框架。

其實我這里希望更多的初學(xué)者多看看 ThinkPHP 的代碼,然后也看看其他開源框架的代碼,你會發(fā)現(xiàn),除了 ThinkPHP 之外,你還可以發(fā)現(xiàn)更多新奇好玩的東西。

最終其實還是離不開自己動手開發(fā)一個。

具體框架開發(fā)系列我會找個時間與大家分享??蚣艿睦斫饪芍^到一段落,下次我會分享我對其他服務(wù)器的理解。

來到這個階段的,應(yīng)該始終有一個意識:服務(wù)質(zhì)量高于一切,就是不能因為添加服務(wù)而影響原有的服務(wù)

簡單總結(jié)一下。大量動手實踐自己的猜想,分析自己做過的項目并且優(yōu)化自己覺得不足的地方。

總結(jié): 知其然并且知其所以然。

3. PHP 高手模式

我相信經(jīng)過九九八十一難,能來到這個模式的人已經(jīng)不多了。我自己還是菜鳥,不敢在這里胡說,這里會記錄我所有的 PHP 底層學(xué)習(xí)的經(jīng)過,這里的故事,我想我等不到下一個故事了。

Unix 環(huán)境高級編程

tcp/ip 網(wǎng)絡(luò)編程

PHP 擴展開發(fā)

頸椎病康復(fù)指南

活著

3.1 Unix 環(huán)境高級編程

為什么要理解并學(xué)習(xí)這一方面的知識?若果你是一名有追求的 PHP 開發(fā)者,最終還是應(yīng)該將精力落入到 “系統(tǒng)” 處,因為真正處理 PHP 程序的,正正是 “系統(tǒng)”,如何可以讓自己的 PHP 做得更好,如何可以讓自己的服務(wù)做的更好,如何可以讓后端支持更加強大,靈活,高效,你就應(yīng)該關(guān)注到底層系統(tǒng)的實現(xiàn)當(dāng)中,但平時也不要忘了 PHP 的開發(fā)規(guī)范。

此處的文章和筆記,我將會在以后的 Unix 學(xué)習(xí)一系列當(dāng)中給大家呈現(xiàn)。

3.2 tcp/ip 網(wǎng)絡(luò)編程

在日常生活中,Http 已經(jīng)離不開大家了,從平時打開應(yīng)用,打開瀏覽器,搜索,都是需要使用 Http,應(yīng)該沒有比這個接觸更多了吧。但是里面的奧秘你又知道多少?沒關(guān)系,和我一起探索 TCP/IP 的奧秘吧。

文章和筆記,以后會在 TCP/IP 章節(jié)中給大家呈現(xiàn).

3.3 PHP 擴展開發(fā)

學(xué)習(xí)擴展開發(fā)和學(xué)習(xí) PHP 是一樣一樣的,根據(jù) PHP 手冊上的流程...

語言參考

基本語法

類型

變量

常量

表達(dá)式

運算符

流程控制

函數(shù)

類與對象

命名空間

Errors

異常處理

生成器

引用的解釋

預(yù)定義變量

預(yù)定義異常

預(yù)定義接口

上下文(Context)選項和參數(shù)

支持的協(xié)議和封裝協(xié)議

看到這里應(yīng)該要懂得舉一反三的了,后面的看你們的造化了......

此處的文章和筆記,我將會在以后的 PHP 擴展開發(fā) 學(xué)習(xí)一系列當(dāng)中給大家呈現(xiàn)。

預(yù)告

我目前已經(jīng)開始做了: http://blog.fastdlabs.com/tag...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/30289.html

相關(guān)文章

  • 2019 PHP程序員發(fā)展路線

    摘要:在年我參加兄弟連的培訓(xùn),成為一名程序員。我認(rèn)為成為程序員的有以下三種途徑。為大家準(zhǔn)備了一份年程序員發(fā)展路線??梢娨部梢躁P(guān)注下上個時代框架霸主他的新版本可能會有奇跡發(fā)生擴展異步編程框架這個就不必多說了。 showImg(https://segmentfault.com/img/bVbmMdM?w=640&h=364); 我一生的文章都會放在這里,我的博客,我希望每一行代碼,每一段文字都能...

    MangoGoing 評論0 收藏0
  • PHP學(xué)習(xí)路線

    摘要:學(xué)習(xí)路線圖建議最后買一個域名和阿里云服務(wù)器,真正的將代碼部署到云服務(wù)器上去,走一次上線流程,用一下管理一下代碼會更棒。建議學(xué)習(xí)路線圖這個時候使用寫一個大并發(fā)的多服務(wù)器的秒殺出來。 PHP學(xué)習(xí)路線圖 在網(wǎng)上很多人公布了太多的PHP學(xué)習(xí)路線圖,本人在互聯(lián)網(wǎng)公司工作十余年,也帶了很多PHP入門的新手,將他們的一些問題和學(xué)習(xí)路線圖為大家整理出來,希望很多小白少走彎路。 一、 網(wǎng)上某些錯誤的學(xué)習(xí)...

    wapeyang 評論0 收藏0
  • PHP學(xué)習(xí)路線

    摘要:一網(wǎng)上某些錯誤的學(xué)習(xí)路線圖網(wǎng)上有些錯誤的學(xué)習(xí)路線圖,讓學(xué)完后立馬去學(xué)和等,這種課程簡直是對牛彈琴。這種錯誤的路線圖的問題在于將重心未放在方向,而放在了前端方向。在學(xué)習(xí)的過程中,我建議快快快。 在網(wǎng)上很多人公布了太多的PHP學(xué)習(xí)路線圖,本人在互聯(lián)網(wǎng)公司工作十余年,也帶了很多PHP入門的新手,將他們的一些問題和學(xué)習(xí)路線圖為大家整理出來,希望很多小白少走彎路。 一、 網(wǎng)上某些錯誤的學(xué)習(xí)路線圖...

    edagarli 評論0 收藏0
  • PHP學(xué)習(xí)路線

    摘要:一網(wǎng)上某些錯誤的學(xué)習(xí)路線圖網(wǎng)上有些錯誤的學(xué)習(xí)路線圖,讓學(xué)完后立馬去學(xué)和等,這種課程簡直是對牛彈琴。這種錯誤的路線圖的問題在于將重心未放在方向,而放在了前端方向。在學(xué)習(xí)的過程中,我建議快快快。 在網(wǎng)上很多人公布了太多的PHP學(xué)習(xí)路線圖,本人在互聯(lián)網(wǎng)公司工作十余年,也帶了很多PHP入門的新手,將他們的一些問題和學(xué)習(xí)路線圖為大家整理出來,希望很多小白少走彎路。 一、 網(wǎng)上某些錯誤的學(xué)習(xí)路線圖...

    xietao3 評論0 收藏0

發(fā)表評論

0條評論

zhunjiee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<