LAMP將長(zhǎng)命百歲? 細(xì)看Web技術(shù)的養(yǎng)生之道
過(guò)去數(shù)年,代表Linux-Apache-MySQL-PHP的LAMP一直是最流行的Web開(kāi)發(fā)平臺(tái),但新的平臺(tái),如Ruby on Rails,ASP.NET和J2EE在Web開(kāi)發(fā)領(lǐng)域已經(jīng)成為閃耀的明星,我們不禁想問(wèn),時(shí)至今日,LAMP仍然是Web開(kāi)發(fā)最流行的選擇嗎?我目前認(rèn)為它仍然是最流行的選擇,LAMP之所以很受歡迎,是因?yàn)榕c其它平臺(tái)相比,它具有很多優(yōu)勢(shì)。
成本低廉,擴(kuò)展能力好
誠(chéng)然,在比較開(kāi)源的LAMP平臺(tái)和商業(yè)化運(yùn)作的,如J2EE或ASP.NET平臺(tái)時(shí),成本肯定是首先要考慮的因素,開(kāi)源產(chǎn)品可免費(fèi)下載使用,其本身的成本很廉價(jià),此外,LAMP對(duì)硬件的要求也較低,而J2EE和ASP.NET對(duì)硬件的要求要高一些,在Web托管領(lǐng)域,LAMP類型的托管服務(wù)通常比J2EE和ASP.NET類型的要廉價(jià)一些。
有很多分析師認(rèn)為L(zhǎng)AMP雖然可以快速構(gòu)建Web應(yīng)用程序,但LAMP的擴(kuò)展性并不好,要想取得良好的擴(kuò)展能力付出的代價(jià)可能比當(dāng)初構(gòu)建Web應(yīng)用程序還要多,但根據(jù)我的經(jīng)驗(yàn),LAMP的擴(kuò)展性不佳不是因?yàn)槠脚_(tái)本身的原因,而是開(kāi)發(fā)的原因,很多不具備擴(kuò)展能力的代碼都是開(kāi)發(fā)人員的“杰作”,為此我還專門(mén)研究了大量的Java和ASP代碼,發(fā)現(xiàn)一樣存在這個(gè)問(wèn)題,最后發(fā)現(xiàn)經(jīng)驗(yàn)不足的開(kāi)發(fā)人員往往容易寫(xiě)出不具有良好擴(kuò)展能力的代碼,事實(shí)上,很多人根本不是自己寫(xiě)的代碼,而是從其它地方直接復(fù)制過(guò)來(lái)的。
部署量大,安全性高
LAMP因其部署量非常大,安全問(wèn)題也更少,因?yàn)槟馨l(fā)現(xiàn)的問(wèn)題幾乎都被翻了過(guò)遍,它也是全世界范圍內(nèi)測(cè)試最徹底的軟件組合。
當(dāng)然,我并不是說(shuō)LAMP組合就沒(méi)有安全問(wèn)題了,但大多數(shù)時(shí)候LAMP中暴露的安全問(wèn)題都是因缺少經(jīng)驗(yàn)的開(kāi)發(fā)人員未遵循最佳實(shí)踐編寫(xiě)的代碼包含漏洞,或經(jīng)驗(yàn)不足的系統(tǒng)管理員未正確配置LAMP造成的。
靈活,穩(wěn)定
LAMP也提供了非常好的靈活性,開(kāi)發(fā)人員可以選擇自己喜歡的框架,甚至構(gòu)建自己的框架,其它平臺(tái)通常包括它們自己的框架,可選擇的余地很小,例如,.NET框架是ASP.NET開(kāi)發(fā)的唯一選擇,J2EE是基于Java的框架,Rails則基于Ruby框架,使用PHP時(shí),開(kāi)發(fā)人員可以選擇CakePHP,CodeIgniter,Zend Framework等框架。
使用LAMP還有另一個(gè)好處,開(kāi)發(fā)人員可以獲得全部的源代碼,因此可以自行修改LAMP中的軟件,以滿足特殊需要,例如,Apache Web服務(wù)器支持可裝載模塊,開(kāi)發(fā)人員可以開(kāi)發(fā)自己的模塊來(lái)處理特殊的任務(wù),如通過(guò)可裝載模塊在Apache內(nèi)實(shí)現(xiàn)身份認(rèn)證,LAMP給開(kāi)發(fā)人員提供了很好的選擇靈活度。
LAMP一向以穩(wěn)定而著稱,新版本的向后兼容性通常也比較好,即便是升級(jí)到了新版本,開(kāi)發(fā)人員也很少需要重寫(xiě)代碼,LAMP的模塊化特性使得它可高度配置,在穩(wěn)定性方面,與商業(yè)化的ASP.NET或J2EE解決方案相比,LAMP也是毫不遜色的。
開(kāi)發(fā)門(mén)檻低,系統(tǒng)成型快
因LAMP均可免費(fèi)獲得,使其變得非常流行,降低了開(kāi)發(fā)人員進(jìn)入LAMP的門(mén)檻,但ASP.NET和J2EE都有認(rèn)證計(jì)劃,開(kāi)發(fā)人員可以遵循最佳實(shí)踐開(kāi)發(fā),而要界定一名LAMP開(kāi)發(fā)人員是否遵循最佳實(shí)踐則很難。
前面我也提到ASP.NET和J2EE可選擇的框架很少,雖然我一度認(rèn)為這是一個(gè)缺點(diǎn),但對(duì)于大型開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō)卻是一個(gè)優(yōu)點(diǎn),可選擇的余地很少可以讓整個(gè)團(tuán)隊(duì)成員保持一致的知識(shí)體系,在培訓(xùn)和溝通方面都會(huì)節(jié)省很多時(shí)間,而LAMP陣營(yíng)因可選的機(jī)會(huì)太多,團(tuán)隊(duì)成員個(gè)體容易養(yǎng)成獨(dú)立的開(kāi)發(fā)習(xí)慣和見(jiàn)解,會(huì)給團(tuán)隊(duì)協(xié)作帶來(lái)很大麻煩,因此我認(rèn)為L(zhǎng)AMP更適合一個(gè)人的開(kāi)發(fā)團(tuán)隊(duì)或小型團(tuán)隊(duì)使用。
使用LAMP可以快速搭建起系統(tǒng)的原型,成本也很低廉,這是LAMP的一大強(qiáng)項(xiàng),對(duì)于初創(chuàng)公司而言,可以利用LAMP快速搭建一個(gè)系統(tǒng)原型,進(jìn)而吸引投資人,盡快獲得投資。
小結(jié)
無(wú)論如何,LAMP仍然是非常流行的Web開(kāi)發(fā)平臺(tái),其低廉的成本和進(jìn)入壁壘使得很多開(kāi)發(fā)商都選擇了它,LAMP安全、穩(wěn)定和良好的擴(kuò)展性也吸引了不少企業(yè)用戶,對(duì)于初創(chuàng)公司,LAMP可以幫助其快速搭建系統(tǒng)原型,進(jìn)而拿到投資,LAMP的靈活性也成為很多人選擇它的理由。因此,我們可以肯定地得出結(jié)論:LAMP仍然是Web開(kāi)發(fā)最流行的選擇,在未來(lái)相當(dāng)長(zhǎng)一段時(shí)間里,它會(huì)和其它競(jìng)爭(zhēng)技術(shù)共存。
【編輯推薦】