自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Web開發(fā)面臨的挑戰(zhàn)主要有哪些?

開發(fā) 前端
要成為一名高效的Web開發(fā)者,這需要我們做很多工作,來提高我們的工作方式,以及改善我們的勞動(dòng)成果。而在開發(fā)中難免會(huì)遇到一些困難,從前端到后端,近日,在問答網(wǎng)站知乎上,有人拋出了“Web前端開發(fā)面臨的挑戰(zhàn)主要有哪些?”和“后端開發(fā)主要的挑戰(zhàn)有哪些?”話題,眾技術(shù)大牛各抒己見

要成為一名高效的Web開發(fā)者,這需要我們做很多工作,來提高我們的工作方式,以及改善我們的勞動(dòng)成果。而在開發(fā)中難免會(huì)遇到一些困難,從前端到后端,近日,在問答網(wǎng)站知乎上,有人拋出了“Web前端開發(fā)面臨的挑戰(zhàn)主要有哪些?”和“后端開發(fā)主要的挑戰(zhàn)有哪些?”話題,眾技術(shù)大牛各抒己見

一、Web前端開發(fā)

所面臨的挑戰(zhàn)

盛大Web工程師 曹劉陽:前端語言的膠水性需求太強(qiáng) 前端必須重視可維護(hù)性

1.CSS和DOM提供的接口水平太低了,而BOM提供的控件只有input、select、textarea這幾種最基本的,稍復(fù)雜一點(diǎn)的UI效果,都要前端自己利用CSS和DOM去組合創(chuàng)造。看到一個(gè)需求,腦子里***步要想如何利用CSS、DOM這些基本的零件組合成最終的效果,實(shí)現(xiàn)最終效果其實(shí)是一個(gè)“創(chuàng)造”的過程,比如說tabView,treeView,richEditor,colorPicker這種看起來常見的組件,其實(shí)在前端里都是沒有現(xiàn)成可用的,需要自己去實(shí)現(xiàn)。

2.前端語言的膠水性需求太強(qiáng)。CSS、DOM、JS是三種不同的技術(shù),這也是前端知識(shí)系統(tǒng)中要掌握的最重要的三個(gè)基本功。server端編程當(dāng)然也會(huì)需要不同方向的知識(shí),比如PHP、SQL等,但server端編程大部分時(shí)間只用專注在某一個(gè)知識(shí)點(diǎn)上,只要必要時(shí)粘一下其它語言。但前端不同,前端的效果是通過CSS、DOM、JS三者配合起來最終呈現(xiàn)出來的,脫了任何一個(gè)技術(shù)都寸步難行,時(shí)刻要同時(shí)考慮多個(gè)方向的知識(shí)點(diǎn)。換句話說,server端編程像是一個(gè)單線程,即使有技術(shù)交差,也是串行的,而前端編程像是開了三個(gè)線程同時(shí)在跑,復(fù)雜度是成倍增長(zhǎng)的。

3.CSS+DOM+JS的組合實(shí)在太強(qiáng)大了,同一個(gè)效果可以有多種完全不同的實(shí)現(xiàn)方式,每一種實(shí)現(xiàn)方式都會(huì)有不同的開發(fā)難度、擴(kuò)展性、可維護(hù)性。解決方案太多,看到一個(gè)效果首先會(huì)先想到如何用CSS和DOM里那些low level的接口實(shí)現(xiàn),這是一個(gè)“創(chuàng)造”的過程,這時(shí)腦子里可能冒出好多種不同的實(shí)現(xiàn)方法,“創(chuàng)造”完了之后還要“比較”,權(quán)衡各種解決方案的優(yōu)劣,糾結(jié)一陣之后,才能選出最適合的方案。當(dāng)然,并非前端都是***主義,一定要選一個(gè)***的方式出來,而是因?yàn)榍岸耸荊UI編程,直接面向用戶,是最直接的產(chǎn)品呈現(xiàn)的部分,是門面。正因?yàn)槿绱?,所以前端也是最容易被反?fù)修改的部分。反復(fù)“修改”有多可怕,是個(gè)程序員都懂的,如果可維護(hù)性不好,那簡(jiǎn)直是惡夢(mèng)。所以前端不得不重視可維護(hù)性,不重視可維護(hù)性直接等于自虐。

