當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 南昌OA系統(tǒng) > 南昌網(wǎng)站建設(shè)公司
十位頂級(jí)PHP開發(fā)工程師的開發(fā)原則
申請(qǐng)免費(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對(duì)一切問題都合用。它只是可以一個(gè)處理大局部問題的front-end腳步言語。
作為一個(gè)web開拓者,測驗(yàn)用PHP處理一切問題是不科學(xué)的,還也會(huì)糜費(fèi)你的工夫。當(dāng)PHP玩不轉(zhuǎn)的時(shí)分,不要猶疑,試用一下其他的言語吧。
2. 運(yùn)用多表存儲(chǔ)進(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平臺(tái),一個(gè)基于WordPress MU的免費(fèi)blog站點(diǎn)。目前,Wordpress.com曾經(jīng)擁有大約400萬用戶, 這些用戶天天供應(yīng)超越 140,000篇的日記。 (要檢查更多Wordpress.com的計(jì)算狀況,請(qǐng)點(diǎn)擊這里.)
假如有人曉得若何讓網(wǎng)站的規(guī)劃伸縮自若,這小我必然是Matt Mullenweg。2006年的時(shí)分 Matt對(duì)Wordpress的數(shù)據(jù)構(gòu)造進(jìn)行了前瞻性的改良,而且分析了為什么Wordpress MU對(duì)每個(gè)blog運(yùn)用自力的MYSQL表格, 而不是把一切的blog數(shù)據(jù)都塞進(jìn)一個(gè)宏大的表格。
我們測試過這個(gè)辦法,然則發(fā)現(xiàn)假如要擴(kuò)展它的伸縮性,價(jià)值太高。假如用一個(gè)全體的數(shù)據(jù)構(gòu)造,在大流量面前,你將會(huì)晤臨效勞器硬件的問題。在MU里面。用戶們都被散布到自力的表格傍邊,而且可以隨便地組織起來。舉個(gè)例子,WordPress.com把用戶的數(shù)據(jù)渙散存儲(chǔ)到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》:萬萬不要置信你的用戶,他們甚至能夠會(huì)損傷你。
有一條web開拓的根本準(zhǔn)則,我反復(fù)幾多遍都感覺不敷,那就是:萬萬不要置信你的用戶,還要假定你網(wǎng)站中的每個(gè)數(shù)據(jù)單位都是從用戶那邊搜集來的歹意代碼。良多時(shí)分,你必需用javascript在客戶端查驗(yàn)表單提交過來的內(nèi)容, 假如你習(xí)氣了如斯,那么,這是一個(gè)好習(xí)氣。假如平安性對(duì)你來說很主要,這就是最主要最需求進(jìn)修的準(zhǔn)則。
Dave當(dāng)前正努力于為它的《Writing Secure PHP》系列書本整頓實(shí)例,書的最終他說:
最終,變得偏執(zhí)一點(diǎn)吧。除非你以為你的站點(diǎn)永遠(yuǎn)不會(huì)遭到進(jìn)擊,不然就正視一切的問題,當(dāng)問題真正發(fā)作的時(shí)分,你的狀況會(huì)變得很糟。你需求把每個(gè)用戶都算作會(huì)帶來一場攻防站的黑客,想盡一切方法來維護(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開拓和開源俱樂部的成員, 因而他對(duì)PHP有必然的調(diào)查,還對(duì)PHP caching有必然的主意和經(jīng)歷。
假如你擁有一個(gè)拜訪量很大,但更新并不頻頻的站點(diǎn)(比方blog,基于某種CMS),或許它需求進(jìn)行一些革新,這些革新不會(huì)破費(fèi)太多的工夫,然則對(duì)功能有凸起的奉獻(xiàn)。 假如要為一個(gè)復(fù)雜/更新頻率很快的站點(diǎn)樹立緩存機(jī)制,進(jìn)程能夠會(huì)很迂回,然則益處也是不言而喻的。
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í)分,他會(huì)在他的博客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)用頻率很高的框架和模板,將會(huì)節(jié)流你今后更多工夫。還,運(yùn)用像Eclipse and the PDT package如許的IDE,你會(huì)發(fā)現(xiàn)效率獲得分明進(jìn)步,IDE可以主動(dòng)閉合,補(bǔ)全分號(hào)而且可以在當(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)會(huì)給你良多啟示,讓你看法到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)厲的語法,常常會(huì)招致良多錯(cuò)誤代碼的降生。但假如運(yùn)用一個(gè)PHP框架,犯錯(cuò)的幾率就會(huì)大大削減。
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對(duì)PHP世界并不生疏, 而且為赫赫有名的IBM developerWorks奉獻(xiàn)過超越30篇的專搞, 還出書過《PHP Hacks》的書,因而他是一個(gè)真正的專家。
Herrington引薦運(yùn)用批處置和Cron來替代那些可以運(yùn)轉(zhuǎn)在后臺(tái)的順序腳步,Web用戶并不肯意在線等候你的處置進(jìn)程,所以有些工作更合適放到后臺(tái)來處置。
固然,在某些狀況下,這有點(diǎn)牛鼎烹雞了,然則你可以清晰地看到,運(yùn)用Cron, MySQL, PHP面向?qū)ο蟮霓k法以及Pear::DB這些便捷的東西來創(chuàng)立一個(gè)批處置東西并不是一件復(fù)雜的工作。
Jack以為運(yùn)用cron, PHP和MySQL在后臺(tái)處置一些義務(wù),比起多歷程的營業(yè)邏輯要?jiǎng)澦愕枚唷?/p>
兩種辦法我都測驗(yàn)過,我以為Cron十分契合”Keep It Simple, Stupid” (KISS) 的準(zhǔn)則,它讓后臺(tái)處置變得簡略。與多歷程的營業(yè)邏輯比擬,它沒有內(nèi)存溢出的風(fēng)險(xiǎn)。你可以創(chuàng)立一個(gè)簡略的批處置劇本,而且在cron中運(yùn)轉(zhuǎn),這個(gè)劇本會(huì)準(zhǔn)時(shí)反省能否有義務(wù)需求處置,處置完之后就會(huì)主動(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),這會(huì)節(jié)流很多的工夫。
我通知人們,最主要的工作就是最大水平地開啟PHP的錯(cuò)誤申報(bào),為什么?由于PHP能夠會(huì)埋沒良多小問題:
◆變量沒有預(yù)界說
◆在代碼片段中援用了不成用的變量
◆運(yùn)用了不決義的常量這些要素看起來并不是什么大事,除非你在運(yùn)用面向?qū)ο蟮霓k法編寫一些類庫。凡間,封閉錯(cuò)誤申報(bào)將能夠使你支付更大的本錢來維護(hù)你的代碼。
錯(cuò)誤申報(bào)可以幫你隨便地找到代碼的問題地點(diǎn),假如錯(cuò)誤申報(bào)的品級(jí)夠高,纖細(xì)的錯(cuò)誤都能被立刻發(fā)現(xiàn),協(xié)助你節(jié)流全體debug的工夫。
- 1網(wǎng)站運(yùn)營過程中需要做好哪些SEO規(guī)劃呢?
- 2如何進(jìn)行網(wǎng)站優(yōu)化
- 3確定網(wǎng)站的關(guān)鍵詞的幾個(gè)重要因素
- 4最重要的是選擇一個(gè)適合自己能力和水平的學(xué)校
- 5外鏈操作的幾種錯(cuò)誤方法
- 6網(wǎng)站優(yōu)化之域名篇—如何選擇域名
- 7新手站長換友鏈需要注意的
- 8網(wǎng)站建設(shè)公司歸納“九大”行動(dòng)竅門
- 9義烏進(jìn)銷存軟件分享ERP系統(tǒng)的四大管理目標(biāo)
- 10聚光集熱能力的強(qiáng)弱是衡量熱水器性能優(yōu)劣標(biāo)志
- 11怎么知道網(wǎng)站被降權(quán)?網(wǎng)站個(gè)性詞成SEO睛雨表
- 12探討搜索引擎是如何識(shí)別原創(chuàng)?
- 13中國SEO行業(yè)將細(xì)分成七大塊市場
- 14PHP在共享內(nèi)存中存儲(chǔ)數(shù)據(jù)集
- 15怎樣做百度知道
- 16辦公室裝修后相關(guān)材料的保養(yǎng)
- 17DIV+CSS實(shí)現(xiàn)京東商城分類適合所有版本
- 18國內(nèi)域名注冊相關(guān)問題集錦
- 19如何尋找適合自己的外貿(mào)ERP管理系統(tǒng)
- 20合肥最好的網(wǎng)絡(luò)公司解密網(wǎng)絡(luò)推廣的技巧
- 21很多人習(xí)慣把西瓜切開后冷藏食用
- 22香港服務(wù)器和香港云服務(wù)器的區(qū)別
- 23桌面虛擬化是什么?
- 24義烏華睿管理軟件ERP系統(tǒng)實(shí)施執(zhí)行力下降原因
- 25什么是Seo策略
- 26義烏華睿軟件告訴你-如何判斷ERP的質(zhì)量?
- 27學(xué)會(huì)查看并修正自己的網(wǎng)站
- 28義烏生產(chǎn)管理軟件組件化ERP系統(tǒng)四大架構(gòu)
- 29義烏華睿管理軟件與企業(yè)發(fā)展
- 30流量,我要真實(shí)有效的
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