黃真
回四樓的說發(fā).PHP只能用做中小形,銀行移動(dòng)大型的就用JSP??真的笑死我了.請(qǐng)問你銀行的訪問量大還是百度新浪,google和騰訊的大?這些個(gè)網(wǎng)站的規(guī)模都是大到不能再大的了.而且用的都是PHP+mysql.還有世界最多注冊(cè)用戶的網(wǎng)站facebook.是美國的.擁有6億用戶啊.人家怎么還是用PHP呢?難道你銀行移動(dòng)的用戶能比他多?最后回樓主的問題.PHP用來開發(fā)小型項(xiàng)目有點(diǎn)大材小用的感覺.用ASP吧.如果開發(fā)中大型項(xiàng)目.PHP絕對(duì)是首選.因?yàn)樯厦鎺讉€(gè)公司都是富可敵國的網(wǎng)站了.用的都是PHP.但是PHP也有短板.就是在支持https協(xié)議的時(shí)候做得沒有JSP好.所以有很多銀行系統(tǒng)都是用JSP來寫的.但.銀行系統(tǒng)的規(guī)模遠(yuǎn)比上面幾家公司要小.而且.在中國,處于絕對(duì)領(lǐng)先地位的支付寶就是用PHP寫出來的.他和銀行的接口不知多好.
司馬師
PHP應(yīng)用最廣的領(lǐng)域就是web開發(fā),也就是說,PHP是專為網(wǎng)站開發(fā)而設(shè)計(jì)的,所以大型網(wǎng)站是絕對(duì)可以用PHP進(jìn)行開發(fā)的。新浪微博、淘寶等都廣泛采用了PHP技術(shù)。
元達(dá)
當(dāng)然可以。 facebook就是php做的,當(dāng)然它自己實(shí)現(xiàn)了一些提高性能的拓展另外google也有php代碼
那怎么有的說php是開發(fā)中小型項(xiàng)目的語言,是說的以前的版本嗎?
好像一般企業(yè)項(xiàng)目都是用java、c#開發(fā),現(xiàn)在大部分互聯(lián)網(wǎng)中小項(xiàng)目都是php。 一個(gè)項(xiàng)目不同模塊間多種語言按需組合也是有的。一般考慮的因素,可能是開發(fā)效率、運(yùn)行效率、學(xué)習(xí)成本 等等,語言之間本身沒那么大的分歧
霧涌煙圍
php168可以啊,我只是以前用過他們公司的公版程序,功能比較齊全,支持很多模塊,像新聞,文章,商城,音樂,電影,論壇,二手市場(chǎng),圖片,博客等等市面上常見的都支持,是綜合大站系統(tǒng),但如果你想讓他們給你開發(fā)一套完整的網(wǎng)站系統(tǒng),建議你還是別想了,一般來說從頭開發(fā)一套大型網(wǎng)站系統(tǒng),要兩個(gè)月到半年時(shí)間,資費(fèi)一般是幾十萬元;如果你只是想找個(gè)做網(wǎng)頁的公司改模板,市面上多的很,其實(shí)就是用公版程序,按你的要求做一套模板,我自己研究了半年的php,也會(huì)做一些簡(jiǎn)單的模板;這一種價(jià)格一般在兩千元到一萬元左右(黑得很,其實(shí)沒多少技術(shù)含量),其實(shí)這種模板只要懂點(diǎn)做網(wǎng)站程序的,自己看看做模板的方法,不用一個(gè)月就可以自己制作了。
神雕
優(yōu)化分兩種,一種是運(yùn)營類優(yōu)化,就是為了得到良好的搜索引擎排名,而增加網(wǎng)站的流量增加轉(zhuǎn)化率而得到的利潤。這種也稱為SEO。當(dāng)然這里面也涉及到源代碼的優(yōu)化。還有一種優(yōu)化屬于技術(shù)層面的,比如網(wǎng)站的代碼精簡(jiǎn),為了增加網(wǎng)站的運(yùn)行和訪問速度。還有技術(shù)性優(yōu)化是為了網(wǎng)站穩(wěn)定性,承載壓力負(fù)載等等。你明確了這兩點(diǎn)就知道要做的是哪方面的優(yōu)化了。然后按照這個(gè)要求去招聘或者找相關(guān)的技術(shù)支持。
九曲柔絲
可以的啊。首先說html5只是一個(gè)做網(wǎng)頁頁面和特效的編程語言,它的后臺(tái)當(dāng)然需要后臺(tái)的編程語言來支撐了,php作為一個(gè)簡(jiǎn)單易用的后臺(tái)語言當(dāng)然是可以和前臺(tái)完美結(jié)合的。擴(kuò)展:html5是html的第五個(gè)版本,它不但有之前HTML語言的易用性,也具備一些移動(dòng)端的兼容性和一些特效的表現(xiàn),甚至在網(wǎng)頁視頻方面有取代網(wǎng)頁flash的趨勢(shì)。php:php是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域。但是如果是超大型的網(wǎng)站的后臺(tái)是不適合使用php的。
涼牧
我是做JAVAEE的,但還沒有和PHP的共存的項(xiàng)目的經(jīng)驗(yàn),但.NET是有的。.NET負(fù)責(zé)報(bào)表部分,JAVA是業(yè)務(wù)處理,實(shí)際上,兩部分除了訪問同一個(gè)庫外,沒什么交集。我想PHP應(yīng)該不同,應(yīng)該是和JAVA分擔(dān)前后端的。PHP負(fù)責(zé)展示及控制,JAVA負(fù)責(zé)業(yè)務(wù)和固化。PHP因其執(zhí)行容器原因,沒辦法駐留內(nèi)存,高并發(fā)性能上就是個(gè)問題。JAVA可以彌補(bǔ)這點(diǎn)。前端上PHP可以彌補(bǔ)JAVA開發(fā)效率低的短板。純個(gè)人理解。
哪PHP和java怎樣部署,兩個(gè)語言之間怎么交流?
嗯,最簡(jiǎn)單的應(yīng)該是http,不管是同網(wǎng)還是同機(jī),都很容易。比如php在80端口,JAVA在801端口,PHP模擬http請(qǐng)求,把數(shù)據(jù)POST過去,JAVA返回XML/JSON等格式的數(shù)據(jù)。實(shí)現(xiàn)交互。然后socket也可以實(shí)現(xiàn)的,而且更好理解也更安全。PHP應(yīng)該有SOCKET庫吧。
雪山
最近糾結(jié)了一下,如果開發(fā)一個(gè)大型的網(wǎng)站,我到底應(yīng)該使用php還是jsp,后臺(tái)到底使用php還是用java,我的選擇要么是php要么是java,因?yàn)槲蚁矚glinux、unix,當(dāng)然window平臺(tái)也必須支持,以便哦的妹紙可以查看。這就要求用一些跨平臺(tái)相當(dāng)好的軟件+工具+語言,所以選擇只能是這么幾個(gè)。最后我的決定是php+java,一個(gè)前臺(tái)一個(gè)后臺(tái),理由如下: php和java在開源社區(qū)的活躍度嚴(yán)重超過了其他的語言,使用人數(shù)也都是相當(dāng)之多;活躍的開發(fā)工程師們能夠給我?guī)椭?,且這倆都能很好的跨平臺(tái),不用花費(fèi)大量的人力物力去維護(hù) 我也做過一個(gè)物聯(lián)網(wǎng)的網(wǎng)關(guān)網(wǎng)站,比較復(fù)雜,當(dāng)時(shí)采用的是jsp+java,復(fù)雜程度可想而知,單單說開發(fā)過程,網(wǎng)站部分繁瑣,每次想查看結(jié)果運(yùn)行網(wǎng)站的時(shí)候還需要重新打包部署一下,嚴(yán)重影響了哦的開發(fā)效率,每天的時(shí)間都是在等待(因?yàn)榫W(wǎng)站比較復(fù)雜,打包部署需要浪費(fèi)一些時(shí)間)。相對(duì)來說呢,php就沒有了,php靈活,好學(xué),上手快,容易修改,容易發(fā)布,關(guān)鍵是熱部署,這個(gè)真讓哦眼睛大亮。當(dāng)然看待任何事物都需要兩種眼光,php也會(huì)有缺點(diǎn),比如沒有太好的開發(fā)IDE,所以拼寫錯(cuò)誤很正常,且php的sql注入危險(xiǎn)較大點(diǎn),執(zhí)行效率不高,安全性不如java。還有一些理由,來自知乎的米米們給的建議: Java的優(yōu)點(diǎn)則是穩(wěn)定可靠、運(yùn)行效率高(尤其是JIT的出現(xiàn)之后差距更大了)、不容易犯錯(cuò)(強(qiáng)類型、預(yù)編譯、必須攔截異常等等),缺點(diǎn)是開發(fā)和發(fā)布的效率相對(duì)較低。盡管優(yōu)秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢(mèng)之隊(duì)? 從MVC的層次結(jié)構(gòu)上說,在一般網(wǎng)站項(xiàng)目的開發(fā)周期中,需求變更最頻繁、調(diào)整最多的是View,其次是Controller,最后是Model。這非常好理解,沒事干誰天天改數(shù)據(jù)結(jié)構(gòu)?每次版本升級(jí)控制結(jié)構(gòu)都要改的啦,或多或少而已。再次是兩者之間的通信,目前RPC技術(shù)已經(jīng)足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發(fā)人員專注在功能開發(fā)上,而不需要過多的考慮異構(gòu)平臺(tái)的差異和通訊的細(xì)節(jié)。這也就意味著在大公司里同時(shí)應(yīng)用兩種語言的方案并不會(huì)引入過多的復(fù)雜度和工作量。當(dāng)然,文檔量的下限倒是因此被拔高了不少,但事實(shí)上大部分團(tuán)隊(duì)對(duì)此其實(shí)都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎么配合? 靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應(yīng)對(duì)各種需求的變化。頁面的結(jié)構(gòu)調(diào)整、用戶輸入內(nèi)容的基本驗(yàn)證、僅只和用戶交互有關(guān)的簡(jiǎn)單邏輯等都很適合使用PHP來開發(fā),甚至可以通過類似Smarty等模板技術(shù)將其頁面的變動(dòng)遷移到前端團(tuán)隊(duì)。而基本的業(yè)務(wù)邏輯和數(shù)據(jù)的更新采用Java開發(fā),可以有效的提高復(fù)用度、提升性能和吞吐能力、規(guī)避安全問題等。而開發(fā)效率稍有降低換來的是可維護(hù)性的提升,發(fā)布速度慢就更不是問題了,因?yàn)橥ǔ?duì)于基礎(chǔ)業(yè)務(wù)邏輯的調(diào)整往往都是整體修改,并層層測(cè)試確認(rèn)才能發(fā)布的。 所以,大型網(wǎng)站前端采用PHP后端采用Java,既好招人又好維護(hù)、系統(tǒng)穩(wěn)定還性能高、連安全性都大大增加。代碼復(fù)用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時(shí),對(duì)架構(gòu)師知識(shí)譜系在廣度上要求更高一些這事根本就不是個(gè)問題。單一方案其實(shí)一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實(shí)很多時(shí)候是算法和架構(gòu)的問題而不是語言差異的問題。如Velocity或JSTL等也是很優(yōu)秀的隔離方案。但這些方案在高壓力下會(huì)暴露出很多問題而體現(xiàn)雙語言的優(yōu)勢(shì),這些在上面其實(shí)都提到,詳細(xì)說明一些很難得到改變的點(diǎn):1. PHP由于其動(dòng)態(tài)腳本語言的特性,包括類、函數(shù)、常量在內(nèi)都需要在每次請(qǐng)求周期中重復(fù)執(zhí)行后才能建立運(yùn)行環(huán)境;為了保證解析速度而犧牲編譯質(zhì)量;應(yīng)用了FastCGI但僅僅只是復(fù)用進(jìn)程處理請(qǐng)求減少fork成本而不是像其他語言,初始化完畢后通過FastCGI的接口獲得數(shù)據(jù)并以對(duì)應(yīng)接口返回?cái)?shù)據(jù)等幾個(gè)原因,基本上已經(jīng)不可能在性能上追回當(dāng)初更爛現(xiàn)在開著JIT牌跑車的Java了。2. 在PHP里是如此的容易犯錯(cuò)而難以發(fā)現(xiàn),即使你用實(shí)質(zhì)上出自官方的Zend Studio,也無法改變一個(gè)事實(shí):要保證你的程序高質(zhì)量無大錯(cuò),得要有充足的經(jīng)驗(yàn)、足夠的嚴(yán)謹(jǐn)、以及——負(fù)責(zé)任的QA。淘寶的黃裳就曾經(jīng)拿IDE這事開過玩笑。而玩笑背后的那個(gè)原因“缺乏中間件”最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發(fā)展的根源其實(shí)還是在C和Java社區(qū)。性能和易犯錯(cuò)則是語言特性造成的技術(shù)難點(diǎn),也是用來換取靈活、快捷的必要代價(jià),很難去指望有根本的改善。3. Java的世界里也有JSTL、Velocity和Freemaker等,但和PHP靈活而強(qiáng)大的動(dòng)態(tài)能力、豐富的函數(shù)和類庫、輕松的學(xué)習(xí)成本、多到令人發(fā)指的文檔相比,簡(jiǎn)直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關(guān)緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調(diào)整下某個(gè)數(shù)據(jù)校驗(yàn)規(guī)則要改Action也要重啟有木有?實(shí)際工作中性能問題可以通過良好的架構(gòu)解決,容易犯錯(cuò)的問題可以通過框架和規(guī)范以及全面的測(cè)試來解決,中間件選擇少些但其實(shí)該有的都有了,Java的靈活性一樣有不少可供考慮的解決方案哪怕是挫得要死的摘掉節(jié)點(diǎn)重啟,完成后重新上節(jié)點(diǎn)的策略。所以,大家會(huì)看到單一語言的技術(shù)團(tuán)隊(duì)也很多,這個(gè)問題的真正考慮還是在團(tuán)隊(duì)自身的特點(diǎn)、積累等等。用了雙語言的,也知道自己為什么要用這些,不用的也清楚自己的路該怎么走。最后的最后說一句:如果你不知道自己為什么要用雙語言方案的話,基本上你也就不需要考慮它了。從知乎上整理得到上文 我的Email:jinhuer168@163.com
潘達(dá)
百度騰訊新浪淘寶...以上說的多是他們的內(nèi)容服務(wù)部分。比如騰訊的是新聞網(wǎng)頁展示部分,淘寶的是一般頁面部分。有七成大網(wǎng)站是用PHP+MYSQL構(gòu)架的!