4.瀏覽器兼容性。瀏覽器種類非常多,IE、Firefox、Chrome、Opera、還有眾多的IE加殼瀏覽器,類似搜狗、傲游、360,再加上這些瀏覽器的移動(dòng)終端版本。需要有Web標(biāo)準(zhǔn),前端的知識(shí)大部分是通用于各個(gè)瀏覽器,但還是會(huì)有歷史遺留問題,不同的瀏覽器有不同的問題特別是市場(chǎng)占有率***的IE系,就IE自己市面上就有6、7、8、9這4個(gè)版本,4個(gè)版本之間各有各的問題。如果不積累點(diǎn)經(jīng)驗(yàn),面對(duì)疑難雜癥那是一頭霧水。

豆瓣前端工程師 張克軍:前端開發(fā)的五大挑戰(zhàn)

***大挑戰(zhàn):兼容性。雖然微軟已經(jīng)決定將IE 6安樂死,IE 9/10看起來相當(dāng)標(biāo)準(zhǔn)。向后兼容似乎輕松了,但向前兼容又開始越來越讓人頭疼了。Android上的webkit是多么混亂,在桌面瀏覽器上總是有CSS Hack可以擺平,但在mobile上只能考慮退化方案。從兼容瀏覽器(外加套殼的瀏覽器)到兼容設(shè)備,實(shí)際上兼容性變得更復(fù)雜了。

第二大挑戰(zhàn):交互的復(fù)雜度。和目前UI/交互的要求相比,瀏覽器引擎給我們接囗的確太低級(jí)了。于是今年前端技術(shù)的熱門話題是各種Javascript,CSS的預(yù)處理器、各種MVC框架和微框架的討論。

第三大挑戰(zhàn):代碼可維護(hù)性。復(fù)雜度的提升直接影響代碼的維護(hù)性。JS/CSS/HTML代碼生命周期越來越長(zhǎng),也就越來越需要從代碼質(zhì)量、架構(gòu)和工具上保證它們的可維護(hù)性。代碼的歷史問題是永遠(yuǎn)的痛點(diǎn)。

第四大挑戰(zhàn):性能。

第五大挑戰(zhàn):個(gè)人成長(zhǎng)。

互聯(lián)網(wǎng)評(píng)論員 莫言:開發(fā)者的思路很重要

前端的開發(fā),如果沒有總體的設(shè)計(jì)思路,會(huì)成為一種碎片似地程序,一個(gè)效果一堆代碼,一個(gè)功能一灘腳本,一個(gè)需求片邏輯,我曾經(jīng)遇到過,因?yàn)閡e調(diào)整,把整個(gè)前端的代碼除了核心數(shù)據(jù)處理函數(shù)保留,其余的全部修改的情況?;旧锨岸说拈_發(fā),處于DOM操作,數(shù)據(jù)處理,數(shù)據(jù)交互三部分,如果合理的分配這三部分的功能,那么前端的代碼就很容易擴(kuò)展和調(diào)整。他認(rèn)為真正的前端開發(fā)挑戰(zhàn),還在于開發(fā)者的思路。兼容性,布局,CSS和JS都不是問題,問題在于如何合理的組織語言邏輯,如果正確抽象出需求中的模塊。如何用代碼處理,清楚的用代碼表達(dá)出思路,清楚的寫好注釋,給后續(xù)維護(hù)者一個(gè)可閱讀的思路。前端的改動(dòng)量,是后端的數(shù)倍,前端沒有絕對(duì),只有跟隨需求不停的修改。

程序員,品聚網(wǎng)前端主管,KindEditor作者 羅龍浩:

挑戰(zhàn)1:解決瀏覽器兼容性,各種瀏覽器,不同版本,不同操作系統(tǒng)。

挑戰(zhàn)2:優(yōu)化性能,主要是DOM方面,需要很多技巧。

挑戰(zhàn)3:設(shè)計(jì)、交互感覺,經(jīng)常為一個(gè)UI細(xì)節(jié)反復(fù)折騰。

