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

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

申請免費(fèi)試用、咨詢電話:400-8352-114

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

 

 

1. 在適宜的時(shí)分運(yùn)用PHP – Rasmus Lerdorf

 

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


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


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


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

 

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

 

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


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


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

 

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

 

  4. 多運(yùn)用PHP緩存 – Ben Balbo


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

 

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


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


  因?yàn)镻HP作為動(dòng)態(tài)言語的特征,緩存機(jī)制關(guān)于更新頻率并不快的站點(diǎn)來說十分主要。

 

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


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


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

 

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


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


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


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


  Jack以為運(yùn)用cron, PHP和MySQL在后臺處置一些義務(wù),比起多歷程的營業(yè)邏輯要?jiǎng)澦愕枚唷?/p>

 

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

 

  10. 實(shí)時(shí)啟用錯(cuò)誤申報(bào) – David Cummings

 

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

 

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

 

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

 

  錯(cuò)誤申報(bào)可以幫你隨便地找到代碼的問題地點(diǎn),假如錯(cuò)誤申報(bào)的品級夠高,纖細(xì)的錯(cuò)誤都能被立刻發(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

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

QQ在線咨詢

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

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