當前位置:首頁 » 網頁前端 » php前端java後台
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

php前端java後台

發布時間: 2023-04-13 16:20:10

㈠ 為什麼大型網站前端使用 PHP 後台邏輯用 Java

首先,為什麼是PHP和Java,不是其他。這和兩者的開源社區都很活躍,並且都很適合進行Web開發有很大的關系,而且都很適合Linux環境下運行,可以在運維上統一管理。
盡管.Net市場佔有率也不低,但由於Windows和sql Server的License費用、開源社區不活躍等多種問題相對而言考慮得少一些。TIOBE TOP 10中適合Web開發的語種還包括了Python Perl Ruby,其中Perl已經是昨日黃花,主要在伺服器腳本領域還有較多應用,Web上已經不太可能Yesterday oncemore了。Python最近上升勢頭挺猛,但僅需要考慮文檔較少、招聘相對困難基本就註定了暫時不會是大網站的主流選擇。Ruby就不更不用提了。
再看一下兩個語言之間的差異。 PHP靈活,上手快,易修改,發布快捷,缺點是容易犯錯(常見如拼寫錯誤、SQL注入、上傳執行等)、執行效率不高、缺乏全局緩存。Java的優點則是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。盡管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊?
然後從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事干誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。而View,啥時候兩天不改BU啊PM啊UED啊大概是集體休年假了吧?
再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專注在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的復雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合?
總的來說,靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。
所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。
好吧,後面的同學補充了一個很好的問題,為什麼不是僅用PHP或是僅用Java?這個我原本稍微提了,不過之前發布前刪掉了的,因為問題是為什麼PHP+Java。其實也有很多公司為了保證團隊組織不至於過度復雜,會更傾向於採用單一語言,尤其是中小公司。
單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。
但我們都知道,現實往往比理想骨感很多,這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:
1、PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重復執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。 更何況,還缺少了系統級共享數據的支持,使得核心數據一次性初始化後重復使用必須藉助擴展或中間件。
2、在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。
3、Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕松的學習成本、多到令人發指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?
好吧,吐槽結束。
實際工作中性能問題可以通過良好的架構解決,容易犯錯的問題可以通過框架和規范以及全面的測試來解決,中間件選擇少些但其實該有的都有了,Java的靈活性一樣有不少可供考慮的解決方案,不說 OSGi 之類,就算是挫得要死的摘掉節點重啟,完成後重新上節點的策略也都能湊效。
所以,大家會看到單一語言的技術團隊也很多,這個問題的真正考慮還是更多在團隊自身的特點、積累等等。用了雙語言的,也知道自己為什麼要用這些,不用的也清楚自己的路該怎麼走。最後的最後說一句:如果你不知道自己為什麼要用雙語言方案的話,基本上你也就不需要考慮它了。
小豬,寫程序很好玩
後端java最大的優勢在於龐大的生態環境,你想解決的任何問題,java都有現成的方案,而且,相對其他語言來說,基於jvm的方案在運行效率和運維成本上平均來說是最佳的(這里不討論說什麼運維人員的能力之類的,只假設我們的運維都只具有一般的平均水平),所以,後端天然是傾向java的,無論前端用什麼。
至於前端,最大的問題在於,一個網站的UI,變動相當頻繁,傳統的基於java的開發方案,jsp tag lib,freemaker, velocity。。。。你讓前端怎麼改,怎麼調試?不經過專門學習他們怎麼看得懂?而且,java的開發模式,動不動上來就是MVC,後端跟前端結合太緊密了,基本上前端很難自由的在ui層工作。反過來,基於PHP的前端方案,至少做前端的都能看得懂,都能調試得了,這就是巨大的生產力的解放了,講後端java做成rest服務,前端所有的動態代碼都可以交給前端工程師,對他們來講,最舒服的動態網頁方案,自然就是PHP,這個是歷史沉澱決定了,誰也沒法改變,無論你多麼看不起PHP,包括我自己也是並不喜歡PHP,但是仍然要再強調一次,對前端工程師來說,最舒服最自在的動態網頁方案,仍然是PHP!就如同上面很多人回答的,PHP就是快,快在哪兒?PM說要改什麼,前端上手10分改好,30分鍾後已經release了。把任務發給後端工程師?那慢慢等吧。。。

㈡ 類似淘寶用php做前端,java做後端的架構是怎樣的

PHP是後台程序,JAVA也是後台程序。

前端程序是html div+css

現在網站開發都是用的MVC架構。

㈢ 為什麼大型網站前端使用 PHP 後台邏輯用 Java