挑戰(zhàn)4:耐心,在國(guó)內(nèi)互聯(lián)網(wǎng)公司前端工作非常雜,經(jīng)常為別人擦屁股,卻得不到重視,堅(jiān)持下來的都是牛人。

互聯(lián)網(wǎng)評(píng)論員 Neo Lee:***挑戰(zhàn)在于瀏覽器標(biāo)準(zhǔn)

Web前端的開發(fā)主要問題在于這是一個(gè)變化過快的領(lǐng)域,剛有沉淀就可能已經(jīng)更新?lián)Q代。不過自從Yahoo提出了前端工程 (Front-end Engineering)的概念之后,可以說已經(jīng)打開了一個(gè)新的局面,通過把軟件工程中一些成熟的思想引入Web前端領(lǐng)域,一些重要的概念開始得到廣泛的關(guān)注和實(shí)踐,比如頁面的架構(gòu)化設(shè)計(jì)、定量分析、瀏覽器兼容矩陣等。我看到目前***的挑戰(zhàn)還是在Web前端的根基,即瀏覽器標(biāo)準(zhǔn)上。Web前端要基于瀏覽器才能呈現(xiàn)給最終用戶,交互也嚴(yán)重依賴于瀏覽器提供的基礎(chǔ)構(gòu)件,目前的瀏覽器局面,基本上不是慢慢歸一,而是愈見復(fù)雜,這對(duì)開發(fā)者提出的要求就過高了,當(dāng)然跨瀏覽器的代碼框架發(fā)展也很好很快,不過還是一個(gè)即有效又不失靈活性的基本標(biāo)準(zhǔn)才是治本之道。

二、Web后端開發(fā)面臨的挑戰(zhàn):

盛大創(chuàng)新研究院研究員 莊表偉:規(guī)模、安全、效率、需求、教條

1.***大挑戰(zhàn),后端開發(fā)最重要的挑戰(zhàn),來自于規(guī)模

規(guī)模的擴(kuò)大,比如訪問量擴(kuò)大,文件存儲(chǔ)量擴(kuò)大,數(shù)據(jù)量擴(kuò)大,服務(wù)器數(shù)量擴(kuò)大等。一個(gè)前端看起來一模一樣的網(wǎng)站,某一種指標(biāo)如果擴(kuò)大十倍,幾乎都會(huì)面臨一大堆的問題和挑戰(zhàn)。另一方面,在規(guī)模擴(kuò)大以后,后端系統(tǒng)架構(gòu),一定會(huì)復(fù)雜化。原來只有一臺(tái)Server,LAMP都裝在一起。然后數(shù)據(jù)庫分出來,反向代理,負(fù)載均衡,分庫分表,Memcache,Message Queue,事務(wù)處理,CDN,NOSQL,種種架構(gòu),Server,就逐漸的演化出來了。架構(gòu)的復(fù)雜化,自然會(huì)帶來更多的問題和更多的挑戰(zhàn)。

2.第二大挑戰(zhàn),來自于安全

安全問題層出不窮,防不勝防。需要技術(shù)手段,也需要管理制度。

3.第三大挑戰(zhàn),來自于效率

能否提供足夠的處理速度,能否提供足夠的帶寬,能否保證響應(yīng)能力,這些是對(duì)外的效率。能否使用更少的服務(wù)器,能否使用更加便宜的服務(wù)器,能否使用更加節(jié)省能源的服務(wù)器,這些是對(duì)內(nèi)的效率。

4.第四大挑戰(zhàn),來自于需求變更

當(dāng)然,無論前端后端,都會(huì)面臨需求變更,只要是軟件開發(fā),這都是大挑戰(zhàn)。但是當(dāng)一個(gè)系統(tǒng)已經(jīng)穩(wěn)定的,高效的運(yùn)行時(shí),需求變更來了,在滿足需求之后,原本來沒有問題的部分,會(huì)不會(huì)突然崩潰,一旦崩潰,就是后端工程師的噩夢(mèng)。

5.第五大挑戰(zhàn),來自于教條

