關於後端程式設計師寫前端用什麼框架更好?

2022-01-05 JAVA葵花寶典

作者:圖書館煮飯少年

地址:http://www.360doc.com/content/16/0527/21/26662048_562854438.shtml

幾年前,還是痴迷java的那會兒,我也曾糾結於前端框架的選擇。試圖找出一套一勞永逸的前端框架繼承到項目架構中。搜遍全網得出以下結論:

各大前端框架可以按照「封裝度」的標準來區分。

設計剛出的一套網頁皮膚,封裝度為0。層層封裝到可以直接用後臺語言寫頁面,封裝度為10。那麼我是這樣來區分前端框架的。

1級——純html+css


放5年前,基本就是用Dreamweaver剛排出來的頁面或者網頁查看原始碼扒下來的皮膚。不涉及到js,就是純頁面皮膚。
--
2級—— bootstrap系列
bootstrap的出現是一個裡程碑事件。發源於twitter,引入了不少html5/css3的特性。由於它對響應式的支持以及良好的體驗,給人一種耳目一新的感覺。其源碼,不管是css還是js都值得學習一下,看後經常會有「原來還可以這樣做」這種恍然大悟的感覺。不過歸根結底是一套ui皮膚+少量js組成的框架,屬於封裝度偏低的框架。經典頁面大概是這樣:

--
3~4級—— metronic/adminLTE系列
基於bootstrap或者其他1級框架,然後集成了各種jQuery插件、富文本編輯器等js庫,組成的一個大雜燴工具包和案例庫。皮膚基本是基於bootstrap自定義的一套主題。案例比較詳盡,開發的時候找到需要的組件把前端代碼複製粘貼,再稍微調試一下就能達到良好的視覺效果。根據集成的第三方庫的多少,基本可以劃分到3~4級封裝度這樣的範圍。這個級別的框架的代碼更多的是屬於粘合劑,將各種不同的第三方庫的前端代碼粘合起來。經典頁面大概是這樣:

--
5級—— jQuery-ui
這裡要單獨把jQuery-ui拿出來講,並不是因為它的封裝度有多高,而是我認為它是一個分界點。jQuery以下級別的框架,代碼以css為主,自身的js代碼少,框架量級更輕,更靈活,更適合網際網路web產品。jQuery以上級別的框架,屬於前端的重度封裝,通過框架暴露的接口進行開發,開發人員甚至不需要太多前端知識,只需要詳細查看框架的開發文檔即可。jQuery以上級別的框架更適合傳統管理軟體的開發。
--
6~7級—— easy-ui/DWZ
easy-ui基於jQuery-ui,不過具有更豐富的組件庫。貌似商業版收費很高。聽說某大型國企花了大價錢購買下來使用。DWZ是國產框架中我認為綜合表現還不錯的,完全免費,有問題可以在他們的QQ群裡提。其餘的之前還用過金蝶的operamasks-ui,不過現在好像已經不更新了。這一類級別的框架還有一個另外的稱呼——「富客戶端框架」,意思就是重度js框架。使用起來開發效率很高,當年也是一度百花齊放,框架輩出。經典頁面大概是這樣:
--
8級—— extjs系列
extjs屬於前端框架領域中的龐然大物,封裝程度很高,具有自成體系的元素選擇引擎和瀏覽器兼容方案,js寫法上也有自己的方式。組件很多很全。只看extjs的官方文檔和示例幾乎不必學習任何其他的前端知識就可以做出「很漂亮」的前端頁面。當然頁面很容易「撞衫」。使用時間長了,會對其產生嚴重依賴,離開extjs,幾乎不會寫前端頁面了。經典頁面大概是這樣:

--
9級——vaadin/GWT
最後一級,也是封裝度最高的一級,也就是所謂的使用後臺語言寫前端。如果說之前的八級至少前端和後端還是相對分離的,後臺程序在java中寫,前臺程序在html或者js中寫;那麼這一級別的框架簡直會顛覆你的認知!只需在後臺使用java寫好了類和對象,並設置好相關的屬性,網頁的元素是自動通過後臺對象生成的。這當然有好處,媽媽再也不用擔心我不會寫js和css了。然而就學一下html/css/js真的那麼難嗎?個人認為,儘管GWT有google的這麼強悍的背書,但是這種9級封裝的本質上把前後臺耦合得更緊密。一個人做一個項目還可以考慮,但是一個團隊前後臺分離、模塊化開發的時候,使用這種框架是一種災難!所以我是極度不建議使用9級封裝框架的。
--

