爲(wéi / wèi)什麽php開發網站比javaweb簡單很多很多,javaweb卻還占有很大(dà)市場? - 請在(zài)web發 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 網站建設 >

爲(wéi / wèi)什麽php開發網站比javaweb簡單很多很多,javaweb卻還占有很大(dà)市場? - 請在(zài)web發

發表時(shí)間:2017-2-16

發布人(rén):融晨科技

浏覽次數:48

Web的(de)誕生

提到(dào)Web,不(bù)得不(bù)提一個(gè)詞就(jiù)是(shì)“互聯網”。Web是(shì)World Wide Web的(de)簡稱,中文譯爲(wéi / wèi)萬維網。“萬維網”和(hé / huò)我們經常說(shuō)的(de)“互聯網”是(shì)兩個(gè)聯系極其緊密但卻不(bù)盡相同的(de)概念。今天“互聯網”三個(gè)字已經承載了(le/liǎo)太多的(de)内涵,提到(dào)互聯網,我們通常想到(dào)的(de)一種戰略思維,或者是(shì)一種颠覆傳統的(de)商業模式。抛開那些紛繁淩亂的(de)商業化概念,回歸技術本身,互聯網就(jiù)是(shì)指通過TCP/IP協議族互相連接在(zài)一起的(de)計算機網絡。而(ér)Web是(shì)運行在(zài)互聯網上(shàng)的(de)一個(gè)超大(dà)規模的(de)分布式系統。Web設計初衷是(shì)一個(gè)靜态信息資源發布媒介,通過超文本标記語言(HTML)描述信息資源,通過統一資源标識符(URI)定位信息資源,通過超文本轉移協議(HTTP)請求信息資源。HTML、URL和(hé / huò)HTTP三個(gè)規範構成了(le/liǎo)Web的(de)核心體系結構,是(shì)支撐着Web運行的(de)基石。用通俗的(de)一點的(de)話來(lái)說(shuō),客戶端(一般爲(wéi / wèi)浏覽器)通過URL找到(dào)網站(如www.google.com),發出(chū)HTTP請求,服務器收到(dào)請求後返回HTML頁面。可見,Web是(shì)基于(yú)TCP/IP協議的(de),TCP/IP協議把計算機連接在(zài)一起,而(ér)Web在(zài)這(zhè)個(gè)協議族之(zhī)上(shàng),進一步将計算機的(de)信息資源連接在(zài)一起,形成我們說(shuō)的(de)萬維網。大(dà)家開發的(de)Web應用本質上(shàng)就(jiù)是(shì)可以(yǐ)提供信息或者功能的(de)Web資源,成爲(wéi / wèi)Web這(zhè)個(gè)全球超大(dà)規模分布式系統中的(de)一部分。在(zài)技術層面進一步理解Web和(hé / huò)互聯網,建議找一本計算機網絡的(de)書去看看,了(le/liǎo)解一下計算機網絡的(de)分層結構和(hé / huò)發展曆史。

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

Static-Page

動态内容的(de)出(chū)現:CGI

最初在(zài)浏覽器中主要(yào / yāo)展現的(de)是(shì)靜态的(de)文本或圖像信息,GIF圖片則第一次爲(wéi / wèi)HTML頁面引入了(le/liǎo)動态元素。不(bù)過人(rén)們已經不(bù)僅僅滿足于(yú)訪問放在(zài)Web服務器上(shàng)的(de)靜态文件,1993年CGI(Common Gateway Interface)出(chū)現了(le/liǎo),Web上(shàng)的(de)動态信息服務開始蓬勃興起。CGI定義了(le/liǎo)Web服務器與外部應用程序之(zhī)間的(de)通信接口标準,因此Web服務器可以(yǐ)通過CGI執行外部程序,讓外部程序根據Web請求内容生成動态的(de)内容。Perl因爲(wéi / wèi)跨操作系統和(hé / huò)易于(yú)修改的(de)特性成爲(wéi / wèi)CGI的(de)主要(yào / yāo)編寫語言。當然,CGI可以(yǐ)用任何支持标準輸入輸出(chū)和(hé / huò)環境變量的(de)語言編寫,比如Shell腳本,C/C++語言,隻要(yào / yāo)符合接口标準即可。比如你用C語言編寫CGI程序,你把希望返回的(de)HTML内容通過printf輸出(chū)就(jiù)可以(yǐ)發送給Web服務器,進而(ér)返回給用戶。

CGI

Web編程腳本語言:PHP/ASP/JSP

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

PHP

分布式企業計算平台:J2EE/.Net

Web開始廣泛用于(yú)構建大(dà)型應用時(shí),在(zài)分布式、安全性、事務性等方面的(de)要(yào / yāo)求催生了(le/liǎo)J2EE(現在(zài)已更名爲(wéi / wèi)Java EE)平台在(zài)1999年的(de)誕生,從那時(shí)開始爲(wéi / wèi)企業應用提供支撐平台的(de)各種應用服務器也(yě)開始大(dà)行其道(dào)。Java Servlet、Java Server Pages (JSP)和(hé / huò)Enterprise Java Bean (EJB )是(shì)Java EE中的(de)核心規範,Servlet和(hé / huò)JSP是(shì)運行在(zài)服務器端的(de)Web組件,EJB運行在(zài)服務器端的(de)業務組件,是(shì)一種分布式組件技術。2000年随之(zhī)而(ér)來(lái)的(de).net平台,其ASP.net構件化的(de)Web開發方式以(yǐ)及Visual Stidio.net開發環境的(de)強大(dà)支持,大(dà)大(dà)降低了(le/liǎo)開發企業應用的(de)複雜度。ASP.Net第一次讓程序員可以(yǐ)像拖拽組件來(lái)創建Windows Form程序那樣來(lái)組件化地(dì / de)創建Web頁面,Java平台後來(lái)出(chū)現的(de)JSF也(yě)承襲了(le/liǎo)這(zhè)一思想。兩大(dà)平台在(zài)相互競争和(hé / huò)模仿中不(bù)斷向前發展。

