web程序開發(fā)概述

2024-03-23    分類: 網(wǎng)站建設(shè)

說到web程序開發(fā),必須先來說說什么是web應(yīng)用程序。

Web應(yīng)用程序是互聯(lián)網(wǎng)的產(chǎn)物。網(wǎng)絡(luò)誕生以前,軟件程序只能部署在單機(jī)上。局域網(wǎng)發(fā)明后,客戶端/服務(wù)器端(即c/s模式)的程序架構(gòu)模式成為主流,隨著Internet和WWW的流行,以往的主機(jī)/終端和C/S都無法滿足當(dāng)前的全球網(wǎng)絡(luò)開放、互連、信息隨處可見和信息共享的新要求,于是就出現(xiàn)了B/S型模式,即瀏覽器/服務(wù)器結(jié)構(gòu)。它是C/S架構(gòu)的一種改進(jìn),可以說屬于三層C/S架構(gòu)。主要是利用了不斷成熟的WWW瀏覽器技術(shù),用通用瀏覽器就實(shí)現(xiàn)了原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。通俗來講,web程序是一種運(yùn)行在互聯(lián)網(wǎng)上的程序,它借助瀏覽器來運(yùn)行,通過Web來訪問。Web應(yīng)用程序大好處是用戶只需要有瀏覽器就可以訪問,不需要再安裝其他軟件。

B/S模式是web程序的重中之重,理解了B/S模式就理解了web程序,所以我們要著重講講,下圖是B/S的架構(gòu)圖:

相對(duì)于其他幾種應(yīng)用程序體系結(jié)構(gòu),B/S架構(gòu)的web應(yīng)用程序大的優(yōu)點(diǎn)是總體擁有成本低、維護(hù)方便、 分布性強(qiáng)、開發(fā)簡(jiǎn)單,可以不用安裝任何專門的軟件就能 實(shí)現(xiàn)在任何地方進(jìn)行操作,客戶端零維護(hù),系統(tǒng)的擴(kuò)展非常容易,只要有一臺(tái)能上網(wǎng)的電腦就能使用。傳統(tǒng)的C/S架構(gòu)如果部署的客戶端比較多,系統(tǒng)管理人員如果需要在眾多電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構(gòu)的軟件只需要管理服務(wù)器就行了,所有的客戶端只是瀏覽器,需要做的維護(hù)非常少。無論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的操作只需要針對(duì)服務(wù)器進(jìn)行;如果是異地,只需要把服務(wù)器連接專網(wǎng)即可,實(shí)現(xiàn)遠(yuǎn)程維護(hù)、升級(jí)和共享。

當(dāng)然,Web應(yīng)用程序首先是應(yīng)用程序,和用標(biāo)準(zhǔn)的程序語(yǔ)言,如C、C++、DELPHI等語(yǔ)言編寫出來的程序沒有什么本質(zhì)上的不同。

下面我重點(diǎn)來說說web開發(fā)技術(shù)的演化

靜態(tài)網(wǎng)頁(yè)的誕生(HTML)

1989年,在歐洲粒子物理實(shí)驗(yàn)室的IT部門工作的Tim Berners-Lee向其領(lǐng)導(dǎo)提出了一項(xiàng)名為Information Management: A Proposal的提議:使來自世界各地的遠(yuǎn)程站點(diǎn)的研究人員能夠組織和匯集信息,在個(gè)人計(jì)算機(jī)上訪問大量的科研文獻(xiàn),并建議在文檔中鏈接其他文檔,這就是Web的原型。1991年,Tim Berners Lee在alt.hypertext新聞組貼出了一份關(guān)于World Wide Web的簡(jiǎn)單摘要,標(biāo)志了Web頁(yè)面在Internet上的首次登場(chǎng)。最早Web主要被一幫科學(xué)家們用來共享和傳遞信息,全世界的Web服務(wù)器也就幾十臺(tái)。第一個(gè)Web瀏覽器是Berners Lee在NeXT機(jī)器上實(shí)現(xiàn),也只能跑在NeXT機(jī)器上,蘋果和喬布斯的粉絲對(duì)NeXT的歷史肯定耳熟能詳。真正使得Web開始流行起來的是Mosaic瀏覽器,這便是曾經(jīng)大名鼎鼎的Netscape Navigator的前身。Berners Lee在1993年建立了萬維網(wǎng)聯(lián)盟(World Wide Web Consortium,W3C),負(fù)責(zé)Web相關(guān)標(biāo)準(zhǔn)的制定。瀏覽器的普及和W3C的推動(dòng),使得Web上可以訪問的資源逐漸豐富起來。這個(gè)時(shí)候Web的主要功能就是瀏覽器向服務(wù)器請(qǐng)求靜態(tài)HTML信息。95年的時(shí)候馬云在美國(guó)看到了互聯(lián)網(wǎng),更準(zhǔn)確的說他其實(shí)看到的就是Web,阿里早先做的黃頁(yè)也就是把企業(yè)信息通過進(jìn)行HTML展示的Web應(yīng)用。

