監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

十位頂級PHP開發(fā)工程師的開發(fā)原則

申請免費試用、咨詢電話:400-8352-114

南昌網(wǎng)站建設(shè)

 

 

1. 在適宜的時分運用PHP – Rasmus Lerdorf

 

  沒有誰比PHP的創(chuàng)立者Rasmus Lerdorf清楚PHP用在什么當?shù)厥歉侠淼?,他?995年發(fā)布了PHP這門言語,從那時起,PHP就像燎原之火,燒遍了整個開拓陣營,改動了互聯(lián)網(wǎng)的世界??墒?,Rasmus并不是因而而創(chuàng)立PHP的。PHP是為調(diào)查決web開拓者的實踐問題而降生的。


  和很多開源項目一樣,PHP變得盛行,盛行的念頭并不克不及用正常的哲學(xué)來進行分析,甚至盛行得有些顧影自憐。它完全可以作為一個案例,一個處理各類Web問題的東西需求所惹起的案例,因而當PHP剛呈現(xiàn)的時分,這種東西需求悉數(shù)聚集到PHP的身上。
  然則,你不克不及奢望PHP可以處理一切問題。Lerdorf是第一個供認PHP只是一種東西的人,而且PHP也有良多力所不克不及及的狀況。


  依據(jù)任務(wù)的分歧來選擇適宜的東西。我跑了良多家公司,為了壓服他們擺設(shè)和運用PHP,然則這并不料味著PHP對一切問題都合用。它只是可以一個處理大局部問題的front-end腳步言語。
  作為一個web開拓者,測驗用PHP處理一切問題是不科學(xué)的,還也會糜費你的工夫。當PHP玩不轉(zhuǎn)的時分,不要猶疑,試用一下其他的言語吧。


  2. 運用多表存儲進步規(guī)劃伸縮性 – Matt Mullenweg

 

  沒有人情愿質(zhì)疑Matt Mullenweg在PHP方面的威望性,他開拓了這個星球上最盛行的blog系統(tǒng),(依托一個強壯的社區(qū)力氣支撐): WordPress. 創(chuàng)立Wordpress今后,Matt和他的團隊啟動了WordPress.com平臺,一個基于WordPress MU的免費blog站點。目前,Wordpress.com曾經(jīng)擁有大約400萬用戶, 這些用戶天天供應(yīng)超越 140,000篇的日記。 (要檢查更多Wordpress.com的計算狀況,請點擊這里.)

 

  假如有人曉得若何讓網(wǎng)站的規(guī)劃伸縮自若,這小我必然是Matt Mullenweg。2006年的時分 Matt對Wordpress的數(shù)據(jù)構(gòu)造進行了前瞻性的改良,而且分析了為什么Wordpress MU對每個blog運用自力的MYSQL表格, 而不是把一切的blog數(shù)據(jù)都塞進一個宏大的表格。


  我們測試過這個辦法,然則發(fā)現(xiàn)假如要擴展它的伸縮性,價值太高。假如用一個全體的數(shù)據(jù)構(gòu)造,在大流量面前,你將會晤臨效勞器硬件的問題。在MU里面。用戶們都被散布到自力的表格傍邊,而且可以隨便地組織起來。舉個例子,WordPress.com把用戶的數(shù)據(jù)渙散存儲到4096個數(shù)據(jù)庫中,這些數(shù)據(jù)庫可以渙散大規(guī)劃的數(shù)據(jù)拜訪,完成流量和壓力分流。
  數(shù)據(jù)表的可遷徙性讓代碼(blog)可以運轉(zhuǎn)得更快,而且讓系統(tǒng)具有更強的伸縮性。依托強壯的緩存戰(zhàn)略和靈敏的數(shù)據(jù)庫運用戰(zhàn)略, Matt向人們展現(xiàn)了時下最盛行的Facebook和Wordpress.com都可以在PHP下不變運轉(zhuǎn),而且處置驚人的拜訪量。


  3. 萬萬不要置信用戶 – Dave Child

 

  Dave Child是Added Bytes (previously ilovejackdaniels.com) 網(wǎng)站的中心人物,這個網(wǎng)站以他超卓的《cheat sheets for many programming languages》而出名。 Dave為良多英國的公司效勞,而且曾經(jīng)在編程世界里樹立起相當?shù)耐?br />   Dave為PHP開拓者供應(yīng)了良多深謀遠慮的建議,并總結(jié)成了《writing secure code in PHP》:萬萬不要置信你的用戶,他們甚至能夠會損傷你。
  有一條web開拓的根本準則,我反復(fù)幾多遍都感覺不敷,那就是:萬萬不要置信你的用戶,還要假定你網(wǎng)站中的每個數(shù)據(jù)單位都是從用戶那邊搜集來的歹意代碼。良多時分,你必需用javascript在客戶端查驗表單提交過來的內(nèi)容, 假如你習(xí)氣了如斯,那么,這是一個好習(xí)氣。假如平安性對你來說很主要,這就是最主要最需求進修的準則。
  Dave當前正努力于為它的《Writing Secure PHP》系列書本整頓實例,書的最終他說:
  最終,變得偏執(zhí)一點吧。除非你以為你的站點永遠不會遭到進擊,不然就正視一切的問題,當問題真正發(fā)作的時分,你的狀況會變得很糟。你需求把每個用戶都算作會帶來一場攻防站的黑客,想盡一切方法來維護站點的平安,還想好響應(yīng)問題的處理方案。

 

  4. 多運用PHP緩存 – Ben Balbo


  Ben Balbo開拓了Site Point,一個為developers和designers供應(yīng)指點的網(wǎng)站。他是墨爾本PHP開拓和開源俱樂部的成員, 因而他對PHP有必然的調(diào)查,還對PHP caching有必然的主意和經(jīng)歷。

 

  假如你擁有一個拜訪量很大,但更新并不頻頻的站點(比方blog,基于某種CMS),或許它需求進行一些革新,這些革新不會破費太多的工夫,然則對功能有凸起的奉獻。 假如要為一個復(fù)雜/更新頻率很快的站點樹立緩存機制,進程能夠會很迂回,然則益處也是不言而喻的。
  PHP緩存技能有良多種,Ben為我們引薦了如下一些:
  ◆緩存函數(shù)的運轉(zhuǎn)后果
  ◆設(shè)置過時工夫


  ◆緩存IE下載的文件
  ◆模板緩存技能
  ◆Cache_Lite


  因為PHP作為動態(tài)言語的特征,緩存機制關(guān)于更新頻率并不快的站點來說十分主要。

 

  5. 運用IDE, Templates和Snippets加快PHP開拓 – Chad Kieffer
  當Chad Kieffer從UI設(shè)計和數(shù)據(jù)庫優(yōu)化的任務(wù)中抽身出來的時分,他會在他的博客2 tablespoons上分享良多技能經(jīng)歷。因為Chad多方面的具體開展,他常??梢园l(fā)現(xiàn)其他順序員不克不及發(fā)現(xiàn)的問題,并構(gòu)成相關(guān)經(jīng)歷,尤其是他開拓網(wǎng)站的辦法。他參加了網(wǎng)站開拓的各個環(huán)節(jié),因而他的建議關(guān)于進步網(wǎng)站開拓的大局觀十分有效。
  Chad以為運用Eclipse PDT(Eclipse’s PHP development package) 如許的IDE,還運用一些模板技能和開源項目可以有用地進步PHP的開拓速度。
  緊湊的方案,長長的to do lists以及deadlines閃開發(fā)人員十分苦悶。但是有些功用,比方Eclipse Templates,可以有用削減編碼的工夫和犯錯的幾率。
  凡間來說,任何項目都可以主動化,主動化水平越高, 你完成項目標工夫就越短?;üし騺黹_拓運用頻率很高的框架和模板,將會節(jié)流你今后更多工夫。還,運用像Eclipse and the PDT package如許的IDE,你會發(fā)現(xiàn)效率獲得分明進步,IDE可以主動閉合,補全分號而且可以在當?shù)豥ebug。


