欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

【W(wǎng)eb開(kāi)發(fā)原理】web發(fā)展歷史 - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >

【W(wǎng)eb開(kāi)發(fā)原理】web發(fā)展歷史

發(fā)表時(shí)間:2016-6-5

發(fā)布人:葵宇科技

瀏覽次數(shù):47

Web的誕生

提到Web,不得不提一個(gè)詞就是“互聯(lián)網(wǎng)”。Web是World Wide Web的簡(jiǎn)稱(chēng),中文譯為萬(wàn)維網(wǎng)?!叭f(wàn)維網(wǎng)”和我們經(jīng)常說(shuō)的“互聯(lián)網(wǎng)”是兩個(gè)聯(lián)系極其緊密但卻不盡相同的概念。今天“互聯(lián)網(wǎng)”三個(gè)字已經(jīng)承載了太多的內(nèi)涵,提到互聯(lián)網(wǎng),我們通常想到的一種戰(zhàn)略思維,或者是一種顛覆傳統(tǒng)的商業(yè)模式。拋開(kāi)那些紛繁凌亂的商業(yè)化概念,回歸技術(shù)本身,互聯(lián)網(wǎng)就是指通過(guò)TCP/IP協(xié)議族互相連接在一起的計(jì)算機(jī)網(wǎng)絡(luò)。而Web是運(yùn)行在互聯(lián)網(wǎng)上的一個(gè)超大規(guī)模的分布式系統(tǒng)。Web設(shè)計(jì)初衷是一個(gè)靜態(tài)信息資源發(fā)布媒介,通過(guò)超文本標(biāo)記語(yǔ)言(HTML)描述信息資源,通過(guò)統(tǒng)一資源標(biāo)識(shí)符(URI)定位信息資源,通過(guò)超文本轉(zhuǎn)移協(xié)議(HTTP)請(qǐng)求信息資源。HTML、URL和HTTP三個(gè)規(guī)范構(gòu)成了Web的核心體系結(jié)構(gòu),是支撐著Web運(yùn)行的基石。用通俗的一點(diǎn)的話來(lái)說(shuō),客戶端(一般為瀏覽器)通過(guò)URL找到網(wǎng)站(如www.google.com),發(fā)出HTTP請(qǐng)求,服務(wù)器收到請(qǐng)求后返回HTML頁(yè)面??梢?jiàn),Web是基于TCP/IP協(xié)議的,TCP/IP協(xié)議把計(jì)算機(jī)連接在一起,而Web在這個(gè)協(xié)議族之上,進(jìn)一步將計(jì)算機(jī)的信息資源連接在一起,形成我們說(shuō)的萬(wàn)維網(wǎng)。大家開(kāi)發(fā)的Web應(yīng)用本質(zhì)上就是可以提供信息或者功能的Web資源,成為Web這個(gè)全球超大規(guī)模分布式系統(tǒng)中的一部分。在技術(shù)層面進(jìn)一步理解Web和互聯(lián)網(wǎng),建議找一本計(jì)算機(jī)網(wǎng)絡(luò)的書(shū)去看看,了解一下計(jì)算機(jī)網(wǎng)絡(luò)的分層結(jié)構(gòu)和發(fā)展歷史。