在互聯(lián)網(wǎng)早期,網(wǎng)站只是簡(jiǎn)單的信息呈現(xiàn),網(wǎng)民不能與網(wǎng)站互動(dòng),通俗的說就是能看不能寫,后來人們把這個(gè)時(shí)期叫做web1.0時(shí)代。

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

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

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

為了使得Web更加充滿活力,以PHP、JSP、ASP.NET為代表的動(dòng)態(tài)頁(yè)面技術(shù)相繼誕生。這個(gè)時(shí)候我們已經(jīng)可以在Web上提供動(dòng)態(tài)功能了,比如網(wǎng)站訪問的計(jì)數(shù),表單的處理。CGI對(duì)每個(gè)請(qǐng)求都會(huì)啟動(dòng)一個(gè)進(jìn)程來處理,因此性能上的擴(kuò)展性不高。另外,想象一下用在Perl和C語(yǔ)言中的程序中去輸出一大堆復(fù)雜的HTML字符串,是不是有點(diǎn)蛋疼,可讀性和維護(hù)性是個(gè)大問題。為了處理更復(fù)雜的應(yīng)用,一種方法是把HTML返回中固定的部分存起來(我們稱之為模版),把動(dòng)態(tài)的部分標(biāo)記出來,Web請(qǐng)求處理的時(shí)候,你的程序先生成那部分動(dòng)態(tài)的內(nèi)容,再把模版讀入進(jìn)來,把動(dòng)態(tài)內(nèi)容填充進(jìn)去,形成最終返回。舉個(gè)例子,搜索一個(gè)關(guān)鍵詞,搜索引擎的Web服務(wù)器可以先從后臺(tái)索引服務(wù)器里拿到數(shù)據(jù),然后把這些數(shù)據(jù)填充到返回結(jié)果的HTML模版中,返回給瀏覽器。但是這件事情自己來做顯然太繁瑣而且是重復(fù)勞動(dòng)。于是1994年的時(shí)候,PHP誕生了,PHP可以把程序(動(dòng)態(tài)內(nèi)容)嵌入到HTML(模版)中去執(zhí)行,不僅能更好的組織Web應(yīng)用的內(nèi)容,而且執(zhí)行效率比CGI還更高。之后

PHP(PHP:Hypertext Preprocessor)最初是由Rasmus Lerdorf在1995年開始開發(fā)的,現(xiàn)在PHP的標(biāo)準(zhǔn)由PHP Group維護(hù)。PHP是一種開源的通用計(jì)算機(jī)腳本語(yǔ)言,尤其適用于網(wǎng)絡(luò)開發(fā)并可嵌入HTML中使用。PHP的語(yǔ)法借鑒吸收C語(yǔ)言、Java和Perl等流行計(jì)算機(jī)語(yǔ)言的特點(diǎn),易于一般程序員學(xué)習(xí)。PHP的主要目標(biāo)是允許網(wǎng)絡(luò)開發(fā)人員快速編寫動(dòng)態(tài)頁(yè)面。

JSP(JavaServer Pages)是由Sun公司倡導(dǎo)和許多公司參與共同創(chuàng)建的一種使軟件開發(fā)者可以響應(yīng)客戶端請(qǐng)求,從而動(dòng)態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁(yè)的技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是以Java語(yǔ)言為基礎(chǔ)的。1999年,JSP1.2規(guī)范隨著J2EE1.2發(fā)布。