6. 應(yīng)用好PHP的過濾函數(shù) – Joey Sochacki
  或許Joey Sochacki并不像Matt Mullenweg那樣有名 ,但他也是一個經(jīng)歷豐厚的開拓者,而且經(jīng)過他的博客Devolio分享了良多技能經(jīng)歷


  Joey發(fā)目前編寫php代碼的進程中有良多當?shù)匦枨筮M行過濾,但卻并沒有太多的coder存眷php的內(nèi)置過濾函數(shù)。

 

  過濾數(shù)據(jù)是我們常常需求做的工作,然則良多功用豐厚的PHP內(nèi)置過濾函數(shù)卻不為人知。運用相似filter_* 的PHP內(nèi)置函數(shù),我們簡直可以處置一切的過濾義務(wù),包羅數(shù)據(jù)類型驗證/URL/email和IP地址驗證/非凡字符處置等等。


  過濾是一件復(fù)雜的工作,然則我置信joey的發(fā)現(xiàn)會給你良多啟示,讓你看法到PHP強壯的過濾功用。
  7. 運用PHP框架 – Josh Sharp
  關(guān)于能否應(yīng)該運用Zend, CakePHP, Code Igniter, 或許 其他PHP框架,不斷存在著良多爭議,然則在web開拓者的心中,他們有本人權(quán)衡的規(guī)范。
  Josh Sharp本人創(chuàng)立了一家供應(yīng)面包和黃油效勞的網(wǎng)站,因而他關(guān)于運用PHP框架來開拓網(wǎng)站有必然的經(jīng)歷。他以為運用一個PHP框架來進行項目開拓(use a PHP framework ),可以有用地節(jié)流工夫,而且削減犯錯的幾率。為什么?由于他感覺PHP真實是太好上手了。
  PHP的易于運用有時分也出缺陷,由于并不嚴厲的語法,常常會招致良多錯誤代碼的降生。但假如運用一個PHP框架,犯錯的幾率就會大大削減。
  PHP框架可以讓你的代碼構(gòu)造愈加標準,而且節(jié)流很多工夫。


  8. 不要運用PHP框架 – Rasmus Lerdorf
  與Josh的觀念恰好相反,PHP的開山祖師Rasmus Lerdorf卻以為最好不要運用PHP框架,為什么?由于不基于框架的PHP功能更好。Rasmus在Drupalcon 2008的演講上,用“Hello World”的例子來比照了一些框架PHP和簡略PHP之間的功能,后果顯示框架PHP的功能要遠遠掉隊。


  9. 運用批處置 – Jack D. Herrington
  Jack Herrington對PHP世界并不生疏, 而且為赫赫有名的IBM developerWorks奉獻過超越30篇的專搞, 還出書過《PHP Hacks》的書,因而他是一個真正的專家。
  Herrington引薦運用批處置和Cron來替代那些可以運轉(zhuǎn)在后臺的順序腳步,Web用戶并不肯意在線等候你的處置進程,所以有些工作更合適放到后臺來處置。
  固然,在某些狀況下,這有點牛鼎烹雞了,然則你可以清晰地看到,運用Cron, MySQL, PHP面向?qū)ο蟮霓k法以及Pear::DB這些便捷的東西來創(chuàng)立一個批處置東西并不是一件復(fù)雜的工作。


  Jack以為運用cron, PHP和MySQL在后臺處置一些義務(wù),比起多歷程的營業(yè)邏輯要劃算得多。

 

  兩種辦法我都測驗過,我以為Cron十分契合”Keep It Simple, Stupid” (KISS) 的準則,它讓后臺處置變得簡略。與多歷程的營業(yè)邏輯比擬,它沒有內(nèi)存溢出的風(fēng)險。你可以創(chuàng)立一個簡略的批處置劇本,而且在cron中運轉(zhuǎn),這個劇本會準時反省能否有義務(wù)需求處置,處置完之后就會主動退出,因而你不必擔憂能否有歷程卡殼,或許墮入死輪回。

 

  10. 實時啟用錯誤申報 – David Cummings

 

  David Cummings有一個專門供應(yīng)CMS軟件效勞的公司 ,而且取得過幾回獎 ,他有十分豐厚的PHP開拓經(jīng)歷。David曾經(jīng)寫過《two PHP tips he wished he’d learned in the beginning》,個中一點就是:實時啟用錯誤申報,這會節(jié)流很多的工夫。

 

  我通知人們,最主要的工作就是最大水平地開啟PHP的錯誤申報,為什么?由于PHP能夠會埋沒良多小問題:

 

  ◆變量沒有預(yù)界說
  ◆在代碼片段中援用了不成用的變量
  ◆運用了不決義的常量這些要素看起來并不是什么大事,除非你在運用面向?qū)ο蟮霓k法編寫一些類庫。凡間,封閉錯誤申報將能夠使你支付更大的本錢來維護你的代碼。

 

  錯誤申報可以幫你隨便地找到代碼的問題地點,假如錯誤申報的品級夠高,纖細的錯誤都能被立刻發(fā)現(xiàn),協(xié)助你節(jié)流全體debug的工夫。

發(fā)布:2007-03-31 14:49    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
南昌OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

泛普南昌網(wǎng)站建設(shè)公司其他應(yīng)用

南昌OA軟件 南昌OA新聞動態(tài) 南昌OA信息化 南昌OA快博 南昌OA行業(yè)資訊 南昌軟件開發(fā)公司 南昌門禁系統(tǒng) 南昌物業(yè)管理軟件 南昌倉庫管理軟件 南昌餐飲管理軟件 南昌網(wǎng)站建設(shè)公司