最近對(duì)Web前端有很多想法,剛好看到這篇文章,跟我想法不謀而合,所以翻譯出來(lái)與大家分享。許久沒(méi)翻譯了,里面多少還是有些我沒(méi)能完全理解,意譯過(guò)來(lái),如果錯(cuò)誤,請(qǐng)務(wù)必指出和修改,謝謝。
原文:The Time is Now for Front-End Architects, 來(lái)自:Garrett Dimon,感謝作者的許可。
去年,我在YTS發(fā)表了前端架構(gòu)師的想法,之后花更多時(shí)間來(lái)思考,現(xiàn)在更堅(jiān)信這是一個(gè)不可或缺的角色。
當(dāng)后端技術(shù)伴隨.Net, Rails和Java之類的框架發(fā)展得越來(lái)越抽象和強(qiáng)大,前端技術(shù)的潛在發(fā)展也日益復(fù)雜。在束縛前端技術(shù)潛在好處的差勁實(shí)現(xiàn)之前, Web需要更多的前端架構(gòu)師。
多虧了諸如跨瀏覽器支持的先進(jìn)技術(shù)的發(fā)展,用戶體驗(yàn)、更多有意義的主題比如無(wú)障礙都撥云見(jiàn)日,這個(gè)世界再也不僅僅就HTML和CSS如此簡(jiǎn)單,因此,絕大部分的團(tuán)隊(duì)都需要一個(gè)真正理解和實(shí)踐涉及到前端的一切的人。
角色
這并不是一個(gè)扼要和簡(jiǎn)單的清單,對(duì)于下面的主題/技術(shù),前端架構(gòu)師也不能僅僅滿足于了解一下的里里外外而已,而是需要足夠的深入研究,并有自己出色的見(jiàn)解。
作為一個(gè)前端架構(gòu)師,必須擁有這些領(lǐng)域的絕對(duì)執(zhí)行力。例如,前端架構(gòu)師能夠決定某個(gè)特性是使用AJAX還是傳統(tǒng)的頁(yè)面刷新。哪個(gè)更便于使用?對(duì)無(wú)障礙的影響如何?改用Flash有意義嗎?
撥亂反正
表現(xiàn),結(jié)構(gòu),行為和商業(yè)邏輯的混雜,導(dǎo)致不必要的復(fù)雜,導(dǎo)致難以維護(hù)的怪胎解決方案。就如后端需要正確地劃分為數(shù)據(jù)層,商業(yè)邏輯,表現(xiàn)邏輯等,前端開(kāi)發(fā)復(fù)雜到是時(shí)候調(diào)整其架構(gòu)了。
編寫良好結(jié)構(gòu)或者說(shuō)避免使用表格布局是遠(yuǎn)遠(yuǎn)不夠的。這是第一步,前端架構(gòu)的哆咧咪而已?,F(xiàn)在是時(shí)候關(guān)注DOM腳本編程,AJAX, 無(wú)障礙等,該升級(jí)了。
非編程不可
我主張前端架構(gòu)師必須懂得真正的編程知識(shí),而這正是很多自封為前端架構(gòu)師的人所缺乏的。我的意思不是能夠剪切粘貼改進(jìn)代碼就行了,而是能夠跟老練的工程師商討如何能夠最好地結(jié)合前端。
這就是說(shuō),前端架構(gòu)師需要真正理解結(jié)構(gòu)遭遇商業(yè)邏輯的問(wèn)題。如果工程師說(shuō)某些東西使用ASP.Net DataGrid是不可能實(shí)現(xiàn)的,前端架構(gòu)師必須能夠解釋如何與為何要使用DataList或Repeater取代,解釋為何DataGrid在該情景下是個(gè)錯(cuò)誤的選擇……
這只是個(gè)例子,問(wèn)題還在于僅知道客戶端編程也是不夠的。能夠使用與工程師相同的術(shù)語(yǔ),能夠討論(前后端)關(guān)鍵集成的最佳解決方案,這是絕對(duì)必須的。
斷線的風(fēng)箏
我們今天正處在一個(gè)不妙的處境中,原因在于幾乎沒(méi)有人能夠?yàn)榍昂蠖说臏羡执顦?。一般工程師不?huì)有興趣或?qū)嵺`標(biāo)記,CSS, 或DOM腳本編程,大部分客戶端開(kāi)發(fā)者也沒(méi)有與后端技術(shù)協(xié)作的經(jīng)驗(yàn)。幾周入門PHP不會(huì)成為程序員,幾周入門XHTML也不會(huì)成為真正的客戶端開(kāi)發(fā)者。
罪魁禍?zhǔn)?/strong>
我首先想到的十足例子是,ASP.Net完全漠視Web標(biāo)準(zhǔn),同樣地,web氛圍(我們指表格和占位gif)讓W(xué)eb標(biāo)準(zhǔn)郁悶。企業(yè)項(xiàng)目的大多數(shù)框架輸出的標(biāo)記,即使使用1999年的標(biāo)準(zhǔn)來(lái)衡量,都是糟糕無(wú)比的。
如此巨大和“專業(yè)”的產(chǎn)品怎么能才夠不忽視,按理說(shuō)是整個(gè)項(xiàng)目最簡(jiǎn)單的方面?只有靜態(tài)代碼。理由是,基于技術(shù)的立場(chǎng)衡量產(chǎn)品,結(jié)構(gòu),CSS和其他客戶端技術(shù)都是“事后諸葛亮”。表現(xiàn)邏輯,結(jié)構(gòu)和行為混雜,壓根無(wú)助于無(wú)障礙,Web標(biāo)準(zhǔn),或者前端技術(shù)干凈的分離。抬起你的頭來(lái),就在2006,這些都成受歡迎的慣例了。
總結(jié)
如果這個(gè)世界上姿態(tài)最鮮明的產(chǎn)品和項(xiàng)目都如此低劣的方式來(lái)處理事情,其他的還有什么好說(shuō)?毫無(wú)疑問(wèn),我們需要前端架構(gòu)師,而且就在昨天。
歸結(jié)于歸結(jié),我們有一堆相互關(guān)聯(lián)的技術(shù),很少人能夠埋頭鉆研它們之間的關(guān)系,這很不幸。正確做事的真正價(jià)值在于容易的維護(hù)和長(zhǎng)期的適應(yīng)性。雖然在關(guān)鍵時(shí)刻,有些方式更容易選擇其他的方法和拼湊起另外的東西。對(duì)某些人來(lái)說(shuō),這可能是可接受的做事方式。但是,對(duì)我們大部分人來(lái)說(shuō),這是拙劣的抉擇,也非常不專業(yè)。
我交給你去想了。我假設(shè)你把車交給技工修理,修好了時(shí)候,瞧瞧引擎罩內(nèi)大量的輸送管,我不知道你對(duì)技工作何感想?
聯(lián)系客服