ASP(Active Server Pages)1.0是Microsoft(微軟公司)開發(fā)的服務(wù)器端腳本環(huán)境,可用來創(chuàng)建動(dòng)態(tài)交互式網(wǎng)頁(yè)并建立強(qiáng)大的web應(yīng)用程序。 在1996年隨著IIS 3.0 而發(fā)布。2002年,ASP.NET發(fā)布,用于替代ASP。

隨著這些動(dòng)態(tài)服務(wù)器頁(yè)面技術(shù)的出現(xiàn),頁(yè)面不再是靜止的,頁(yè)面可以獲取服務(wù)器數(shù)據(jù)信息并不斷更新。以Google為代表的搜索引擎以及各種論壇相繼出現(xiàn),使得Web充滿了活力。

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

Web開始廣泛用于構(gòu)建大型應(yīng)用時(shí),在分布式、安全性、事務(wù)性等方面的要求催生了J2EE(現(xiàn)在已更名為Java EE)平臺(tái)在1999年的誕生,從那時(shí)開始為企業(yè)應(yīng)用提供支撐平臺(tái)的各種應(yīng)用服務(wù)器也開始大行其道。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ù)。

從Web誕生至2005年,一直處于后端重、前端輕的狀態(tài)。

前端技術(shù)的發(fā)展:

XHTML

1999 W3C 發(fā)布 HTML 4.01 標(biāo)準(zhǔn),同年微軟推出用于異步數(shù)據(jù)傳輸?shù)?ActiveX,隨即各大瀏覽器廠商模仿實(shí)現(xiàn)了 XMLHttpRequest(AJAX 雛形)。

2000: W3C 采用了一個(gè)大膽的計(jì)劃,把 XML 引入 HTML,XHTML1.0 作為 W3C 推薦標(biāo)準(zhǔn)發(fā)布

2001.5 W3C 推出了 CSS 3.0 規(guī)范草案

2002-2006 XHTML 2.0 最終放棄

2009 W3C 宣布 XHTML2.0 不再繼續(xù),宣告死亡

JavaScript

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)性。微軟隨后推出類似JScript,但是缺乏統(tǒng)一的語(yǔ)言規(guī)范,使得瀏覽器兼容性成為一個(gè)程序員的夢(mèng)魘。JavaScript最終被提交到歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA),做為中立的ECMA開始了標(biāo)準(zhǔn)化腳本語(yǔ)言之路,并將其命名為ECMAScript。JavaScript可以響應(yīng)瀏覽器端的用戶事件,檢測(cè)表單的正確性,動(dòng)態(tài)修改HTML頁(yè)面結(jié)構(gòu)DOM,因此可以減少與服務(wù)器端的通信開銷,并且做出很酷的頁(yè)面動(dòng)態(tài)效果。2005年出現(xiàn)的AJAX這個(gè)概念使得JavaScript再次大放異彩。

ECMAScript6

JavaScript語(yǔ)言是ECMAScript標(biāo)準(zhǔn)的一種實(shí)現(xiàn),截止2017年2月,ECMAScript一共發(fā)布了7個(gè)版本。

1997年6月, ECMAScript 1.0標(biāo)準(zhǔn)發(fā)布。

1998年6月,ECMAScript 2.0發(fā)布。

1999年12月,ECMAScript 3.0發(fā)布。

2007年10月,Mozilla主張的ECMAScript 4.0版草案發(fā)布,對(duì)3.0版做了大幅升級(jí),該草案遭到了以Yahoo、Microsoft、Google為首的大公司的強(qiáng)烈反對(duì),JavaScript語(yǔ)言的創(chuàng)造者Brendan Eich和IE架構(gòu)師Chris Wilson甚至在博客上就ES4向后兼容性問題打起了口水仗,最后由于各方分歧太大,ECMA開會(huì)決定廢棄中止ECMAScript 4.0草案。經(jīng)各方妥協(xié),在保證向下兼容的情況下,將部分增強(qiáng)的功能放到ECMAScript 3.1標(biāo)準(zhǔn)中,將原有ECMAScript 4.0草案中激進(jìn)的功能放到以后的標(biāo)準(zhǔn)中。不久,ECMAScript 3.1就改名為ECMAScript 5。