1991年8月6日,Tim Berners Lee在alt.hypertext新聞組貼出了一份關(guān)于World Wide Web的簡(jiǎn)單摘要,標(biāo)志了Web頁(yè)面在Internet上的首次登場(chǎng)。最早Web主要被一幫科學(xué)家們用來(lái)共享和傳遞信息,全世界的Web服務(wù)器也就幾十臺(tái)。第一個(gè)Web瀏覽器是Berners Lee在NeXT機(jī)器上實(shí)現(xiàn),也只能跑在NeXT機(jī)器上,蘋(píng)果和喬布斯的粉絲對(duì)NeXT的歷史肯定耳熟能詳。真正使得Web開(kāi)始流行起來(lái)的是Mosaic瀏覽器,這便是曾經(jīng)大名鼎鼎的Netscape Navigator的前身。Berners Lee在1993年建立了萬(wàn)維網(wǎng)聯(lián)盟(World Wide Web Consortium,W3C),負(fù)責(zé)Web相關(guān)標(biāo)準(zhǔn)的制定。瀏覽器的普及和W3C的推動(dòng),使得Web上可以訪問(wèn)的資源逐漸豐富起來(lái)。這個(gè)時(shí)候Web的主要功能就是瀏覽器向服務(wù)器請(qǐng)求靜態(tài)HTML信息。95年的時(shí)候馬云在美國(guó)看到了互聯(lián)網(wǎng),更準(zhǔn)確的說(shuō)他其實(shí)看到的就是Web,阿里早先做的黃頁(yè)也就是把企業(yè)信息通過(guò)進(jìn)行HTML展示的Web應(yīng)用。

Static-Page

動(dòng)態(tài)內(nèi)容的出現(xiàn):CGI

最初在瀏覽器中主要展現(xiàn)的是靜態(tài)的文本或圖像信息,GIF圖片則第一次為HTML頁(yè)面引入了動(dòng)態(tài)元素。不過(guò)人們已經(jīng)不僅僅滿足于訪問(wèn)放在Web服務(wù)器上的靜態(tài)文件,1993年CGI(Common Gateway Interface)出現(xiàn)了,Web上的動(dòng)態(tài)信息服務(wù)開(kāi)始蓬勃興起。CGI定義了Web服務(wù)器與外部應(yīng)用程序之間的通信接口標(biāo)準(zhǔn),因此Web服務(wù)器可以通過(guò)CGI執(zhí)行外部程序,讓外部程序根據(jù)Web請(qǐng)求內(nèi)容生成動(dòng)態(tài)的內(nèi)容。Perl因?yàn)榭绮僮飨到y(tǒng)和易于修改的特性成為CGI的主要編寫(xiě)語(yǔ)言。當(dāng)然,CGI可以用任何支持標(biāo)準(zhǔn)輸入輸出和環(huán)境變量的語(yǔ)言編寫(xiě),比如Shell腳本,C/C++語(yǔ)言,只要符合接口標(biāo)準(zhǔn)即可。比如你用C語(yǔ)言編寫(xiě)CGI程序,你把希望返回的HTML內(nèi)容通過(guò)printf輸出就可以發(fā)送給Web服務(wù)器,進(jìn)而返回給用戶。

CGI

Web編程腳本語(yǔ)言:PHP/ASP/JSP

