這篇文章主要講解了“Web開發(fā)面臨的挑戰(zhàn)有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Web開發(fā)面臨的挑戰(zhàn)有哪些”吧!
創(chuàng)新互聯(lián)公司主要從事網站制作、做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務遵義,十多年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
一、Web前端開發(fā)
所面臨的挑戰(zhàn)
1.CSS和DOM提供的接口水平太低了,而BOM提供的控件只有input、select、textarea這幾種最基本的,稍復雜一點的UI效果,都要前端自己利用CSS和DOM去組合創(chuàng)造??吹揭粋€需求,腦子里***步要想如何利用CSS、DOM這些基本的零件組合成最終的效果,實現(xiàn)最終效果其實是一個“創(chuàng)造”的過程,比如說tabView,treeView,richEditor,colorPicker這種看起來常見的組件,其實在前端里都是沒有現(xiàn)成可用的,需要自己去實現(xiàn)。
2.前端語言的膠水性需求太強。CSS、DOM、JS是三種不同的技術,這也是前端知識系統(tǒng)中要掌握的最重要的三個基本功。server端編程當然也會需要不同方向的知識,比如PHP、SQL等,但server端編程大部分時間只用專注在某一個知識點上,只要必要時粘一下其它語言。但前端不同,前端的效果是通過CSS、DOM、JS三者配合起來最終呈現(xiàn)出來的,脫了任何一個技術都寸步難行,時刻要同時考慮多個方向的知識點。換句話說,server端編程像是一個單線程,即使有技術交差,也是串行的,而前端編程像是開了三個線程同時在跑,復雜度是成倍增長的。
3.CSS+DOM+JS的組合實在太強大了,同一個效果可以有多種完全不同的實現(xiàn)方式,每一種實現(xiàn)方式都會有不同的開發(fā)難度、擴展性、可維護性。解決方案太多,看到一個效果首先會先想到如何用CSS和DOM里那些low level的接口實現(xiàn),這是一個“創(chuàng)造”的過程,這時腦子里可能冒出好多種不同的實現(xiàn)方法,“創(chuàng)造”完了之后還要“比較”,權衡各種解決方案的優(yōu)劣,糾結一陣之后,才能選出最適合的方案。當然,并非前端都是***主義,一定要選一個***的方式出來,而是因為前端是GUI編程,直接面向用戶,是最直接的產品呈現(xiàn)的部分,是門面。正因為如此,所以前端也是最容易被反復修改的部分。反復“修改”有多可怕,是個程序員都懂的,如果可維護性不好,那簡直是惡夢。所以前端不得不重視可維護性,不重視可維護性直接等于自虐。
4.瀏覽器兼容性。瀏覽器種類非常多,IE、Firefox、Chrome、Opera、還有眾多的IE加殼瀏覽器,類似搜狗、傲游、360,再加上這些瀏覽器的移動終端版本。需要有Web標準,前端的知識大部分是通用于各個瀏覽器,但還是會有歷史遺留問題,不同的瀏覽器有不同的問題特別是市場占有率***的IE系,就IE自己市面上就有6、7、8、9這4個版本,4個版本之間各有各的問題。如果不積累點經驗,面對疑難雜癥那是一頭霧水。
豆瓣前端工程師 張克軍:前端開發(fā)的五大挑戰(zhàn)
***大挑戰(zhàn):兼容性。雖然微軟已經決定將IE 6安樂死,IE 9/10看起來相當標準。向后兼容似乎輕松了,但向前兼容又開始越來越讓人頭疼了。Android上的webkit是多么混亂,在桌面瀏覽器上總是有CSS Hack可以擺平,但在mobile上只能考慮退化方案。從兼容瀏覽器(外加套殼的瀏覽器)到兼容設備,實際上兼容性變得更復雜了。
第二大挑戰(zhàn):交互的復雜度。和目前UI/交互的要求相比,瀏覽器引擎給我們接囗的確太低級了。于是今年前端技術的熱門話題是各種Javascript,CSS的預處理器、各種MVC框架和微框架的討論。
第三大挑戰(zhàn):代碼可維護性。復雜度的提升直接影響代碼的維護性。JS/CSS/HTML代碼生命周期越來越長,也就越來越需要從代碼質量、架構和工具上保證它們的可維護性。代碼的歷史問題是永遠的痛點。
第四大挑戰(zhàn):性能。
第五大挑戰(zhàn):個人成長。
互聯(lián)網評論員 莫言:開發(fā)者的思路很重要
前端的開發(fā),如果沒有總體的設計思路,會成為一種碎片似地程序,一個效果一堆代碼,一個功能一灘腳本,一個需求片邏輯,我曾經遇到過,因為ue調整,把整個前端的代碼除了核心數(shù)據(jù)處理函數(shù)保留,其余的全部修改的情況。基本上前端的開發(fā),處于DOM操作,數(shù)據(jù)處理,數(shù)據(jù)交互三部分,如果合理的分配這三部分的功能,那么前端的代碼就很容易擴展和調整。他認為真正的前端開發(fā)挑戰(zhàn),還在于開發(fā)者的思路。兼容性,布局,CSS和JS都不是問題,問題在于如何合理的組織語言邏輯,如果正確抽象出需求中的模塊。如何用代碼處理,清楚的用代碼表達出思路,清楚的寫好注釋,給后續(xù)維護者一個可閱讀的思路。前端的改動量,是后端的數(shù)倍,前端沒有絕對,只有跟隨需求不停的修改。
程序員,品聚網前端主管,KindEditor作者 羅龍浩:
挑戰(zhàn)1:解決瀏覽器兼容性,各種瀏覽器,不同版本,不同操作系統(tǒng)。
挑戰(zhàn)2:優(yōu)化性能,主要是DOM方面,需要很多技巧。
挑戰(zhàn)3:設計、交互感覺,經常為一個UI細節(jié)反復折騰。
挑戰(zhàn)4:耐心,在國內互聯(lián)網公司前端工作非常雜,經常為別人擦屁股,卻得不到重視,堅持下來的都是牛人。
互聯(lián)網評論員 Neo Lee:***挑戰(zhàn)在于瀏覽器標準
Web前端的開發(fā)主要問題在于這是一個變化過快的領域,剛有沉淀就可能已經更新?lián)Q代。不過自從Yahoo提出了前端工程 (Front-end Engineering)的概念之后,可以說已經打開了一個新的局面,通過把軟件工程中一些成熟的思想引入Web前端領域,一些重要的概念開始得到廣泛的關注和實踐,比如頁面的架構化設計、定量分析、瀏覽器兼容矩陣等。我看到目前***的挑戰(zhàn)還是在Web前端的根基,即瀏覽器標準上。Web前端要基于瀏覽器才能呈現(xiàn)給最終用戶,交互也嚴重依賴于瀏覽器提供的基礎構件,目前的瀏覽器局面,基本上不是慢慢歸一,而是愈見復雜,這對開發(fā)者提出的要求就過高了,當然跨瀏覽器的代碼框架發(fā)展也很好很快,不過還是一個即有效又不失靈活性的基本標準才是治本之道。
二、Web后端開發(fā)面臨的挑戰(zhàn):
1.***大挑戰(zhàn),后端開發(fā)最重要的挑戰(zhàn),來自于規(guī)模
規(guī)模的擴大,比如訪問量擴大,文件存儲量擴大,數(shù)據(jù)量擴大,服務器數(shù)量擴大等。一個前端看起來一模一樣的網站,某一種指標如果擴大十倍,幾乎都會面臨一大堆的問題和挑戰(zhàn)。另一方面,在規(guī)模擴大以后,后端系統(tǒng)架構,一定會復雜化。原來只有一臺Server,LAMP都裝在一起。然后數(shù)據(jù)庫分出來,反向代理,負載均衡,分庫分表,Memcache,Message Queue,事務處理,cdn,NOSQL,種種架構,Server,就逐漸的演化出來了。架構的復雜化,自然會帶來更多的問題和更多的挑戰(zhàn)。
2.第二大挑戰(zhàn),來自于安全
安全問題層出不窮,防不勝防。需要技術手段,也需要管理制度。
3.第三大挑戰(zhàn),來自于效率
能否提供足夠的處理速度,能否提供足夠的帶寬,能否保證響應能力,這些是對外的效率。能否使用更少的服務器,能否使用更加便宜的服務器,能否使用更加節(jié)省能源的服務器,這些是對內的效率。
4.第四大挑戰(zhàn),來自于需求變更
當然,無論前端后端,都會面臨需求變更,只要是軟件開發(fā),這都是大挑戰(zhàn)。但是當一個系統(tǒng)已經穩(wěn)定的,高效的運行時,需求變更來了,在滿足需求之后,原本來沒有問題的部分,會不會突然崩潰,一旦崩潰,就是后端工程師的噩夢。
5.第五大挑戰(zhàn),來自于教條
這個世界上有無數(shù)IT大公司,他們都很開放,都愿意分享自己的架構與技術。于是,對于“眼界開闊”的后端工程師而言,困難不在于如何解決,而在于如何從眾多的解決方案中做出挑選??蚣堋嵺`不斷涌現(xiàn),成功案例也不斷涌現(xiàn)。人家都用得好好的,你敢用嗎?到底是勇于嘗鮮,還是保守要緊呢?這個很難。
互聯(lián)網評論員 Neo Lee:后端開發(fā)的三大法則
1. Design for failure。后端相當比例的代碼不是為了一般情況下正確而存在,而是為了保證特殊或者極端情況下系統(tǒng)可接受的響應而存在的。這里有非常多的折衷要做:漸進改進還是超前設計?水平擴展、業(yè)務優(yōu)化、前臺還是后臺處理?大量的折衷都是要根據(jù)不斷變化的環(huán)境和需求去權衡的,所以很容易犯錯。
2. Architecture is about abstract。為什么要抽象?因為抽象的概念有更好的適應性,更易于復用,更能靈活適應變化。但是抽象是很難的,不恰當?shù)某橄蟾琴O害無窮,要命的是,這些并沒有很好的方法論,多數(shù)是依靠一組基本的原理,憑經驗作出的。而Web后端開發(fā)在很長時間里并沒有很重視這些,很多網站都是粗放型設計和開發(fā)出來的,所以補丁疊補丁的結構就順理成章的成為了主流。
3. Architecture IS product。架構本身即產品,一個軟件產品包含了不同的視角,其中最重要的包括用戶看到的視角、以及軟件骨架即架構的視角。但產品就是產品,所有這些視角都是必須統(tǒng)一和一致的,這就要求架構必須理解產品的靈魂,而產品要理解架構的困難所在,否則很容易出現(xiàn)想做的事情做不到或者以巨大的架構代價實現(xiàn)一個邊角功能這類悲劇。
感謝各位的閱讀,以上就是“Web開發(fā)面臨的挑戰(zhàn)有哪些”的內容了,經過本文的學習后,相信大家對Web開發(fā)面臨的挑戰(zhàn)有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
當前文章:Web開發(fā)面臨的挑戰(zhàn)有哪些
當前鏈接:http://www.ekvhdxd.cn/article28/ghdpcp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站營銷、網站排名、網站改版、Google、網站策劃、動態(tài)網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)