2009年12月,本著Don’t break the web原則,ECMAScript 5發(fā)布。新增了strict模式、屬性getter和setter等。

2011年6月,ECMAScript 5.1發(fā)布。

2015年6月,ECMAScript 6.0發(fā)布。該版本增加了許多新的語(yǔ)法,包括支持let、const、Arrow function、Class、Module、Promise、Iterator、Generator、Set、Map、async、Symbol、Proxy、Reflect、Decorator等。TC39委員會(huì)計(jì)劃以后每年都發(fā)布一個(gè)新版本的ECMAScript,所以ECMAScript 6.0改名為ECMAScript 2015。

2016年6月,在ECMAScript 2015的基礎(chǔ)上進(jìn)行了部分增強(qiáng),發(fā)布了ECMAScript 2016。

在ECMAScript的各個(gè)版本中,ECMAScript 6.0無疑最受人矚目的,它增加了許多新特性,極大拓展了JavaScript語(yǔ)法和能力,以至于許多瀏覽器都只能支持部分ES6中的新特性。隨之,Babel和TypeScript逐漸流行起來,編寫ES6代碼,然后用Babel或TypeScript將其編譯為ES5等瀏覽器支持的JavaScript。

ECMAScript以后每年將會(huì)發(fā)布一個(gè)新版本,這無疑將持續(xù)促使瀏覽器廠商不斷為JavaScript注入新的功能與特性,JavaScript走上了快速發(fā)展的正軌。

javascript技術(shù)發(fā)展的過程中出現(xiàn)了很多優(yōu)秀的類庫(kù)和組件,其中,jQuery獨(dú)領(lǐng)風(fēng)騷,幾乎成了所有網(wǎng)站的標(biāo)配。Dojo、YUI、ExtJS等提供了很多組件,這使得開發(fā)復(fù)雜的企業(yè)級(jí)Web應(yīng)用成為可能。

AJAX

在Web最初發(fā)展的階段,前端頁(yè)面要想獲取后臺(tái)信息需要刷新整個(gè)頁(yè)面,這是很糟糕的用戶體驗(yàn)。

AJAX即Asynchronous JavaScript and XML(異步的JavaScript與XML技術(shù)),指的是一套綜合了多項(xiàng)技術(shù)的瀏覽器端網(wǎng)頁(yè)開發(fā)技術(shù),可以基于JavaScript的XmlHttpRequest的用于創(chuàng)建交互性更強(qiáng)的Web應(yīng)用。AJAX是一種已有技術(shù)的mashup,多種技術(shù)組合在一起形成了其特色和優(yōu)勢(shì),早在1998年就已經(jīng)開始有人使用。Google在地圖和Gmail等產(chǎn)品中對(duì)這項(xiàng)技術(shù)的深入應(yīng)用,以及AJAX這個(gè)吸引眼球的名字的提出,使其正式站在了聚光燈下,開始吸引無數(shù)人的目光。我們知道Web應(yīng)用中用戶提交表單時(shí)就向Web服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器接收并處理傳來的表單,并返回一個(gè)新的網(wǎng)頁(yè)。而前后兩個(gè)頁(yè)面中的往往大部分HTML代碼是一樣的,每次都返回整個(gè)頁(yè)面內(nèi)容是一種帶寬資源的浪費(fèi)。而AJAX應(yīng)用僅向服務(wù)器發(fā)送并取回必須的數(shù)據(jù),并在客戶端采用JavaScript處理來自服務(wù)器響應(yīng),更新頁(yè)面的局部信息。這樣不僅瀏覽器和服務(wù)器的數(shù)據(jù)交換大大減少,而且客戶端也可以更加快速地響應(yīng)用戶操作。如果你用Gmail就應(yīng)該知道,Gmail從來都不刷新頁(yè)面,所有的請(qǐng)求都是通過AJAX獲取數(shù)據(jù)進(jìn)行局部更新。AJAX的出現(xiàn),以及諸如EXTJS、DOJO等一些前端開發(fā)框架的出現(xiàn),也使得單頁(yè)應(yīng)用(Single Page Application)在這個(gè)時(shí)候流行起來。

隨著AJAX的流行,越來越多的網(wǎng)站使用AJAX動(dòng)態(tài)獲取數(shù)據(jù),這使得動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容變成可能,像Facebook這樣的社交網(wǎng)絡(luò)開始變得繁榮起來,前端一時(shí)間呈現(xiàn)出了欣欣向榮的局面。