這個(gè)時(shí)候我們已經(jīng)可以在Web上提供動(dòng)態(tài)功能了,比如網(wǎng)站訪問(wèn)的計(jì)數(shù),表單的處理。CGI對(duì)每個(gè)請(qǐng)求都會(huì)啟動(dòng)一個(gè)進(jìn)程來(lái)處理,因此性能上的擴(kuò)展性不高。另外,想象一下用在Perl和C語(yǔ)言中的程序中去輸出一大堆復(fù)雜的HTML字符串,是不是有點(diǎn)蛋疼,可讀性和維護(hù)性是個(gè)大問(wèn)題。為了處理更復(fù)雜的應(yīng)用,一種方法是把HTML返回中固定的部分存起來(lái)(我們稱(chēng)之為模版),把動(dòng)態(tài)的部分標(biāo)記出來(lái),Web請(qǐng)求處理的時(shí)候,你的程序先生成那部分動(dòng)態(tài)的內(nèi)容,再把模版讀入進(jìn)來(lái),把動(dòng)態(tài)內(nèi)容填充進(jìn)去,形成最終返回。舉個(gè)例子,搜索一個(gè)關(guān)鍵詞,搜索引擎的Web服務(wù)器可以先從后臺(tái)索引服務(wù)器里拿到數(shù)據(jù),然后把這些數(shù)據(jù)填充到返回結(jié)果的HTML模版中,返回給瀏覽器。但是這件事情自己來(lái)做顯然太繁瑣而且是重復(fù)勞動(dòng)。于是1994年的時(shí)候,PHP誕生了,PHP可以把程序(動(dòng)態(tài)內(nèi)容)嵌入到HTML(模版)中去執(zhí)行,不僅能更好的組織Web應(yīng)用的內(nèi)容,而且執(zhí)行效率比CGI還更高。之后96年出現(xiàn)的ASP和98年出現(xiàn)的JSP本質(zhì)上也都可以看成是一種支持某種腳本語(yǔ)言編程(分別是VB和Java)的模版引擎。96年W3C發(fā)布了CSS1.0規(guī)范。CSS允許開(kāi)發(fā)者用外聯(lián)的樣式表來(lái)取代難以維護(hù)的內(nèi)嵌樣式,而不需要逐個(gè)去修改HTML元素,這讓HTML頁(yè)面更加容易創(chuàng)建和維護(hù)。此時(shí),有了這些腳本語(yǔ)言,搭配上后端的數(shù)據(jù)庫(kù)技術(shù),Web更是開(kāi)始大殺四方了,像電子商務(wù)這樣的應(yīng)用系統(tǒng)也可以通過(guò)Web技術(shù)來(lái)構(gòu)建。Web已經(jīng)從一個(gè)靜態(tài)資源分享媒介真正變?yōu)榱艘粋€(gè)分布式的計(jì)算平臺(tái)了。反過(guò)來(lái)看,你也應(yīng)該知道,不是只有當(dāng)今這些流行腳本語(yǔ)言可以寫(xiě)Web應(yīng)用,C語(yǔ)言一樣可以做這件事情。前面舉的搜索引擎通過(guò)C語(yǔ)言來(lái)獲取數(shù)據(jù)和渲染W(wǎng)eb頁(yè)面的例子在追求極致訪問(wèn)速度的互聯(lián)網(wǎng)公司是非常常見(jiàn)的,但是腳本語(yǔ)言在開(kāi)發(fā)效率上更勝一籌。

PHP

分布式企業(yè)計(jì)算平臺(tái):J2EE/.Net

Web開(kāi)始廣泛用于構(gòu)建大型應(yīng)用時(shí),在分布式、安全性、事務(wù)性等方面的要求催生了J2EE(現(xiàn)在已更名為Java EE)平臺(tái)在1999年的誕生,從那時(shí)開(kāi)始為企業(yè)應(yīng)用提供支撐平臺(tái)的各種應(yīng)用服務(wù)器也開(kāi)始大行其道。Java Servlet、Java Server Pages (JSP)和Enterprise Java Bean (EJB )是Java EE中的核心規(guī)范,Servlet和JSP是運(yùn)行在服務(wù)器端的Web組件,EJB運(yùn)行在服務(wù)器端的業(yè)務(wù)組件,是一種分布式組件技術(shù)。2000年隨之而來(lái)的.net平臺(tái),其ASP.net構(gòu)件化的Web開(kāi)發(fā)方式以及Visual Stidio.net開(kāi)發(fā)環(huán)境的強(qiáng)大支持,大大降低了開(kāi)發(fā)企業(yè)應(yīng)用的復(fù)雜度。ASP.Net第一次讓程序員可以像拖拽組件來(lái)創(chuàng)建Windows Form程序那樣來(lái)組件化地創(chuàng)建Web頁(yè)面,Java平臺(tái)后來(lái)出現(xiàn)的JSF也承襲了這一思想。兩大平臺(tái)在相互競(jìng)爭(zhēng)和模仿中不斷向前發(fā)展。

J2EE

框架橫飛的年代:MVC,ORM