從這幾個方面看
一、運行機制:
Java代碼被編譯成位元組碼後,會在虛擬機里由JIT進行二次編譯成為本地碼,據傳言其執行速度可以和C++相媲美,經過我自己測試,用Java實現一個簡單的Memcache協議的緩存伺服器,在Java 1.6下運行,和memcache本身相比,同樣數據量的存取時間比大概是3:2,雖然有差距,但是比想像的要好很多。Java 1.7在JIT方面做了大量的改進,性能比Java 1.6還要好。
PHP是直接對文本代碼進行解釋執行,即便有opcode緩存技術,仍然有不可逾越的性能鴻溝。PHP的opcode類似於java的class位元組碼,仍是解釋執行。
二、處理並發:
Java在並發處理上採取單進程多線程的方式,web應用會隨著web server的啟動而啟動,而來自web 瀏覽器的請求將被分配給線程池內的閑置線程處理,也就是說當有請求到達的時候,進程是准備好的,線程是准備好的,Java要做的僅僅是業務邏輯處理了。
PHP在並發處理上時採取多進程的方式,在web server里沒有物理的web應用概念,每個請求都相當於一個獨立的應用,而進程也隨著請求的到達才啟動,而隨著請求的結束而消亡。在Fast CGI環境下,有類似於線程池的進程池技術,對性能提高有很大的幫助。然而一方面web server和Fast cgi通訊仍需要通過socket,多出了一定的IO損耗,另一方面進程池內的進程間也很難進行通訊,所以在並發處理上仍然無法和Java相比。
三、資料庫應用:
Java可以採用資料庫連接池技術,節省下資料庫連接過程帶來的時間損失。
PHP沒有這個好處,原因來自上面的第二條。
在資料庫介面上java有JDBC,PHP有PDO,這兩個很類似。然而Java有非常多的ORM技術框架(如Hibernate)使資料庫操作變得異常簡單,而PHP的運行方式決定了它是ORM的禁區(當然也可以做ORM,只是做到什麼程度是由你對ORM帶來的性能損耗的忍受程度決定的)。
四、緩存技術
Java是單進程,很多緩存可以直接在Java的heap中做,而無需藉助外在的工具,當然也有很好的緩存框架,比如Ehcache,因為沒有網路IO,所以性能非常高。
PHP多進程單線程決定了它只能藉助外來的緩存伺服器,比如Memcache.
五、熱部署
Java的熱部署能力很弱,如果希望修個BUG而不停服是很難做到的。
PHP天然熱部署。
現在明白為什麼後台邏輯用java了吧

㈣ 做web前端開發還是java後端開發哪個前景好

做web前端開發還是java後端開發?哪個前景好, web前端開發和java後端開發兩者相比,哪個前景好,薪資待遇分別是怎麼樣的?

前後端應該都挺有發展前景,相對來說前端會比較簡單一點。但是現在對於同個層次的人,一般公司前後端待遇都差不多,待遇好的肯定是你技術過硬的。那就要看自己的愛好了。以下是web前端開發和java後端開發兩者的分析。

具體步驟

  1. 首先說JAVA,JAVA是作為後端開發的。現在後端開發主要是PHP和JAVA,當然還要加上資料庫MySQL、Oracle。PHP比較適合互動比較少的後端,適合小規模的應用。JAVA做後端安全性、穩定性都較好,所以大、中企業用JAVA開發。當然後端開發還有C++等語言,C++的特點是開發快、成本低,一些手機游戲就用C++作為後端語言。

  2. Web前端主要用的語言是Html5、CSS3、JavaScript,還要加上AJAX。前端開發還有什麼前端呢?移動應用(APP)前端。2015年之前,開發APP的前端,要用Android和IOS,而且還必須分別開發。

  3. 2015年開始,興起了APP前端統一開發,比如MUI框架、react native。這兩種開發我都涉及到,原生android我也做過幾款APP。MUI開發用的就是Web前端的那一套東西,只不過封裝了很多的類。react native開發模仿的就是Web前端開發,用的語言是ES5,ES6。你網路上查一查就知道ES跟JS其實沒啥區別。

  4. 所以,要說哪個有前途。真不好說,因為這兩個技術就是相輔相成的。現在學前端就是從 Web前端開始。但是對於個人來說,從事前端或者後端還是有區別的。前端開發,對於有美術功底的人是有優勢的,後端開發適合程式設計技術功底扎實的人。

現在做web前端開發和java後端開發?哪個工資高?更有前途?

目前java語音是最流行也是使用最廣泛的語音,前端後端都能寫,當然市場的需求也是很大的,現在學習還來得急,可以找些視訊教程看看,對新人很有幫助,當然肯定沒有老師親授課程好的,互動性更強,技術學得更牢固。

java web 開發是前端開發還是後端開發?

前後端都有。
前端指WEB頁面呈現,如,js,css
後端指與通過與JAVA與資料庫互動

web前端開發和後端開發哪個更適合我

關鍵是看你對哪個比較感興趣吧。
前後端應該都挺有發展前景,相對來說前端會比較簡單一點。但是現在對於同個層次的人,一般公司前後端待遇都差不多,待遇好的肯定是你很牛逼的。
反正就我們公司而言前後端大體是一樣的,你應該想 一下你自己對哪個比較感興趣,比較想學哪個,時間長了總會有收獲的,就怕老是處於觀望狀態,學前端的感覺後端待遇好,後端的感覺前端待遇好。

WEB前端開發前景好還是JAVA後台開發前景好

無所謂那個好與壞 關鍵在於你是否能勝任你所做的工作 前端也好 後端也罷 你能否做到其中一個精通 解決遇到的工作難題才是關鍵 這就好比一直以來的程式語言之爭 相信你自己會有一定的判斷 要是非給建議我個人傾向於後端