綜上,針對不同的編程方式,給出以下參考:

1 DOP(Deadline Oriented Program,面向截止日期編程)的程序猿們有兩種選擇:a、努力學習html/css/js,使用2~3級框架;b、看不上前端代碼的,6~8級是不錯的選擇。對於業務優先、老闆整天嚷嚷時間有多緊、客戶有多急切的項目,你可以直接選b了,我覺得老闆是不會給你時間學習html/css/js的。

2 EOP(Experience Oriented Program,面向用戶體驗編程)的程序猿們,大多數做的是追求極致用戶體驗的網際網路產品吧。那果斷選1級封裝度的框架,可適當借鑑2~4級的框架。

3 MOP(Money Oriented Program,面向人民幣編程)對於一直做後臺,趁過年放假想賺個外快的程序猿們,我知道你們也不想在前端領域有多大發展,搞好後臺就足夠一輩子衣食無憂了,所以還是選擇6~8級吧。

此外,需要考慮搜尋引擎優化的項目,慎用富客戶端或者重ajax應用。

什麼?你還需要考慮ie6的兼容性?出門左轉有一面牆,你可以撞上去了,不送!

最後告訴大家,這些都是幾年前我為了治療自己的選擇恐懼症而進行的一些分析。

現在,答主我已經不再糾結各種前端框架了。因為心中有劍,枝葉、落花皆可為劍。


有朋友提到backbonejs/angularjs/reactjs/vuejs這些新興框架,感覺很有必要補充完善一下這個答案。

大約五六年前,前端還是一個邊緣崗位,前端的工作中:css方面的由設計師用dreamveaver等工具順帶就做了;js方面的由後臺程式設計師寫寫實現了效果就行了。

究其原因,主要還是由於當時在html5尚未大面積支持的情況下,瀏覽器網頁端的表現力有限。為增強表現力甚至還需要依靠flash的支持。近幾年隨著移動端的興起以及html5/css3等技術的推廣,web端表現力日漸豐富,也越來越複雜。

計算機這門學科就是這樣,當一件事物複雜到一定程度就一定有人抽象出各種框架來提高可維護性與可擴展性。

傳輸複雜了,有了osi 7層和5層框架;伺服器集群複雜了,有了雲計算各種框架;乃至銷售問題複雜了,也有人總結出《銷售技巧xx招》…這種抽象也是人類的一種基本思維方式。

前端崗位正是在網頁前端複雜性逐漸增加的推動下產生的。說實話,很多老程式設計師以前是是看不上前端行業的,認為無非是一些奇巧淫技而已。而現在,以javascript為基礎的前端技術已經成功逆襲,nodejs的發展更是讓js有了揚眉吐氣的一天。

現在回過頭來看backbonejs/angularjs/reactjs/vuejs系列框架,它們其實並不是給後臺程式設計師準備的框架。不要輕信它們官網上的提到的「簡單易用快速上手」之類的宣傳語,那不是跟後臺程式設計師和js初學者說的。如果你對js原型鏈、作用域、異步回調的概念還很模糊,用了這些框架只會讓自己陷入泥潭難以自拔!

雖然你也可以將這些框架簡單粗暴得劃分到7級封裝度左右,但是我並不認為這些「深度前端」框架適合後臺開發者。

當然啦,事無絕對,如果你像我一樣興趣廣泛,喜歡折騰,前後端雙修,那你自然清楚該選什麼前端框架,也就不會到知乎上來問這個問題了。

這就是現在的我,有了一定的前端功力,開源社區的森林裡那麼多豐富的資源,枝葉、落花都是利刃,也無需在框架上糾結了。

推薦閱讀