兩大平臺(tái)誕生之后,組件化編程技術(shù)盛極一時(shí),Web技術(shù)的發(fā)展開(kāi)始了一段框架橫飛的年代,各種輔助Web開(kāi)發(fā)的技術(shù)框架層出不窮。雖然腳本語(yǔ)言大大提高了應(yīng)用開(kāi)發(fā)效率,但是試想一個(gè)復(fù)雜的大型Web應(yīng)用,訪問(wèn)各種功能的URL地址紛繁復(fù)雜,涉及到的Web頁(yè)面多種多樣,同時(shí)還管理著大量的后臺(tái)數(shù)據(jù),因此我們需要在架構(gòu)層面上解決維護(hù)性和擴(kuò)展性等問(wèn)題。這個(gè)時(shí)候,MVC的概念被引入到Web開(kāi)發(fā)中來(lái)了。2004年出現(xiàn)的Struts就是當(dāng)時(shí)非常流行的Java Web開(kāi)發(fā)的MVC框架。MVC早在1978年就作為Smalltalk的一種設(shè)計(jì)模式被提出來(lái)了,應(yīng)用到Web應(yīng)用上,模型Model用于封裝與業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)和數(shù)據(jù)處理方法,視圖View是數(shù)據(jù)的HTML展現(xiàn),控制器Controller負(fù)責(zé)響應(yīng)請(qǐng)求,協(xié)調(diào)Model和View。Model,View和Controller的分開(kāi),是一種典型的關(guān)注點(diǎn)分離的思想,不僅使得代碼復(fù)用性和組織性更好,使得Web應(yīng)用的配置性和靈活性更好。這是Spring MVC的示意圖,典型的MVC架構(gòu)。

Spring-MVC