這個(gè)世界上有無數(shù)IT大公司,他們都很開放,都愿意分享自己的架構(gòu)與技術(shù)。于是,對(duì)于“眼界開闊”的后端工程師而言,困難不在于如何解決,而在于如何從眾多的解決方案中做出挑選??蚣?、實(shí)踐不斷涌現(xiàn),成功案例也不斷涌現(xiàn)。人家都用得好好的,你敢用嗎?到底是勇于嘗鮮,還是保守要緊呢?這個(gè)很難。

互聯(lián)網(wǎng)評(píng)論員 Neo Lee:后端開發(fā)的三大法則

1. Design for failure。后端相當(dāng)比例的代碼不是為了一般情況下正確而存在,而是為了保證特殊或者極端情況下系統(tǒng)可接受的響應(yīng)而存在的。這里有非常多的折衷要做:漸進(jìn)改進(jìn)還是超前設(shè)計(jì)?水平擴(kuò)展、業(yè)務(wù)優(yōu)化、前臺(tái)還是后臺(tái)處理?大量的折衷都是要根據(jù)不斷變化的環(huán)境和需求去權(quán)衡的,所以很容易犯錯(cuò)。

2. Architecture is about abstract。為什么要抽象?因?yàn)槌橄蟮母拍钣懈玫倪m應(yīng)性,更易于復(fù)用,更能靈活適應(yīng)變化。但是抽象是很難的,不恰當(dāng)?shù)某橄蟾琴O害無窮,要命的是,這些并沒有很好的方法論,多數(shù)是依靠一組基本的原理,憑經(jīng)驗(yàn)作出的。而Web后端開發(fā)在很長(zhǎng)時(shí)間里并沒有很重視這些,很多網(wǎng)站都是粗放型設(shè)計(jì)和開發(fā)出來的,所以補(bǔ)丁疊補(bǔ)丁的結(jié)構(gòu)就順理成章的成為了主流。

3. Architecture IS product。架構(gòu)本身即產(chǎn)品,一個(gè)軟件產(chǎn)品包含了不同的視角,其中最重要的包括用戶看到的視角、以及軟件骨架即架構(gòu)的視角。但產(chǎn)品就是產(chǎn)品,所有這些視角都是必須統(tǒng)一和一致的,這就要求架構(gòu)必須理解產(chǎn)品的靈魂,而產(chǎn)品要理解架構(gòu)的困難所在,否則很容易出現(xiàn)想做的事情做不到或者以巨大的架構(gòu)代價(jià)實(shí)現(xiàn)一個(gè)邊角功能這類悲劇。

網(wǎng)友們,你們是怎么看待的呢?如果你有好的見解,歡迎與我們分享。

原文:http://entere.blogchina.com/1233521.html

【編輯推薦】

  1. 淺析Web中的Tip組件實(shí)現(xiàn)
  2. Mozilla技術(shù)布道者給Web開發(fā)者推薦Firefox插件列表
  3. Web設(shè)計(jì)VS App設(shè)計(jì):互相學(xué)習(xí)到了什么
  4. Web前端開發(fā)有“前”沒錢?
  5. 2011年Web開發(fā)領(lǐng)域回顧與展望
責(zé)任編輯:陳貽新 來源: 博客中國(guó)
相關(guān)推薦

2018-07-12 13:01:04

人工智能機(jī)器人機(jī)器學(xué)習(xí)

2012-11-12 18:30:29

2020-08-10 08:15:32

Python開發(fā)語言

2023-03-07 15:50:35

2023-10-08 07:00:12

2023-06-27 17:21:08

2025-02-24 09:56:13

交換機(jī)網(wǎng)絡(luò)通信

2009-03-24 21:43:49

多核CPU系統(tǒng)

2022-12-05 13:22:03

2019-04-01 07:43:39

2019-07-29 14:32:22

2023-08-10 07:04:13

2019-02-28 21:32:38

物聯(lián)網(wǎng)IOT技術(shù)

2022-09-22 10:53:38

實(shí)時(shí)數(shù)據(jù)ML 模型

2018-09-29 05:12:54

廣域網(wǎng)網(wǎng)絡(luò)連接DDN

2023-07-10 14:01:36

2016-05-31 15:23:52

2021-09-26 10:22:12

云計(jì)算云計(jì)算環(huán)境云應(yīng)用

2020-12-24 10:43:33

比特幣黃金美元

2016-08-29 20:52:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)