相關焦點

  • 從後端開發轉職前端開發,我學到了什麼?
    甚至可以說,基本上已經與後端綁定了,直到我被迫轉職,調崗到前端,從此我能為最好的、擁有強大UI交互性的產品編寫代碼,無需過多依賴前端框架,無需框架提供的黑盒幫我挑重擔,還能創造很棒的app。構建自己的應用模型學著為自己的想法構建模型也許與前端技能本身無關,但它無疑幫助我優化了視覺效果,使我能更好地模仿自己的設計,並在前端將其編寫出來。
  • 你最喜歡的後端開發框架是什麼?
    新的後端開發或為您的下一個項目尋找新的框架?請閱讀三種流行框架的優缺點。
  • 前端的魔爪已經伸到後端了,顫抖吧後端!
    整理|孫溥茜「前端的魔爪已經伸到後端了,顫抖吧後端!」11月29日,前端開發領袖黃希彤在騰訊「小程序·雲開發」技術峰會上如此放言到,現場一片笑聲。這次峰會上騰訊搞了什麼事情?(圖片來源:騰訊官方)以上三點雲開發的能力的更新,與低代碼的產品發布不難看出,後端資源封裝是大勢所趨。許多開發者關注後端運維的話題,因為後端運維通常會消耗大量時間精力,前端業務代碼還沒開始寫,就已經精疲力盡了。
  • 什麼是2021年最佳的後端開發框架
    什麼是2021年最佳的後端開發框架接下來我應該學習什麼?如果你是一名開發人員,這個問題應該一直在你的腦海中。
  • 聊聊後端Web開發框架(Python)的簡單使用
    [http://127.0.0.1:5000/login](http://127.0.0.1:5000/login) -d "a=2"{"args":{},"form":{"a":"2"},"methods":"POST","path":"/login"} Session 是基於 Cookie 實現, 保存在服務端的鍵值對
  • Java 程式設計師必備的 15 個框架,前 3 個地位無可動搖!
    Java 程式設計師方向太多,且不說移動開發、大數據、區塊鏈、人工智慧這些,大部分 Java 程式設計師都是 Java Web/後端開發。那作為一名 Java Web 開發程式設計師必須需要熟悉哪些框架呢?今天,棧長我給大家列舉了一些通用的、必須掌握的框架,學會這些,20K+ 不是問題。
  • 給年輕的前端程式設計師提升能力的幾條建議
    他可能會說「我現在對 Web 前端比較熟悉,但我想深入了解 AngularJS,另外 React 現在發展的很快我也想看一下。之後,我會花時間去學習 iOS 和 Android 開發。」看上去不錯,但缺乏系統性的目標。或者說,他制定了學什麼,但對為什麼要學這些並沒有仔細的思考。在技術領域,有太多的東西會迅速的過時,如何利用有限時間,最大化你的長期收益?
  • Java程式設計師不能錯過的7個基本框架
    Java程式設計師不能錯過的7個基本框架 現在IT開發人員面對的較大挑戰就是複雜性,構建的應用越來越複雜。今天給大家列出Java程式設計師不能錯過的7個基本框架,或許會對你有幫助哦。
  • Java程式設計師求職必學:Spring boot學習指南!
    咳咳,今天學姐就來和你們說說Spring對於Java程式設計師的重要性。首先,Spring 官網首頁是這麼介紹自己的——「Spring: the source for modern Java」,這也意味著 Spring 與 Java 有著密切的關係!
  • 程式設計師的搞笑gif,太真實貼切了,收藏
    來源:四猿外 下面是有關程式設計師的多張gif,場景描述的過於真實! 程式設計師和程式設計師鼓勵師
  • D3.js、echar.js 前端必備大數據技能
    「 前言 」web前端一直都是個講究門面和藝術美感的行業,如果你以為邏輯很強就夠了,那就錯了,你只適合做後端,真正的好前端是對美感和可視化的東西有一種接近痴狂的愛好
  • 前端世界萬物誕生記
    這次定了這個話題 「前端這十年的發展」。範圍太廣,有點難下手,與其面對那些冷冰冰的時間年限。不如我們來看看。他們在當時都創造了什麼價值,給了我們什麼啟發。靜態頁面時代在 1995 年之前,前端的主要展現形式是以靜態頁面呈現的,主要技術為 HTML(超文本標記語言) + CSS(層疊樣式表),前端此時的功能點是純靜態的只讀網頁。
  • 專訪|百度高級前端開發工程師@葉小釵
    2)是在什麼樣的機緣下走進前端的?小釵進入前端是比較巧合的,我大學主要用.net做開發,當時比較複雜的項目單個存儲過程都寫了1000多行,可以說我在server端的還是有一些項目經驗的。 之前很長一段時間,我都不能明白什麼是表現與行為分離,數據與行為分離,我之前也與Arron等大神做過交流,他們只是說了一個MVC啊,於是我便去尋找MVC的實現,寫MVC的demo,但很長一段時間我仍然不能了解什麼是MVC,直到我碰到複雜業務發現DOM操作不可控,自己探索出解決方案時,再翻過去看網上關於MVC的探討,便會突然吃了一驚,原來這就是MVC啊!!!
  • 十年編程老司機:給新手程式設計師的幾點建議
    我徘徊於你的網站,想要尋找一個專業的電腦程式員,我不知道你是否能夠幫助我。雖然我還年少,但是已經下定決心要為編程奉獻我的一生。你在你的個人資料上面說你是一個專家,所以我希望能直接得到專家的指導。你能給我一些關於編程的技巧嗎?進入的最佳領域是什麼,應該學習什麼語言,以及想要成為一個成功的程式設計師,我應該怎麼做。 希望能儘快收到你的來信,非常感謝。
  • 後端程式設計師的 Js 之旅 : 回調地獄終結者
    ,處理回調是家常,但是處理層次過深的回調就沒有那麼美好了,下面的示例代碼片段用了三層回調,再補腦一下更多層的場景,簡直是酸爽,這就是傳說中的回調地獄。Promise 在 JavaScript 生態圈被主流接受是在 2007 年 Dojo 框架增加了 dojo.Deferred 的功能。隨著 dojo.Deferred 的流行,在 2009 年 Kris Zyp 提出了 CommonJS Promises/A 規範。隨後生態圈中出現了大量 Promise 實現包括 Q.js、FuturesJS 等。
  • 過去三年使用前端框架的感受
    作者:王力國來源:https://zhuanlan.zhihu.com/p/194311058Angularjs背景:2016.10-2017.7,某雲計算公司,客服雲平臺Angularjs 是我參加工作之初接觸的第一個前端框架
  • 深入聊聊 JavaScript 框架
    一、前言關於 JS 框架部分能聊的內容比較多,我相信大家對某個框架的使用、原理等知識是比較容易找到資料來學習的,鑑於此這部分內容將會從另一個視角出發:通過回顧 JS 框架的發展歷程,和大家一起探討框架的本質以及 JS 框架不斷變化背後的驅動力。
  • 程式設計師需知的 59 個網站
    推薦指數:網站封面6、Linux地 址:https://www.linux.org/簡 介:後端程式設計師必會的Linux.推薦指數:網站封面8、Dubbo地 址:http://dubbo.apache.org/zh-cn/簡 介:一款高性能的Java RPC框架,國內用的還是比較廣泛,源於阿里,中文文檔是有的。
  • 秒懂Vuejs、Angular、React原理和前端發展歷史
    「前端程序發展的歷史」「 不學自知,不問自曉,古今行事,未之有也 」我們都知道現在流行的框架:Vue.Js、AngularJs、ReactJs,已經逐漸應用到各個項目和實際應用中,它們都是MVVM數據驅動框架系列的一種。在了解MVVM之前,我們先回顧一下前端發展的歷史階段,做到心中有數,才會更好理解。
  • 簡單聊聊Python後端開發和Java後端的區別
    又已經有一段時間沒寫原創了,今天總算閒了一會,趁著這個閒暇來寫篇文章。今天我想以個人觀點來簡單說說Java後端開發和Python後端開發的區別。Python後端框架最火的就是Django和flask,我也寫過這兩個框架的系列文章,感興趣的可以去看看。