此外,數(shù)據(jù)訪問(wèn)也逐漸通過(guò)面向?qū)ο蟮姆绞絹?lái)替代直接的SQL訪問(wèn),出現(xiàn)了ORM(Object Relation Mapping)的概念,2001年出現(xiàn)的Hibernate就是其中的佼佼者,已經(jīng)成為Java持久層的規(guī)范JPA的主要參考和實(shí)現(xiàn)。更多的全棧框架開(kāi)始出現(xiàn),比如2003年出現(xiàn)的Java開(kāi)發(fā)框架Spring,同時(shí)更多的動(dòng)態(tài)語(yǔ)言也被加入到Web編程語(yǔ)言的陣營(yíng)中,2004年出現(xiàn)的Ruby開(kāi)發(fā)框架Rails,2005出現(xiàn)的Python開(kāi)發(fā)框架Django,都提供了全棧開(kāi)發(fā)框架,或者自身提供Web開(kāi)發(fā)的各種組件,或者可以方便的集成各種組件。比如Spring基于IoC和AOP思想可以方便得整合出全套Web開(kāi)發(fā)組件,SSH(Struts+Spring+Hibernate)一度成為Java Web開(kāi)發(fā)的標(biāo)配。值得一提的時(shí)Rails這個(gè)MVC框架,26歲的丹麥大神David Heinemeier Hansson在開(kāi)發(fā)著名項(xiàng)目管理軟件BaseCamp的過(guò)程中形成,Ruby語(yǔ)言本身在快速開(kāi)發(fā)上的優(yōu)勢(shì),加上Rails諸如崇尚DRY(Don't)Repeat Yourself)原則, 約定優(yōu)于配置,擁抱REST等特性,使其迅速成為一個(gè)極其流行的Web開(kāi)發(fā)框架。

MVC

回歸Web本質(zhì):REST

注意,看到這里的時(shí)候,你會(huì)發(fā)現(xiàn)Web開(kāi)發(fā)的重點(diǎn)已經(jīng)不在于HTTP/HTML/URL這樣的Web基礎(chǔ)架構(gòu)了,而是各種平臺(tái)下的各種框架和組件技術(shù)(MVC/ORM/分布式組件技術(shù)等等)。所以今天很多人可能會(huì)用一個(gè)MVC框架構(gòu)建Web網(wǎng)站,但是可能并不了解Web本身。2000年的時(shí)候,Roy Fielding在他的博士論文中從構(gòu)架風(fēng)格的角度來(lái)剖析了Web本身,將Web內(nèi)在的設(shè)計(jì)原則和思路系統(tǒng)得論述出來(lái)。Roy Fielding是HTTP協(xié)議的主要設(shè)計(jì)者,也是Apache服務(wù)器項(xiàng)目的聯(lián)合創(chuàng)始人,他的這篇博士論文提出來(lái)的REST(Representation State Transformation)也成為一種流行的Web架構(gòu)風(fēng)格。REST鼓勵(lì)基于URL來(lái)組織系統(tǒng)功能,充分利用HTTP本身的語(yǔ)義,而不是僅僅將HTTP作為一種遠(yuǎn)程數(shù)據(jù)傳輸協(xié)議。Web應(yīng)用的開(kāi)發(fā)應(yīng)該回歸Web的本質(zhì)特征。Rails在發(fā)展過(guò)程中也完全擁抱REST,成為REST的堅(jiān)定支持者。有些人認(rèn)為REST和MVC是兩種對(duì)立的風(fēng)格,其實(shí)不盡然,兩者是互為補(bǔ)充的,從Rails是一個(gè)全面支持REST的MVC框架這一點(diǎn)就可窺見(jiàn)。

瀏覽器端的魔術(shù):AJAX

Web應(yīng)用同時(shí)涉及到瀏覽器端和服務(wù)器端,之前的介紹除了簡(jiǎn)單提到了CSS規(guī)范之外,主要關(guān)注的是服務(wù)器端的技術(shù)發(fā)展。在客戶端,1995年NetScape公司設(shè)計(jì)的JavaScript被用作瀏覽器上運(yùn)行腳本語(yǔ)言為網(wǎng)頁(yè)增加動(dòng)態(tài)性。微軟隨后推出類(lèi)似JScript,但是缺乏統(tǒng)一的語(yǔ)言規(guī)范,使得瀏覽器兼容性成為一個(gè)程序員的夢(mèng)魘。JavaScript最終被提交到歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA),做為中立的ECMA開(kāi)始了標(biāo)準(zhǔn)化腳本語(yǔ)言之路,并將其命名為ECMAScript。JavaScript可以響應(yīng)瀏覽器端的用戶事件,檢測(cè)表單的正確性,動(dòng)態(tài)修改HTML頁(yè)面結(jié)構(gòu)DOM,因此可以減少與服務(wù)器端的通信開(kāi)銷(xiāo),并且做出很酷的頁(yè)面動(dòng)態(tài)效果。?2005年出現(xiàn)的AJAX這個(gè)概念使得JavaScript再次大放異彩?。AJAX即“Asynchronous JavaScript and XML”(異步的JavaScript與XML技術(shù)),指的是一套綜合了多項(xiàng)技術(shù)的瀏覽器端網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),可以基于JavaScript的XmlHttpRequest的用于創(chuàng)建交互性更強(qiáng)?的Web應(yīng)用。AJAX是一種已有技術(shù)的mashup,多種技術(shù)組合在一起形成了其特色和優(yōu)勢(shì),早在1998年就已經(jīng)開(kāi)始有人使用。Google在地圖和Gmail等產(chǎn)品中對(duì)這項(xiàng)技術(shù)的深入應(yīng)用,以及AJAX這個(gè)吸引眼球的名字的提出,使其正式站在了聚光燈下,開(kāi)始吸引無(wú)數(shù)人的目光。我們知道Web應(yīng)用中用戶提交表單時(shí)就向Web服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器接收并處理傳來(lái)的表單,并返回一個(gè)新的網(wǎng)頁(yè)。而前后兩個(gè)頁(yè)面中的往往大部分HTML代碼是一樣的,每次都返回整個(gè)頁(yè)面內(nèi)容是一種帶寬資源的浪費(fèi)。而AJAX應(yīng)用僅向服務(wù)器發(fā)送并取回必須的數(shù)據(jù),并在客戶端采用JavaScript處理來(lái)自服務(wù)器響應(yīng),更新頁(yè)面的局部信息。這樣不僅瀏覽器和服務(wù)器的數(shù)據(jù)交換大大減少,而且客戶端也可以更加快速地響應(yīng)用戶操作。如果你用Gmail就應(yīng)該知道,Gmail從來(lái)都不刷新頁(yè)面,所有的請(qǐng)求都是通過(guò)AJAX獲取數(shù)據(jù)進(jìn)行局部更新。AJAX的出現(xiàn),以及諸如EXTJS、DOJO等一些前端開(kāi)發(fā)框架的出現(xiàn),也使得單頁(yè)應(yīng)用(Single Page Application)在這個(gè)時(shí)候流行起來(lái)。

