成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于前端框架的一些觀點

開發 前端
我所理解的庫,解決的是代碼或是模塊級別的復用或者對復雜度的封裝問題;而框架,更多的是對模式級別的復用和對程序組織的規范,這里的模式是指比如 MVC,為了實現 M 和 V 的解耦

說起前端框架,我個人主張有框架不如無框架,這個觀點要先從框架和庫的區別說起。

我所理解的庫,解決的是代碼或是模塊級別的復用或者對復雜度的封裝問題;而框架,更多的是對模式級別的復用和對程序組織的規范,這里的模式是指比如 MVC,為了實現 M 和 V 的解耦,通過 IOC 或是 PubSub 等手段,把丑陋的耦合由經常變化的業務代碼轉移到不經常變化的框架內部消化。

對于前端來說,在 WebApp 概念興起前,很少能看到所謂的框架,更多的是類似于 jQuery、YUI 的庫,因為前端的一路下來的發展歷程和開發方式的特殊性決定了很難有什么通用的模式能滿足多樣化前端的開發需要。如果一定要說,也就是近些年伴隨著 SPA(Single-page application)概念興起而出現的所謂前端 MVC 的一系列衍生模式,但是即便如此,光靠一個框架還是解決不了什么問題。

這里要重點說一下 SPA 這個隨著 AJAX 技術火起來的概念,SPA 的好處有哪些相信不用多說,網上一搜一大堆,接近原生應用的表現、和 HTML5 技術發展方向向契合等等。SPA 的出現讓前端變得越來越重,代碼組織、邏輯解耦等后端常常面對的問題也開始在前端出現,人們也開始在前端引入 MVC 去應對這樣一些問題,確實很有成效。但是前端變重所面臨的問題就僅僅是 JavaScript 層面的 MVC 能解決的嗎?

我們來看前端開發的特點,HTML + CSS + JavaScript 三種不同類型的語言相互配合實現需求;再來看頁面加載的特點,先加載 HTML,再有策略的加載 CSS 和 JS,碰到對性能要求較高的場景還要考慮分模塊按需加載,在大型 SPA 中還有可能要把頁面拆成一個個組件,每個組件又包含模板、樣式、腳本,頁面拆分成組件的策略是什么,組件的按需加載策略又如何,這些顯然不是 MVC 框架擅長解決的問題,這也是 AMD/CMD 等模塊機制提供者和加載器流行起來的原因。

近兩年開始流行大前端的概念,我的理解這里的大前端說的就是前端的工程化,前端開發的工程特點開始和后端開發越來越像,這也給我們提供了更多的思路,框架解決不了的問題,是不是能像后端一樣靠工具解決,過程中的模式(指類似的、重復性的工作)是否可以借助于持續集成工具實現自動化。回到剛才說到的前端組件化問題,代碼在開發環境應該對開發人員友好,開發人員可以分工編寫不同的組件,每個組件的模板、樣式、腳本代碼可以分別寫在獨立的文件中,分目錄組織;代碼在發布環境應該對用戶友好,組件的代碼應該根據策略打包成一個或多個文件并進行壓縮,便于按需加載和節省流量。而這些正應該是工具要做的。

說到這里,其實框架對于程序組織的規范性上面的作用已經不明顯,為了更靈活的模塊化,不如不去用框架,把自定義事件的能力封裝成模塊,PubSub 模式解耦形成約定,用約定和書面規范代替框架去約束程序的組織,讓開發人員直面框架的本質,充分發揮人的能動性,相信這才是更利于人才成長的實踐方式。

最后提一下前端基礎架構方面的一些思考,不要放大框架的作用,隨著前端的成熟,工程化的特點會越來越明顯,框架、庫、工具、過程規范、文檔這些東西的發展缺一不可,只有系統的結合才能發揮出技術的最大效能,在這樣的平臺上去實踐、去積累,人才能更全面的發展。

歡迎微博 @Hinc 討論。

P.S. 上述觀點有一定的適用場景,對于比如 HTML5 游戲之類的場景不太適用,請不要斷章取義、生搬硬套。

原文鏈接:http://hinc.me/2013/04/01/front-end-framework/

責任編輯:張偉 來源: hinc.me
相關推薦

2018-07-27 18:20:31

數據庫MySQL 數據庫建表

2011-07-13 09:13:56

Android設計

2009-06-18 09:51:25

Java繼承

2019-08-15 14:33:26

2012-09-25 10:03:56

JavaJava封面Java開發

2009-12-01 16:16:13

安裝VS2003

2011-03-11 09:27:11

Java性能監控

2012-04-19 10:06:55

微軟Windows 8 E

2020-09-28 06:45:42

故障復盤修復

2009-06-04 16:28:43

EJB常見問題

2017-12-21 07:54:07

2015-12-04 10:04:53

2022-04-14 10:22:44

故事卡業務

2018-07-30 08:41:48

VueReact區別

2020-04-10 08:50:37

Shell腳本循環

2020-05-19 14:35:42

Shell腳本循環

2016-10-18 22:10:02

HTTP推送HTML

2009-08-13 16:41:12

C#結構

2009-06-18 10:53:52

Hibernate3.

2021-06-10 10:02:19

優化緩存性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频免费在线观看 | 久久99精品久久久久久国产越南 | 国产精品久久久久久久白浊 | www性色 | 日韩精品专区在线影院重磅 | 噜久寡妇噜噜久久寡妇 | 色综合激情| 天天射天天干 | 久草综合在线 | 亚洲日日 | 福利影院在线看 | av黄色在线 | 涩涩视频网 | 久久国产精彩视频 | 91精品久久久| av网站免费在线观看 | 亚洲一区av| 精品国产91 | 欧美精品在线视频 | 国产美女自拍视频 | 一区二区免费看 | 国产欧美一区二区三区日本久久久 | 久久精品久久久 | 午夜免费电影院 | 欧美视频免费在线 | 国产一级特黄aaa大片评分 | 久久精品 | 国内毛片毛片毛片毛片 | 夜夜骑av| 久久久久久久夜 | 国产黄色精品在线观看 | 久久这里只有 | 日韩精品1区2区3区 爱爱综合网 | 无码一区二区三区视频 | 亚洲男人网 | 日韩一区二区在线视频 | 久久精品国产免费高清 | 欧美日韩综合一区 | 日韩一区二区在线播放 | 99久久精品视频免费 | 亚洲欧美激情国产综合久久久 |