AJAX使得瀏覽器客戶端可以更方便地向服務(wù)器發(fā)送數(shù)據(jù)信息,這促進(jìn)了Web 2.0的發(fā)展。

HTML5

1999年,W3C發(fā)布了HTML 4.0.1版本,在之后的幾年,沒有再發(fā)布更新的Web標(biāo)準(zhǔn)。隨著Web的迅猛發(fā)展,舊的Web標(biāo)準(zhǔn)已不能滿足Web應(yīng)用的快速增長(zhǎng)。

2004年6月,Mozilla基金會(huì)和Opera軟件公司在萬維網(wǎng)聯(lián)盟(W3C)所主辦的研討會(huì)上提出了一份聯(lián)合建議書,其中包括Web Forms 2.0的初步規(guī)范草案。建議舉行一次投票,以表決W3C是否應(yīng)該擴(kuò)展HTML和DOM,從而滿足Web應(yīng)用中的新需求。研討會(huì)最后以8票贊成,14票反對(duì)否決此建議,這引起一些人的不滿,不久后,部分瀏覽器廠商宣布成立網(wǎng)頁(yè)超文本技術(shù)工作小組(WHATWG),以繼續(xù)推動(dòng)該規(guī)范的開發(fā)工作,該組織再度提出Web Applications 1.0規(guī)范草案,后來這兩種規(guī)范合并形成HTML5。2007年,獲得W3C接納,并成立了新的HTML工作團(tuán)隊(duì)。2008年1月22日,第一份正式草案發(fā)布。

盡管HTML5在網(wǎng)絡(luò)開發(fā)人員中非常出名了,但是它成為主流媒體的一個(gè)話題是在2010年的4月,當(dāng)時(shí)蘋果公司的CEO喬布斯發(fā)表一篇題為對(duì)Flash的思考的文章,指出隨著HTML5的發(fā)展,觀看視頻或其它內(nèi)容時(shí),Adobe Flash將不再是必須的。這引發(fā)了開發(fā)人員間的爭(zhēng)論,包括HTML5雖然提供了加強(qiáng)的功能,但開發(fā)人員必須考慮到不同瀏覽器對(duì)標(biāo)準(zhǔn)不同部分的支持程度的不同,以及HTML5和Flash間的功能差異。

在第二次瀏覽器大戰(zhàn)中,各個(gè)瀏覽器廠商都以提升JavaScript運(yùn)行效率和支持HTML5各種新特性為主要目標(biāo),促進(jìn)了瀏覽器的良性競(jìng)爭(zhēng)。

Node.js的爆發(fā)

早在1994年,Netspace就公布了其Netspace Enterprise Server中的一種服務(wù)器腳本實(shí)現(xiàn),叫做LiveWire,是最早的服務(wù)器端JavaScript,甚至早于瀏覽器中的JavaScript。對(duì)于這門圖靈完備的語(yǔ)言,Netspace很早就開始嘗試將它用在后端。

微軟在1996年發(fā)布的IE 3.0中內(nèi)嵌了自己的JScript語(yǔ)言,其兼容JavaScript語(yǔ)法。1997年年初,微軟在它的服務(wù)器IIS 3.0中也包含了JScript,這就是我們?cè)贏SP中能使用的腳本語(yǔ)言。

1997年,Netspace為了用Java實(shí)現(xiàn)JavaScript而創(chuàng)建了Rhino項(xiàng)目,最終Rhino演變成一個(gè)基于Java實(shí)現(xiàn)的JavaScript引擎,由Mozilla維護(hù)并開源。Rhino可以為Java應(yīng)用程序提供腳本能力。2006年12月,J2SE 6將Rhino作為Java默認(rèn)的腳本引擎。

SpiderMonkey是Mozilla用C/C++語(yǔ)言實(shí)現(xiàn)的一個(gè)JavaScript引擎,從Firefox 3.5開始作為JavaScript編譯引擎,并被CouchDB等項(xiàng)目作為服務(wù)端腳本語(yǔ)言使用。