AJAX

前端MVC:Angular/Backbone

這種模式下,前后端的分工非常清晰,前后端的關(guān)鍵協(xié)作點(diǎn)是 Ajax 接口,規(guī)定好交互接口后,前后端工程師就可以根據(jù)約定,分頭開(kāi)工,開(kāi)發(fā)環(huán)境中通過(guò)Mock等方式進(jìn)行測(cè)試,同時(shí)在特定時(shí)間節(jié)點(diǎn)進(jìn)行前后端集成測(cè)試。但是,隨著業(yè)務(wù)功能的愈發(fā)復(fù)雜(看看現(xiàn)在的Gmail),這種模式本質(zhì)上和JSP時(shí)代的Web開(kāi)發(fā)并無(wú)本質(zhì)區(qū)別,只不過(guò)是將復(fù)雜的業(yè)務(wù)邏輯從JSP文件轉(zhuǎn)移到了JavaScript文件中而已。現(xiàn)在,對(duì)于一個(gè)前端功能、交互復(fù)雜的SPA,JavaScript代碼很容易膨脹(超過(guò)10萬(wàn)行)。很自然地,像服務(wù)端從JSP向MVC框架轉(zhuǎn)換的過(guò)程一樣,前端開(kāi)發(fā)也出現(xiàn)了大量的MVC框架,比較典型的包括BackboneJS, AngularJS, EmberJS, KnockoutJS??偟膩?lái)說(shuō),MV*框架的提出是為了解決前端開(kāi)發(fā)的復(fù)雜度,提供一套規(guī)則組織代碼、分層(MVC),通過(guò)合理的組織和分層,前端的代碼職責(zé)明確、清晰,便于開(kāi)發(fā)與測(cè)試。

Frontend-MVC

JavaScript在服務(wù)器端的逆襲:Node

各大瀏覽器的競(jìng)爭(zhēng),使其引擎的性能不斷提升,至今Google V8引擎的性能已經(jīng)足以運(yùn)行大型Javascript程序。在V8之上加以網(wǎng)絡(luò)、文件系統(tǒng)等內(nèi)置模塊,形成了如今的Node.js。

