乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      成為一個PHP專家:缺失的環(huán)節(jié)

       corefashion 2014-04-10

      這一篇文章是“Becoming a PHP Professional”系列 4 篇博文中的第 1 篇。

      當(dāng)瀏覽各類與PHP相關(guān)的博客時,比如Quora上的問題,谷歌群組,簡訊和雜志,我經(jīng)常注意到技能的等級分化。問題都類似于“我如何連接到MySQL數(shù)據(jù)庫?”或者“我該如何擴(kuò)展郵件系統(tǒng)才能在每小時發(fā)送超過一萬封郵件,而不需要引入新的服務(wù)器?”

      我將PHP能力水平分為4個等級(可能適用于任何編程語言或?qū)I(yè)):初級、中級、專家和精英。

      等級

      對于PHP初級者,他們學(xué)習(xí)如何使用變量,包含文件,表單處理等。他們學(xué)習(xí)簡單的邏輯結(jié)構(gòu)。在教程的指導(dǎo)下,實(shí)現(xiàn)了用PHP發(fā)送郵件,甚至觸及了面 向?qū)ο缶幊痰珔s沒有完全理解它。他們還能修改WordPress的幾個CSS文件。有了這些知識,他們就開始找工作,但不幸的是通常都會失敗。

      專家是指那些經(jīng)歷過許多項目并有了豐富經(jīng)驗(yàn)的人。他們已經(jīng)開發(fā)了許多商業(yè)應(yīng)用,但沒有完全使用框架來做。他們能夠使用PHP與不同的數(shù)據(jù)庫進(jìn)行高效地開發(fā),以及通過會議來討論解決問題的方案。他們熟悉設(shè)計模式,能夠輕松地將項目的工程圖用代碼實(shí)現(xiàn)。他們遠(yuǎn)離過程式地編程。

      精英程序員是那些努力了10000+小時磨 練自己專業(yè)技能的人。他們能夠根據(jù)自己的需要編寫PHP的擴(kuò)展,只是瞧一下源代碼文件就能發(fā)現(xiàn)BUG,并且非常了解自己的代碼布局。他們只做最復(fù)雜的項 目,并且能夠找到可選的和富有創(chuàng)造力的方案來解決問題。他們已經(jīng)寫了一些深受歡迎的關(guān)于編程語言的書籍,開過幾十次講座,甚至可能擁有自己的PHP語言版 本或者非常成功的框架,或兩者都擁有。

      那么,誰屬于中級呢?

      缺失的環(huán)節(jié)

      初學(xué)者怎樣才能成為和超越專業(yè)人士?如果一個人不知道超出基本知識的東西,他如何能提高自己的技能,摒棄錯誤的開發(fā)方式和學(xué)習(xí)更先進(jìn)的開發(fā)方法。這個問題是許多初學(xué)者向我提問過的。為了成為一個專家,他必須先成為中級者。

      下面的列表中指出了一個人成為中級者所需經(jīng)歷的PHP學(xué)習(xí)路程:

      放棄意大利面條式的代碼

      很多人認(rèn)為使用了類就意味著在編寫面向?qū)ο蟮拇a,而使用了函數(shù)則意味著編寫過程式的代碼。然而這是錯誤的,為了支撐這一觀點(diǎn),我們假設(shè)一個廣為流傳的定義:過程式代碼是沒有使用到類和對象的代碼,而OOP代碼是盡可能地使用類和對象的代碼。

      我的建議是完全放棄過程式代碼。盡可能地使用面向?qū)ο蟮娘L(fēng)格編程-編寫類,封裝邏輯,考慮使用真實(shí)世界中的術(shù)語。相比適當(dāng)?shù)腛OP代碼所帶給你的可 重用性和未來開發(fā)者能方便地在你的項目繼續(xù)開發(fā)的好處,過程式代碼的性能優(yōu)勢顯得微不足道。針對這個觀點(diǎn)的反對聲音是“但是,WordPress是過程式 的!”。坦白地說,這聽起來可能有點(diǎn)刺耳,“WordPress的開發(fā)者”并不是真正的PHP開發(fā)者,好比擁有了Instagram 就會是攝影師一樣。請不要認(rèn)為這意味著WP是沒用的—當(dāng)你不希望花太多時間開發(fā)一個博客,簡單的站點(diǎn)和為期一天的小項目時,使用WP開發(fā)會讓你感到驚奇。 它非常適合于急于求成或者沒有太多技術(shù)的人,但掌握WP絕對無法使你成為一個專業(yè)的PHP開發(fā)者—它使用意大利面條式的編碼,教你的是不合適的設(shè)計原則。

      從小事做起。想想現(xiàn)實(shí)世界的概念,并嘗試以O(shè)OP代碼表示它。通過一些基本的教程,并慢慢地熟練掌握OOP。在過渡到合適的框架和樸所迷離的術(shù)語例如“模型”,“視圖”和“控制器”之前,堅持用OOP思想編寫代碼直到你大體上理解了類-所有這些都是云里霧里,抽象術(shù)語在OOP中并沒有堅實(shí)的基礎(chǔ)。

      剖析現(xiàn)有項目

      深入到現(xiàn)有的你所能尋找到的源代碼中。例如,查看PHP projects on Github,克隆它們,部署到自己的主機(jī)上并且試著去閱讀代碼。每一個文件,每一行,直到你理解它們是做什么的。

      尋找具備規(guī)范的注釋,結(jié)構(gòu)良好,而且還在不斷開發(fā)的項目。在2008年之前更新的項目并不是太好,如果你要開始使用PHP5.5的話—否則你可能會錯過能使你在已經(jīng)人口過剩的領(lǐng)域里脫穎而出的PHP最新和最強(qiáng)大的特性。

      學(xué)會搭建自己的PHP開發(fā)環(huán)境

      如果能夠建立自己的環(huán)境是非常不錯的能力。自己搭建環(huán)境時不僅允許你根據(jù)實(shí)際情況進(jìn)行一些微小的調(diào)整,還能讓你熟悉如何從源代碼構(gòu)建擴(kuò)展。

      放棄在Windows上開發(fā)—如果你主要的桌面環(huán)境是Windows,那么安裝個虛擬軟件和運(yùn)行一個Linux虛擬機(jī)—Windows中不區(qū)分大小寫,它的行結(jié)束符,以及其他的一些東西與大多數(shù)服務(wù)器環(huán)境并不相符,在Windows上開發(fā)只會出現(xiàn)許多麻煩,所以最好在一個你最終運(yùn)行項目的系統(tǒng)上進(jìn)行開發(fā)。

      虛擬機(jī)還可以幫助你進(jìn)行一些實(shí)驗(yàn)-如果出現(xiàn)錯誤,你可以重新開始或者進(jìn)行回滾。你可以盡可能多低去嘗試,只要你想,而不必?fù)?dān)心把事情搞亂了。掌握工具固然重要,但有一個良好的工作平臺也是很重要的。

      自己進(jìn)行實(shí)驗(yàn)也能讓你熟悉不同的服務(wù)器—是否使用Apache或者Nginx,還是使用Appserver等。

      盡早地進(jìn)行最佳實(shí)踐

      當(dāng)編寫代碼的時候,請確保你有充足的文檔注釋,精美的縮進(jìn)和良好的結(jié)構(gòu)。當(dāng)你構(gòu)建一個類、項目或庫的時候,使用眾所周知的文檔工具(PHPDocumentor, ApiGen)來提取你的文檔注釋并加以改進(jìn)。

      一個好的IDE也是非常值得的—使用一個跨平臺的編輯器能幫助你在任何時間建立一個新的開發(fā)環(huán)境時,保證你將注意力集中在編寫代碼而不是把時間浪費(fèi) 在修改鍵盤快捷鍵和主題上。確保你備份了IDE的配置文件到谷歌云服務(wù)等地方,這樣你就可以隨時導(dǎo)入你的配置文件進(jìn)行全新安裝。一個好的IDE是PHPStorm,或者如果你買不起,或者沒有需要免費(fèi)許可的開源項目,Netbeans是一個好的選擇,并且兩者都是跨平臺的。

      盡早的進(jìn)行最佳實(shí)踐能幫助你的代碼保持一致,以及其他人能夠更加流暢的閱讀你的代碼。找到你的風(fēng)格,并堅持下去-你幫助到的將不只是你自己,還有他人。試著遵循PSR標(biāo)準(zhǔn)(PSR-0, PSR-1, PSR-2, PSR-3)—它們能成為標(biāo)準(zhǔn)是有原因的。我們大多數(shù)人都使用并且喜愛這些標(biāo)準(zhǔn),它讓每個人的代碼都具有良好的可重用性和可讀性。

      對于一個初級者非常好的且不斷更新的資源是PHP the right way—學(xué)習(xí)它將能熟悉最新的實(shí)踐,基本的OOP,安全,部署,編碼標(biāo)準(zhǔn)等我所提到的,甚至更多。

      嘗試不同的框架,然后選擇一個

      長期以來,PHP是大多數(shù)框架使用的語言(最近JavaScript成為了最多者)。這是否說明我們的社區(qū)或者語言的流行程度不一致,我也說不清,但事實(shí)仍是,選擇一個框架是一項艱巨的任務(wù),特別是第一次開始選擇。

      嘗試過了其中的大部分框架,我可以全心全意推薦Phalcon框架,因?yàn)樗哂胁诲e的魯棒性和質(zhì)量,而事實(shí)上,它是用C編寫的并作為PHP的擴(kuò)展被安裝(因此比現(xiàn)在的任何框架都要快)。然而,親自嘗試不同的框架是很有必要的。

      當(dāng)你嘗試不同框架的時候,你會發(fā)現(xiàn)對于同樣的問題可以用新的方法解決。每個框架都有你所喜歡的優(yōu)點(diǎn)和你所厭惡的缺點(diǎn),但更重要的是,你將能了解到他人的心態(tài)(尤其是框架的開發(fā)者)。你會看到新的用法和方法,并且最好的實(shí)踐是使用盡可能多的框架重構(gòu)相同的實(shí)驗(yàn)項目。這將幫助你有效地衡量一個特定框架的功效:使用它進(jìn)行開發(fā)的速度和它的性能。

      別低估別人的提示和技巧。盡可能多地閱讀—如果你一直堅持著,它并不會花費(fèi)你所想象的那么多時間。找一個好的博客并跟隨它,閱讀本站的指南,遍歷StackOverflow的問題和答案,訪問SitePoint論壇,訂閱簡訊,跟隨在Google+上的良好資源。避開基本的PHP教程書籍—因?yàn)樵谒鼈円怀霭娴臅r候就過時了—相反,專注于你所能在網(wǎng)上找到的含有最新代碼的片段和指南。即使遇到你已經(jīng)學(xué)習(xí)過的話題,試著閱讀下—通過閱讀他人對于同一個問題的觀點(diǎn),你經(jīng)常會發(fā)現(xiàn)一些新的東西。

      如果沒有什么事可以做,試著創(chuàng)造一些

      總是有事可做。永遠(yuǎn)不要說“我沒有項目可做”,或者更糟的“我很無聊”。如果你沒有一個正在進(jìn)行的項目可以做—那就創(chuàng)造一個。你每天使用的工具是否讓你感到受挫因?yàn)樗煌晟频墓δ??自己做出一個更好的!對新產(chǎn)品沒有想法?那就復(fù)制一個現(xiàn)有的—試著重建一個基本的FaceBook,重建一些你已經(jīng)知道了的,為了能夠?qū)嵺`一下。

      最重要的是永不停止—如果不珍惜每一個小時,你將不可能積累到10000小時!繼續(xù)努力,保持自己的興趣和參與熱情。做一個簡單的地址簿應(yīng)用。然后用另外一個框架重建它。并且使用不同的數(shù)據(jù)庫(例如使用Mongo代替MariaDB)。保持忙碌!

      找到一個搭檔/導(dǎo)師

      如果有人能和你一起的話,學(xué)習(xí)會變得更加容易。找到能夠與你共享激情的搭檔。也許你就是那幸運(yùn)的少數(shù)人之一,已經(jīng)擁有一個搭檔共享你的獨(dú)特興趣。也許你在學(xué)?;蛘叽髮W(xué)里有一個同行愿意和你一起開始并努力學(xué)習(xí)。你甚至可以找到一個導(dǎo)師,并接受專家的指導(dǎo)。

      不要低估搭檔的力量—三人行必有我?guī)熝桑?/p>

      總結(jié)

      當(dāng)你專注于所有這些條目并且盡可能地掌握它們時,當(dāng)你意識到這就是你所想要的,那么請堅持下去—你正走在成為一個高級PHP開發(fā)者的路上。維持原則,絕不放棄(即使你身邊有人放棄了)并且堅持實(shí)踐。

      如果你有一些有用的資源并且想要與我們分享你是如何跨越(或正在跨越)中級開發(fā)者這道坎,請在下面留言,讓我們知道!

      原文鏈接:http://www./becoming-php-professional-missing-link/

      譯文鏈接:http://blog./56560/

      【編輯推薦】

      【責(zé)任編輯:陳四芳 TEL:(010)68476606】

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多