㈠ RESTFUL風格中復雜的業務邏輯是放在前端還是後端
SQL寫業務邏輯必然沒有java好。客戶後期需求來的時候改SQL語句是十分麻煩的。而業務邏輯代碼在JAVA中是比較好處理的。再說伺服器端的業務邏輯處理能力並不比資料庫慢。
㈡ 什麼是前端開發中的業務邏輯
業務邏輯是由客戶的需求決定的。那麼客戶的需求通常是不連貫的,是跳躍性的,也就是很可能是非邏輯的,並且是經常會變化的。並且客戶的需求一方面出自自身的實際需要,另一方面很可能受客戶情緒的影響。所以,不管是內容還是順序,都可能會隨時改變,所以有一些需求的具體實現,你需要單獨拿出來封裝,這就是專門封裝的業務層。
㈢ 軟體開發中什麼叫前端什麼叫後端
前端開發和後台開發是有區別的,工作的內容和負責的東西是完全的不同的
後端:入門難,深入更難,枯燥乏味,沒有太大成就感,看一堆業務邏輯代碼。
前端:入門簡單,先易後難,能看到自己做出來的展示界面,有成就感。
1、前端開發
前端開發現在一般指的就是web前端開發工程師,其負責是網站前端頁面也就是網頁的頁面開發,簡單的說網站前端負責是東西是網站用戶可見的東西,如網頁上的特效、網頁的布局、圖片、視頻等內容。網站前端工程師的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,並和後端開發工程師配合做網頁的數據顯示和交互。
2、後端開發
後端開發一般也叫做後台,其負責是網站後台邏輯的設計和實現還有用戶及網站的數據的保存和讀取。比如一般網站都是有用戶注冊和登錄的,用戶的注冊的信息通過前端發送給後端,後端將其保存在資料庫中,用戶登錄網站的時候,後端需要通過用戶輸入的用戶名和密碼是否與資料庫中的一致來判斷用戶是否有許可權登錄,這是後台開發中的一個最簡單的功能。
前端工程師的需求量很大,幾乎所有提供互聯網服務的企業都需要,最近需求量比較大的一個方向就是HTML5前端開發。HTML5是HTML標准,它本身是一項標准化協議,HTML5開發這個名詞本身就是不專業的稱呼,通常意義上指使用HTML5等較為潮流的技術進行前端開發。
與Web前端開發不同的是,使用HTML5不僅僅可以開發前端,還有網頁游戲,手機APP,使用瀏覽器進行3D渲染等一系列建立在HTML5標准與搭載其標准瀏覽器上的開發,而未來可能會有更多的功能分支並入HTML5標准,
前端技術可以說是越來越成熟了,Web前端開發工程師已經成為發展中的職業香饃饃。說起來幾乎是整個互聯網行業都需要Web前端工程師,無論是剛起步的創業公司,還是上市公司乃至巨頭,都有一定需求。只要你夠優秀,Web開發前端就業前景簡直不要再好!
前端的發展其實還是那句話,有需求才會有市場,為什麼那麼多人參加想進入Web前端的行列呢,還不是因為Web開發有市場,企業需要量大。所以與其費盡心思的想Web前端今後的發展,還不如用那個時間好好學習一些Web前端技能將來對就業更添保障。
㈣ 前端邏輯不好慢慢會有提升嗎
前端開發對於邏輯思維能力要求並沒有後端那麼的高,但是隨著前端開發任務的逐漸擴展,對於前端開發人員來說還是要具備一定的邏輯思維能力的,而且隨著前端開發後端化的趨勢越明顯,對邏輯思維能力的要求也會逐漸提升,所以,如果想未來在前端這條路上走得更遠,一定要注重邏輯思維能力的培養。
可以從以下三個方面提升邏輯思維
1、先從開發模式入手
開發模式對於前端開發人員來說是比較重要的,不同的開發模式下往往有不同的邏輯處理方式,所以要想順利融入開發團隊並完成開發任務,需要先從開發模式入手。相對於具體的業務邏輯處理來說,模式的變化通常是比較小的。另外,不同的開發團隊都有自己的技術風格(選型),盡快熟悉這些技術風格也比較重要。
2、參考已有的開發案例
通過案例學習能夠快速掌握不同業務邏輯的實現方式,因為大部分前端開發都有固定的邏輯處理方式,所以掌握這些固定處理方式是比較重要的。以Java Web開發為例,有很多案例都是基於微服務的方式開發的,此時前端業務邏輯中,表單驗證就是一個需要注重的環節。在參考已有案例的過程中,一定要多問,多與有經驗的程序員交流是比較重要的。
3、動手實踐
培養邏輯思維方式一個重要的途徑是為邏輯建立畫面感,所以一定要多動手做實驗,實踐過程能夠不斷強化邏輯思維的建立。由於前端開發本身涉及到的細節內容就比較多且雜,所以實驗往往也比較多。實踐可以從基本的頁面開始,然後逐漸根據業務邏輯的要求來不斷豐富頁面的功能,同時注重如何與後端服務相配合。
㈤ 為什麼大型網站前端使用 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了。把任務發給後端工程師?那慢慢等吧。。。
㈥ 網站前端的工作具體是在做什麼
前端開發工程師的主要職責就是與交互設計師、視覺設計師協作,根據設計圖用HTML和CSS完成頁面製作。同時,在此基礎之上,對完成的頁面進行維護和對網站前端性能做相應的優化。另外,一名合格的前端開發工程師,應該具有一定的審美能力和基礎的美工操作能力,能很好地與交互及視覺協作。
HTML、CSS和DIV+CSS技術用來製作Web頁面;
Java、DOM、BOM等用建立開發基礎;
photoshop和Axure等軟體應用,完成頁面UI設計;
NodeJS和PHP加上資料庫等這樣的後端語言,方便前後端開發配合;
HTML5、CSS3、響應式頁面布局、微網站製作等開發移動互聯網的應用;
像Ajax、JQuery、jQueryMobile、Bootstrap、AngularJS等更是前端開發必學的高級技術;
HTML5地理位置應用、離線應用、Webworker多線程實現、Websocket、跨平台開發技術和WebAPP開發等,這些企業級應用技術也是現在開發的主流;現在前端開發最熱門、要人最多,就是使用canvas開發網頁游戲動畫,以及會用 Cocos2d-js製作游戲等開發。