隨著Node.js的出現(xiàn),JavaScript開(kāi)始擁有在服務(wù)端運(yùn)行的能力,它的異步本質(zhì)使得Node.js在處理I/O密集型業(yè)務(wù)中優(yōu)勢(shì)凸顯,而大多Web業(yè)務(wù)中I/O性能都是瓶頸。eBay、Yahoo、甚至Microsoft Azure紛紛引入Node.js以提升性能。Node.js的package每天都有幾千萬(wàn)的下載量。這對(duì)前端工程師來(lái)說(shuō)可是一個(gè)好消息,精通JavaScript的他們也能夠做服務(wù)端開(kāi)發(fā)了!雖然現(xiàn)實(shí)中并不是這樣美好(服務(wù)端開(kāi)發(fā)涉及的不僅僅是語(yǔ)言層面),但一種新的開(kāi)發(fā)模式也因此興起:瀏覽器端處理展現(xiàn)層邏輯、而服務(wù)端Controller這一層以及相關(guān)的模板渲染、路由、數(shù)據(jù)接口以及Session/Cookie先關(guān)處理實(shí)際上交給了Nodejs來(lái)做。通過(guò)Nodejs, 意味著前后端很多代碼可以復(fù)用(例如數(shù)據(jù)驗(yàn)證邏輯),在需要SEO的場(chǎng)景下也可以選擇服務(wù)端模板渲染。

但另一方面,JavaScript剛被引入到服務(wù)器端開(kāi)發(fā),其生態(tài)環(huán)境還未成熟,甚至大量的常用package主版本號(hào)都是0。長(zhǎng)期用來(lái)實(shí)現(xiàn)頁(yè)面邏輯,天生自由的JavaScript,在服務(wù)器端開(kāi)發(fā)中,仍未形成統(tǒng)一的開(kāi)發(fā)范型。不同開(kāi)發(fā)原則和編碼風(fēng)格的應(yīng)用,都將對(duì)Node.js項(xiàng)目的性能、可維護(hù)性產(chǎn)生重大影響?,F(xiàn)在而言,服務(wù)器端javascript開(kāi)發(fā)究竟是魔鬼還是天使,仍取決于團(tuán)隊(duì)中的開(kāi)發(fā)者。

Node

結(jié)語(yǔ)

Web技術(shù)依然在快速發(fā)展,Web本身的基礎(chǔ)規(guī)范也在不斷完善,HTML5和CSS3引入了更多激動(dòng)人心的特性?;仡橶eb的發(fā)展歷史,從某個(gè)角度看,就是抽象層次不斷提高的一個(gè)過(guò)程,更高的抽象層次屏蔽更低層的復(fù)雜性,從而提高開(kāi)發(fā)效率。每當(dāng)技術(shù)發(fā)展到一定程度,出現(xiàn)某些局限性的時(shí)候,就會(huì)有更優(yōu)秀的技術(shù)出現(xiàn)來(lái)突破這些局限性。其實(shí)這是計(jì)算機(jī)技術(shù)發(fā)展的一個(gè)普遍規(guī)律,比如高級(jí)語(yǔ)言的出現(xiàn)屏蔽了匯編語(yǔ)言的復(fù)雜性,幫助我們更快速的編程;數(shù)據(jù)庫(kù)技術(shù)的出現(xiàn)使得我們無(wú)需關(guān)心物理存儲(chǔ)和訪問(wèn)細(xì)節(jié),寫(xiě)簡(jiǎn)單的SQL語(yǔ)句就能搞定,更進(jìn)一步,ORM框架使得我們通過(guò)一條語(yǔ)句調(diào)用一個(gè)類(lèi)的一個(gè)方法就能方便就行數(shù)據(jù)操作。我們應(yīng)該讓自己的技術(shù)視野具備一定的高度和廣度,看到一門(mén)技術(shù)的發(fā)展規(guī)律和發(fā)展歷程,這是一種技術(shù)修養(yǎng)的體現(xiàn),其實(shí)跟人文修養(yǎng)是一樣的。同時(shí)也應(yīng)該具有一定的深度,因?yàn)槲覀兺驹诒容^高的抽象層次,比如今天你寫(xiě)幾行代碼就能把數(shù)據(jù)庫(kù)創(chuàng)建好,增刪改查的功能也自動(dòng)生成好了,但是成為高手需要你對(duì)底層的原理機(jī)制有更透徹的理解,真正遇到問(wèn)題的時(shí)候才能抽絲剝繭迎刃而解。

歡迎關(guān)注公眾號(hào):

相關(guān)案例查看更多