可以看到,JavaScript最開始就能同時(shí)運(yùn)行在前后端,但是在前后端的待遇卻不盡相同。隨著Java、PHP、.Net等服務(wù)器端技術(shù)的風(fēng)靡,與前端瀏覽器中的JavaScript越來越流行相比,服務(wù)端JavaScript逐漸式微。

Node.js的出現(xiàn)吸引了很多前端開發(fā)人員開始用JavaScript開發(fā)服務(wù)器代碼,其異步編程風(fēng)格也深受開發(fā)人員的喜愛。Node.js的偉大不僅在于拓展了JavaScript在服務(wù)器端的無限可能,更重要的是它構(gòu)建了一個(gè)龐大的生態(tài)系統(tǒng)。2010年1月,NPM作為Node.js的包管理系統(tǒng)首次發(fā)布。開發(fā)人員可以按照CommonJS的規(guī)范編寫Node.js模塊,然后將其發(fā)布到NPM上面供其他開發(fā)人員使用。目前NPM具有40萬左右的模塊,是世界上大的包模塊管理系統(tǒng)。2016年常見包管理系統(tǒng)模塊數(shù)量,NPM高居榜首

Node.js也催生了node-webkit等項(xiàng)目,用JavaScript開發(fā)跨平臺(tái)的桌面軟件也成為可能。Node.js給開發(fā)人員帶來了無窮的想象,JavaScript大有一統(tǒng)天下的趨勢(shì)。

前后端分離 (前端框架+后端MVC+WebAPI)

后端框架主要分為j:ava和.NET兩大平臺(tái)

現(xiàn)今最流行的框架:

java架:SSM(spring+springmvc+mybatis)

前端MMVM框架

隨著開發(fā)人員對(duì)前端技術(shù)的重視和html5等技術(shù)的流行,前端不再是人們眼中的小玩意,以前在C/S中實(shí)現(xiàn)的桌面軟件的功能逐步遷移到了前端,前端的代碼邏輯逐漸變得復(fù)雜起來。

移動(dòng)Web和Hybrid App

移動(dòng)瀏覽器對(duì)HTML5支持程度(2009-2017)

移動(dòng)瀏覽器的發(fā)展,導(dǎo)致了流量入口逐漸從PC分流到移動(dòng)平臺(tái),這是Web發(fā)展的新機(jī)遇。移動(dòng)Web面臨著更大的碎片化和兼容性問題,jQuery Mobile、,Sencha Touch、Framework7、Ionic,bootstrap等移動(dòng)Web框架、響應(yīng)式框架也隨之出現(xiàn)。

相比于Native App,移動(dòng)Web開發(fā)成本低、跨平臺(tái)、發(fā)布周期短的優(yōu)勢(shì)愈發(fā)明顯,但是Native App的性能和UI體驗(yàn)要遠(yuǎn)勝于移動(dòng)Web。移動(dòng)Web與Native App孰優(yōu)孰劣的爭(zhēng)論愈演愈烈,在無數(shù)開發(fā)者的實(shí)踐中,人們發(fā)現(xiàn)兩者不是替代關(guān)系,而是應(yīng)該將兩者結(jié)合起來,取長(zhǎng)補(bǔ)短,Hybrid技術(shù)逐漸得到認(rèn)同。Hybrid技術(shù)指的是利用Web開發(fā)技術(shù),調(diào)用Native相關(guān)API,實(shí)現(xiàn)移動(dòng)與Web二者的有機(jī)結(jié)合,既能體現(xiàn)Web開發(fā)周期短的優(yōu)勢(shì),又能為用戶提供Native體驗(yàn)。

結(jié)語(yǔ)

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

非常感謝您讀完創(chuàng)新互聯(lián)的這篇文章:"web程序開發(fā)概述",僅為提供更多信息供用戶參考使用或?yàn)閷W(xué)習(xí)交流的方便。我們公司提供:網(wǎng)站建設(shè)、網(wǎng)站制作、官網(wǎng)建設(shè)、SEO優(yōu)化、小程序制作等服務(wù),歡迎聯(lián)系我們提供您的需求。

網(wǎng)站標(biāo)題:web程序開發(fā)概述
分享路徑:http://www.muchs.cn/news16/321516.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、軟件開發(fā)、標(biāo)簽優(yōu)化、外貿(mào)建站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司