一個初級的PHP程式員如何提升自己的技能,以及構建自己的技能樹?

來源:互聯網
上載者:User
看到一個JAVA程式員提出這樣的問題,我就隨口問了一下。我現在在一家互連網公司上班,剛剛寫代碼時間不長,領導有的時候會說My Code品質不好,請問我該怎麼提升自己的技能?每天的工作就是系統的功能最佳化,寫寫功能類的代碼。

回複內容:

瀉藥。。。
這個嘛。。拿我個人來說。。(我是比較笨的)
首先就是 擼代碼,PHP是個易上手的語言,但是並不代表就簡單。
擼了比較多的代碼發現很多代碼都是可以重複引用的。於是我學會了 《封裝》
----------------------------
發現自己封裝的代碼還是有開發效率問題,於是我上網搜尋解決方案,發現PHP有不少的 架構可以使用,可以節約不少的時間。
----------------------------
項目多了之後我發現很多稍微大的項目很難控制碼品質,比如東一塊西一塊的寫代碼,需要什麼功能就在直接擼代碼在哪塊,我發現這樣很不對勁,我試圖上網查看解決方案於是我學會了 《設計模式》
------------------------------
我開始發現我。。我的伺服器死機了,我發現我寫的SQL有效能瓶頸,在一台伺服器上跑不動了,於是我學會了, 最佳化SQL
-------------------------------
我又發現單單最佳化SQL還是木有用。。於是我又學會了, MYSQL讀寫分離。。
------------------------------
現在問題又來了,單單資料庫最佳化是不夠的,於是我又學會了 負載平衡
------------------------------------
然後就是緩衝,中介軟體,NOSQL,PHP擴充開發。
總之:不積跬步無以至千裡. 庖丁解牛,熟能生巧,他山之石可以攻玉關於代碼品質問題,個人認為好的代碼應該符合以下條件,依重要程度排序:
1、可用性。沒什麼好說的,代碼必須是以實現需求為前提,並且是可正確啟動並執行,否則工整優美如詩也不過是屎。
2、可靠性。代碼這個東西啊,不能加很多特技,看到很快很牛,結果使用者一用一定罵娘,根本沒有這種代碼,證明你寫的代碼都是假的。好的代碼在邏輯上應該能考慮到業務上的各種情境,以及在實際線上運營的壓力下是穩定可用的。說起來很簡單,足夠複雜的模組,習慣先用文檔進行初步構建和檢驗,再者測試,測試,測試~
3、可讀性。實現功能、通過測試上線運行,只是基礎……
一、看下命名,用詞是否簡明,含義是否清晰,不要用拼音,不要用拼音,不要用拼音;風格是否統一(有沒有駝峰和底線同時存在的情況)或是否符合團隊/架構的書寫規範。
二、最好找別人的代碼,或者自己已經放下一段時間的,讀一下大段的代碼,讀一下大段的代碼,讀一下大段的代碼……讀一下n層嵌套的代碼,讀一下n層嵌套的代碼,讀一下n層嵌套的代碼……讀到吐了大概就知道怎麼改了。
三、良好的書寫格式,注意空行,縮排的使用,總之要自己看著舒服。
四、注釋,注釋,注釋。
如果不想將來接手的程式員經常問候你娘親,現在就開始改吧。
4、結構化(複用性,可維護性等……)。“結構化的程式設計”這個在讀書時,上C語言的時候提出的東西,看似並沒有什麼卵用,其實是相當於獨孤九劍中的總決篇。現在的PHP能實現抽象程度較高的物件導向方法,也比較完善的物件導向實現方式;有前人幫忙總結了一套GoF設計模式。已經很幸福了,熟練掌握這些概念和各種技巧,然後忘掉,迴歸結構化設計的思想,所有技法可順手拈來,無招勝有招。
5、高效。只要是對以上條件有助益,效率是可以在一定程度上做出犧牲的;但另外能做好上面的四條的代碼效率不會低。

關於怎麼提升,以下是本人的切身經驗:
1、態度。容易出現在剛工作,接手維護現有代碼的程式員身上。不是自己寫的代碼不主動關注,不但沒有做好,也失去了提升的機會。更有甚者直接複製粘貼,連改動都不帶一丁點。所以要有一個覺悟:所有交給你經過手的代碼,不管原創是誰,就是你的代碼,你需要對它們負責。
2、多讀。找一些項目讀,好的不好的都可以,分析它們寫得好不好,好在哪,不好在哪。讀代碼是很枯燥的,要耐得住。
3、多寫。沒什麼好說的
4、各種基礎姿勢。不止於PHP,不止於業務,哪裡不會點哪裡,自行體會。不請自來
幹了三年多PHP的程式員來回答一下
題主記住,任何語言程式員是靠代碼量和BUG數堆起來的。
本人的成長方式就是大量刷別人的來來源程式,研究為什麼要這麼寫。
遇到的問題多了,以後再遇到相同性質的就可以直接解決了。甚至你可以知道為什麼會出現這種問題。

總結起來就是
多看,多想,多實現。最最基本的是先把手冊看幾遍,邊看邊敲。這是不可以跳過的一個步驟。

精通HTML、CSS和JS等技術,不管以後是否會用,必須要精通。
吃透伺服器和資料庫有關的部署和設定,不是完整的做過一次就行了。
然後盡量理解設計模式,MVC等基礎知識,不僅僅是瞭解那麼簡單,一定要實際使用起來。

然後找一些O'REILLY的PHP有關的書啃一下,盡量找一些涉及的比較全面的,比較廣泛的。推薦《構建可擴充的Web網站》

最後,多練多交流。

提個建議,很多初學者還沒會基礎只是就開始討論效能、負載。不著急,先學基礎,學會基礎再去看那些假大空的東西。建立php碼農集合群,地址位於中關村軟體園,歡迎大家前來,共同研究php以及共同解決BUG,106243666
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.