J2EE

框架橫飛的(de)年代:MVC,ORM

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

Spring-MVC

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

MVC

回歸Web本質:REST

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

浏覽器端的(de)魔術:AJAX

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

AJAX

前端MVC:Angular/Backbone

這(zhè)種模式下,前後端的(de)分工非常清晰,前後端的(de)關鍵協作點是(shì) Ajax 接口,規定好交互接口後,前後端工程師就(jiù)可以(yǐ)根據約定,分頭開工,開發環境中通過Mock等方式進行測試,同時(shí)在(zài)特定時(shí)間節點進行前後端集成測試。但是(shì),随着業務功能的(de)愈發複雜(看看現在(zài)的(de)Gmail),這(zhè)種模式本質上(shàng)和(hé / huò)JSP時(shí)代的(de)Web開發并無本質區别,隻不(bù)過是(shì)将複雜的(de)業務邏輯從JSP文件轉移到(dào)了(le/liǎo)JavaScript文件中而(ér)已。現在(zài),對于(yú)一個(gè)前端功能、交互複雜的(de)SPA,JavaScript代碼很容易膨脹(超過10萬行)。很自然地(dì / de),像服務端從JSP向MVC框架轉換的(de)過程一樣,前端開發也(yě)出(chū)現了(le/liǎo)大(dà)量的(de)MVC框架,比較典型的(de)包括BackboneJS, AngularJS, EmberJS, KnockoutJS。總的(de)來(lái)說(shuō),MV*框架的(de)提出(chū)是(shì)爲(wéi / wèi)了(le/liǎo)解決前端開發的(de)複雜度,提供一套規則組織代碼、分層(MVC),通過合理的(de)組織和(hé / huò)分層,前端的(de)代碼職責明确、清晰,便于(yú)開發與測試。

Frontend-MVC

JavaScript在(zài)服務器端的(de)逆襲:Node

各大(dà)浏覽器的(de)競争,使其引擎的(de)性能不(bù)斷提升,至今Google V8引擎的(de)性能已經足以(yǐ)運行大(dà)型Javascript程序。在(zài)V8之(zhī)上(shàng)加以(yǐ)網絡、文件系統等内置模塊,形成了(le/liǎo)如今的(de)Node.js。

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

但另一方面,JavaScript剛被引入到(dào)服務器端開發,其生态環境還未成熟,甚至大(dà)量的(de)常用package主版本号都是(shì)0。長期用來(lái)實現頁面邏輯,天生自由的(de)JavaScript,在(zài)服務器端開發中,仍未形成統一的(de)開發範型。不(bù)同開發原則和(hé / huò)編碼風格的(de)應用,都将對Node.js項目的(de)性能、可維護性産生重大(dà)影響。現在(zài)而(ér)言,服務器端javascript開發究竟是(shì)魔鬼還是(shì)天使,仍取決于(yú)團隊中的(de)開發者。

Node

結語

Web技術依然在(zài)快速發展,Web本身的(de)基礎規範也(yě)在(zài)不(bù)斷完善,HTML5和(hé / huò)CSS3引入了(le/liǎo)更多激動人(rén)心的(de)特性。回顧Web的(de)發展曆史,從某個(gè)角度看,就(jiù)是(shì)抽象層次不(bù)斷提高的(de)一個(gè)過程,更高的(de)抽象層次屏蔽更低層的(de)複雜性,從而(ér)提高開發效率。每當技術發展到(dào)一定程度,出(chū)現某些局限性的(de)時(shí)候,就(jiù)會有更優秀的(de)技術出(chū)現來(lái)突破這(zhè)些局限性。其實這(zhè)是(shì)計算機技術發展的(de)一個(gè)普遍規律,比如高級語言的(de)出(chū)現屏蔽了(le/liǎo)彙編語言的(de)複雜性,幫助我們更快速的(de)編程;數據庫技術的(de)出(chū)現使得我們無需關心物理存儲和(hé / huò)訪問細節,寫簡單的(de)SQL語句就(jiù)能搞定,更進一步,ORM框架使得我們通過一條語句調用一個(gè)類的(de)一個(gè)方法就(jiù)能方便就(jiù)行數據操作。我們應該讓自己的(de)技術視野具備一定的(de)高度和(hé / huò)廣度,看到(dào)一門技術的(de)發展規律和(hé / huò)發展曆程,這(zhè)是(shì)一種技術修養的(de)體現,其實跟人(rén)文修養是(shì)一樣的(de)。同時(shí)也(yě)應該具有一定的(de)深度,因爲(wéi / wèi)我們往往站在(zài)比較高的(de)抽象層次,比如今天你寫幾行代碼就(jiù)能把數據庫創建好,增删改查的(de)功能也(yě)自動生成好了(le/liǎo),但是(shì)成爲(wéi / wèi)高手需要(yào / yāo)你對底層的(de)原理機制有更透徹的(de)理解,真正遇到(dào)問題的(de)時(shí)候才能抽絲剝繭迎刃而(ér)解。

相關案例查看更多