亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

頂級PHP大師的開發(fā)原則

添加時(shí)間:2014-7-10 17:57:31  添加: 思海網(wǎng)絡(luò) 

  1. 在合適的時(shí)候使用PHP – Rasmus Lerdorf

  沒有誰比PHP的創(chuàng)建者Rasmus Lerdorf明白PHP用在什么地方是更合理的,他于1995年發(fā)布了PHP這門語言,從那時(shí)起,PHP就像燎原之火,燒遍了整個(gè)開發(fā)陣營,改變了互聯(lián) 網(wǎng)的世界。可是,Rasmus并不是因此而創(chuàng)建PHP的。PHP是為了解決web開發(fā)者的實(shí)際問題而誕生的。

  和許多開源項(xiàng)目一樣,PHP變得流行,流行的動機(jī)并不能用正常的哲學(xué)來進(jìn)行解釋,甚至流行得有些孤芳自賞。它完全可以作為一個(gè)案例,一個(gè)解決各種Web問題的工具需求所引起的案例,因此當(dāng)PHP剛出現(xiàn)的時(shí)候,這種工具需求全部聚焦到PHP的身上。

  但是,你不能奢望PHP可以解決所有問題。Lerdorf是第一個(gè)承認(rèn)PHP只是一種工具的人,并且PHP也有很多力所不能及的情況。

  根據(jù)工作的不同來選擇合適的工具。我跑了很多家公司,為了說服他們部署和使用PHP,但是這并不意味著PHP對所有問題都適用。它只是可以一個(gè)解決大部分問題的front-end腳步語言。

  作為一個(gè)web開發(fā)者,嘗試用PHP解決所有問題是不科學(xué)的,同時(shí)也會浪費(fèi)你的時(shí)間。當(dāng)PHP玩不轉(zhuǎn)的時(shí)候,不要猶豫,試用一下其他的語言吧。

  2. 使用多表存儲提高規(guī)模伸縮性 – Matt Mullenweg

  沒有人愿意質(zhì)疑Matt Mullenweg在PHP方面的權(quán)威性,他開發(fā)了這個(gè)星球上最流行的blog系統(tǒng),(依靠一個(gè)強(qiáng)大的社區(qū)力量支持): WordPress. 創(chuàng)建Wordpress以后,Matt和他的團(tuán)隊(duì)啟動了WordPress.com平臺,一個(gè)基于WordPress MU的免費(fèi)blog站點(diǎn)。現(xiàn)在,Wordpress.com已經(jīng)擁有大約400萬用戶, 這些用戶每天提供超過 140,000篇的日志。 (要查看更多Wordpress.com的統(tǒng)計(jì)情況,請點(diǎn)擊這里.)

  如果有人知道如何讓網(wǎng)站的規(guī)模伸縮自如,這個(gè)人一定是Matt Mullenweg。2006年的時(shí)候 Matt對Wordpress的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了前瞻性的改進(jìn),并且解釋了為什么Wordpress MU對每個(gè)blog使用獨(dú)立的MYSQL表格, 而不是把所有的blog數(shù)據(jù)都塞進(jìn)一個(gè)巨大的表格。

  我們測試過這個(gè)方法,但是發(fā)現(xiàn)如果要擴(kuò)展它的伸縮性,代價(jià)太高。如果用一個(gè)整體的數(shù)據(jù)結(jié)構(gòu),在大流量面前,你將會面臨服務(wù)器 硬件的問題。在MU里面。用戶們都被分布到獨(dú)立的表格當(dāng)中,并且可以輕易地組織起來。舉個(gè)例子,WordPress.com把用戶的數(shù)據(jù)分散存儲到 4096個(gè)數(shù)據(jù)庫中,這些數(shù)據(jù)庫可以分散大規(guī)模的數(shù)據(jù)訪問,實(shí)現(xiàn)流量和壓力分流。

  數(shù)據(jù)表的可遷移性讓代碼(blog)可以運(yùn)行得更快,并且讓系統(tǒng)具備更強(qiáng)的伸縮性。依靠強(qiáng)大的緩存策略和靈活的數(shù)據(jù)庫運(yùn)用策略, Matt向人們展示了時(shí)下最流行的Facebook和Wordpress.com都可以在PHP下穩(wěn)定運(yùn)行,并且處理驚人的訪問量。

  3. 千萬不要相信用戶 – Dave Child

  Dave Child是Added Bytes (previously ilovejackdaniels.com) 網(wǎng)站的核心人物,這個(gè)網(wǎng)站以他出色的《cheat sheets for many programming languages》而聞名。 Dave為很多英國的公司服務(wù),并且已經(jīng)在編程世界里樹立起相當(dāng)?shù)臋?quán)威。

  Dave為PHP開發(fā)者提供了很多深謀遠(yuǎn)慮的建議,并總結(jié)成了《writing secure code in PHP》:千萬不要相信你的用戶,他們甚至可能會傷害你。

  有一條web開發(fā)的基本原則,我重復(fù)多少遍都覺得不夠,那就是:千萬不要相信你的用戶,同時(shí)要假設(shè)你網(wǎng)站中的每個(gè)數(shù)據(jù)單元都是從用戶那里收集來 的惡意代碼。很多時(shí)候,你必須用java在客戶端檢驗(yàn)表單提交過來的內(nèi)容, 如果你習(xí)慣了如此,那么,這是一個(gè)好習(xí)慣。如果安全性對你來說很重要,這就是最重要最需要學(xué)習(xí)的原則。

  Dave目前正致力于為它的《Writing Secure PHP》系列書籍整理實(shí)例,書的最后他說:

  最后,變得偏執(zhí)一點(diǎn)吧。除非你認(rèn)為你的站點(diǎn)永遠(yuǎn)不會受到攻擊,否則就正視所有的問題,當(dāng)問題真正發(fā)生的時(shí)候,你的情況會變得很糟。你需要把每個(gè)用戶都看成會帶來一場攻防站的黑客,想盡一切辦法來保護(hù)站點(diǎn)的安全,同時(shí)想好相應(yīng)問題的解決方案。

  4. 多使用PHP緩存 – Ben Balbo

  Ben Balbo開發(fā)了Site Point,一個(gè)為developers和designers提供指導(dǎo)的網(wǎng)站。他是墨爾本PHP開發(fā)和開源俱樂部的成員, 因此他對PHP有一定的了解,同時(shí)對PHP caching有一定的想法和經(jīng)驗(yàn)。

  如果你擁有一個(gè)訪問量很大,但更新并不頻繁的站點(diǎn)(比如blog,基于某種CMS),或許它需要進(jìn)行一些改造,這些改造不會花費(fèi)太多的時(shí)間,但是對性能有突出的貢獻(xiàn)。 如果要為一個(gè)復(fù)雜/更新頻率很快的站點(diǎn)建立緩存機(jī)制,過程可能會很曲折,但是好處也是顯而易見的。

  PHP緩存技術(shù)有很多種,Ben為我們推薦了如下一些:

  ◆緩存函數(shù)的運(yùn)行結(jié)果

  ◆設(shè)置過期時(shí)間

  ◆緩存IE下載的文件

  ◆模板緩存技術(shù)

  ◆Cache_Lite

  由于PHP作為動態(tài)語言的特性,緩存機(jī)制對于更新頻率并不快的站點(diǎn)來說非常重要。

  5. 使用IDE, Templates和Snippets加速PHP開發(fā) – Chad Kieffer

  當(dāng)Chad Kieffer從UI設(shè)計(jì)和數(shù)據(jù)庫優(yōu)化的工作中抽身出來的時(shí)候,他會在他的博客2 tablespoons上分享很多技術(shù)經(jīng)驗(yàn)。由于Chad多方面的全面發(fā)展,他經(jīng)常可以發(fā)現(xiàn)其他程序員不能發(fā)現(xiàn)的問題,并形成相關(guān)經(jīng)驗(yàn),尤其是他開發(fā)網(wǎng)站 的方法。他參與了網(wǎng)站開發(fā)的各個(gè)環(huán)節(jié),因此他的建議對于提高網(wǎng)站開發(fā)的大局觀非常有用。

  Chad認(rèn)為使用Eclipse PDT(Eclipse’s PHP development package) 這樣的IDE,同時(shí)使用一些模板技術(shù)和開源項(xiàng)目可以有效地提高PHP的開發(fā)速度。

  緊湊的計(jì)劃,長長的to do lists以及deadlines讓開發(fā)人員非常苦悶。不過有些功能,比如Eclipse Templates,可以有效減少編碼的時(shí)間和出錯(cuò)的幾率。

  通常來說,任何項(xiàng)目都可以自動化,自動化程度越高, 你完成項(xiàng)目的時(shí)間就越短。花時(shí)間來開發(fā)使用頻率很高的框架和模板,將會節(jié)省你以后更多時(shí)間。同時(shí),使用像Eclipse and the PDT package這樣的IDE,你會發(fā)現(xiàn)效率得到明顯提高,IDE可以自動閉合,補(bǔ)全分號并且可以在本地debug。

  6. 利用好PHP的過濾函數(shù) – Joey Sochacki

  或許Joey Sochacki并不像Matt Mullenweg那樣有名 ,但他也是一個(gè)經(jīng)驗(yàn)豐富的開發(fā)者,并且通過他的博客Devolio分享了很多技術(shù)經(jīng)驗(yàn)

  Joey發(fā)現(xiàn)在編寫php代碼的過程中有很多地方需要進(jìn)行過濾,但卻并沒有太多的coder關(guān)注php的內(nèi)置過濾函數(shù)。

  過濾數(shù)據(jù)是我們經(jīng)常需要做的事情,但是很多功能豐富的PHP內(nèi)置過濾函數(shù)卻不為人知。使用類似filter_* 的PHP內(nèi)置函數(shù),我們幾乎可以處理所有的過濾任務(wù),包括數(shù)據(jù)類型驗(yàn)證/URL/email和IP地址驗(yàn)證/特殊字符處理等等。

  過濾是一件復(fù)雜的事情,但是我相信joey的發(fā)現(xiàn)會給你很多啟發(fā),讓你認(rèn)識到PHP強(qiáng)大的過濾功能。

  7. 使用PHP框架 – Josh Sharp

  對于是否應(yīng)該使用Zend, CakePHP, Code Igniter, 或者 其他PHP框架,一直存在著很多爭議,但是在web開發(fā)者的心中,他們有自己衡量的標(biāo)準(zhǔn)。

  Josh Sharp自己創(chuàng)建了一家提供面包和黃油服務(wù)的網(wǎng)站,因此他對于使用PHP框架來開發(fā)網(wǎng)站有一定的經(jīng)驗(yàn)。他認(rèn)為使用一個(gè)PHP框架來進(jìn)行項(xiàng)目開發(fā)(use a PHP framework ),可以有效地節(jié)省時(shí)間,并且減少出錯(cuò)的幾率。為什么?因?yàn)樗X得PHP實(shí)在是太好上手了。

  PHP的易于使用有時(shí)候也有缺陷,因?yàn)椴⒉粐?yán)格的語法,經(jīng)常會導(dǎo)致很多錯(cuò)誤代碼的誕生。但如果使用一個(gè)PHP框架,出錯(cuò)的幾率就會大大減少。

  PHP框架可以讓你的代碼結(jié)構(gòu)更加規(guī)范,并且節(jié)省大量時(shí)間。

  8. 不要使用PHP框架 – Rasmus Lerdorf

  與Josh的觀點(diǎn)恰恰相反,PHP的鼻祖Rasmus Lerdorf卻認(rèn)為最好不要使用PHP框架,為什么?因?yàn)椴换诳蚣艿腜HP性能更好。Rasmus在Drupalcon 2008的演講上,用“Hello World”的例子來對比了一些框架PHP和簡單PHP之間的性能,結(jié)果顯示框架PHP的性能要遠(yuǎn)遠(yuǎn)落后。

  9. 使用批處理 – Jack D. Herrington

  Jack Herrington對PHP世界并不陌生, 并且為大名鼎鼎的IBM developerWorks貢獻(xiàn)過超過30篇的專搞, 同時(shí)出版過《PHP Hacks》的書,因此他是一個(gè)真正的專家。

  Herrington推薦使用批處理和Cron來代替那些可以運(yùn)行在后臺的程序腳步,Web用戶并不愿意在線等待你的處理過程,所以有些事情更適合放到后臺來處理。

  誠然,在某些情況下,這有點(diǎn)大材小用了,但是你可以清楚地看到,使用Cron, MySQL, PHP面向?qū)ο蟮姆椒ㄒ约癙ear::DB這些便捷的工具來創(chuàng)建一個(gè)批處理工具并不是一件復(fù)雜的事情。

  Jack認(rèn)為使用cron, PHP和MySQL在后臺處理一些任務(wù),比起多進(jìn)程的業(yè)務(wù)邏輯要?jiǎng)澦愕枚唷?/p>

  兩種方法我都嘗試過,我認(rèn)為Cron非常符合”Keep It Simple, Stupid” (KISS) 的原則,它讓后臺處理變得簡單。與多進(jìn)程的業(yè)務(wù)邏輯相比,它沒有內(nèi)存 溢出的風(fēng)險(xiǎn)。你可以創(chuàng)建一個(gè)簡單的批處理腳本,并且在cron中運(yùn)行,這個(gè)腳本會定時(shí)檢查是否有任務(wù)需要處理,處理完之后就會自動退出,因此你不用擔(dān)心是 否有進(jìn)程卡殼,或者陷入死循環(huán)。

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

  David Cummings有一個(gè)專門提供CMS軟件服務(wù)的公司 ,并且獲得過幾次獎(jiǎng) ,他有非常豐富的PHP開發(fā)經(jīng)驗(yàn)。David曾經(jīng)寫過《two PHP tips he wished he’d learned in the beginning》,其中一點(diǎn)就是:及時(shí)啟用錯(cuò)誤報(bào)告,這會節(jié)省大量的時(shí)間。

  我告訴人們,最重要的事情就是最大程度地開啟PHP的錯(cuò)誤報(bào)告,為什么?因?yàn)镻HP可能會隱藏很多小問題:

  ◆變量沒有預(yù)定義

  ◆在代碼片段中引用了不可用的變量

  ◆使用了未定義的常量這些因素看起來并不是什么大事,除非你在使用面向?qū)ο蟮姆椒ň帉懸恍╊悗臁Mǔ#P(guān)閉錯(cuò)誤報(bào)告將可能使你付出更大的成本來維護(hù)你的代碼。

  錯(cuò)誤報(bào)告可以幫你輕易地找到代碼的問題所在,如果錯(cuò)誤報(bào)告的等級夠高,細(xì)微的錯(cuò)誤都能被立即發(fā)現(xiàn),幫助你節(jié)省整體debug的時(shí)間。

關(guān)鍵字:PHP、網(wǎng)站、服務(wù)、程序

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項(xiàng)備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站