java web前端和後端開發哪個前景比較好

只要你做的好,哪個都是有前景的,一個好的前段開發是不好找的,還是看自己喜好來吧。個人感覺後台更好一些,技術要求更高。

java web開發前端js開發還是web後端開發,

前後端應該都挺有發展前景,相對來說前端會比較簡單一點。但是現在對於同個層次的人,一般公司前後端待遇都差不多,待遇好的肯定是你很牛逼的。
反正就我們公司而言前後端大體是一樣的,你應該想 一下你自己對哪個比較感興趣,比較想學哪個,時間長了總會有收獲的,就怕老是處於觀望狀態,學前端的感覺後端待遇好,後端的感覺前端待遇好。

㈤ web項目為什麼要用php做前端,java做後端,而不是直接h5+java

php做前端,java做後端
淘寶是個例子

伺服器端 前後分開 是為了兩方面,雖然淘寶最開始並不想這樣做。。。
先說下歷史,淘寶是 最開始php全部,
後來發現開銷太大,代碼效率不行,
就直接把數據存儲啊,用戶通知啊 就交給java

實際上大部分網站都樂意採用 這種前端php 後端 java或者C++這種形式,我是php c++ 這種。
優點,核心動作效率肯定高,c++ java 這種代碼效率奇高。比php腳本好很多。

前端php,語法簡單,維護簡單,部署簡單,而且容易找到維護人員。總之就是開發快,維護成本低。

大致了解了嗎?

你說的h5 + java實際上就是把java提到前台, 不是不可以,維護和開發成本太高了啊。前端開發要經常搞, 但是java做前台 要 調試 、 編譯 部署還要重編譯。 麻煩,人工開銷也大。不劃算

如果是.net技術 就更高成本了。光伺服器軟體一塊就要多少了。 所以微軟的框架 用的不多。國內外都不多,用.met的 成本開發 維護 都麻煩。要氣硬體條件還苛刻。

㈥ php與java比較,哪個適合做前端,哪個做後台

PHP靈活,上手快,易修改,發布快捷,缺點是容易犯錯(常見如拼寫錯誤、SQL注入、上傳執行等)、執行效率不高、缺乏全局緩存。Java的優點則是穩定可靠、運行效率高、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。這里這是相對而言,並不是說PHP不能開發大型web,也不是說JAVA效率低,足夠經驗和能力的依然很高效。
java和php都能做後台,php也可以做前端

㈦ 前端是php做的頁面後端能用java嗎

可以的 數據都是存在資料庫的 只要可以更改數據 什麼語言都可以做,但是既然前台都是php了,後台也用php好一些,不然以後要增加什麼擴展的話需要找java和php兩個程序員來維護,不是很方便

㈧ 為什麼用java做後台,php開發前台

如果開發一個大型的網站,我到底應該使用php還是jsp,後台到底使用php還是用java,我的選擇要麼是php要麼是java,因為我喜歡linux、unix,當然window平台也必須支持,以便哦的妹紙可以查看。這就要求用一些跨平台相當好的軟體+工具+語言,所以選擇只能是這么幾個。最後我的決定是php+java,一個前台一個後台,理由如下: php和java在開源社區的活躍度嚴重超過了其他的語言,使用人數也都是相當之多;活躍的開發工程師們能夠給我幫助,且這倆都能很好的跨平台,不用花費大量的人力物力去維護 我也做過一個物聯網的網關網站,比較復雜,當時採用的是jsp+java,復雜程度可想而知,單單說開發過程,網站部分繁瑣,每次想查看結果運行網站的時候還需要重新打包部署一下,嚴重影響了哦的開發效率,每天的時間都是在等待(因為網站比較復雜,打包部署需要浪費一些時間)。相對來說呢,php就沒有了,php靈活,好學,上手快,容易修改,容易發布,關鍵是熱部署,這個真讓哦眼睛大亮。當然看待任何事物都需要兩種眼光,php也會有缺點,比如沒有太好的開發IDE,所以拼寫錯誤很正常,且php的sql注入危險較大點,執行效率不高,安全性不如java。還有一些理由,來自知乎的米米們給的建議: Java的優點則是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。盡管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊? 從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事干誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專注在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的復雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合? 靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。 所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。
單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。
但這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:
1. PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重復執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。
2. 在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。
3. Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕松的學習成本、多到令人發指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?
實際工作中性能問題可以通過良好的架構解決,容易犯錯的問題可以通過框架和規范以及全面的測試來解決,中間件選擇少些但其實該有的都有了,Java的靈活性一樣有不少可供考慮的解決方案哪怕是挫得要死的摘掉節點重啟,完成後重新上節點的策略。
所以,大家會看到單一語言的技術團隊也很多,這個問題的真正考慮還是更多在團隊自身的特點、積累等等。用了雙語言的,也知道自己為什麼要用這些,不用的也清楚自己的路該怎麼走。最後的最後說一句:如果你不知道自己為什麼要用雙語言方案的話,