《
淘寶前端工程師:國(guó)內(nèi)WEB前端開發(fā)十日談》文章地址:http://www.tfxk.com/zixun/041I64P2013.htm
“我對(duì)Web開發(fā)職員最大的倡議就是:熱愛你的工作。熱愛跨瀏覽器開發(fā)帶來(lái)的挑戰(zhàn)、熱愛互聯(lián)網(wǎng)技術(shù)的種種異端,熱愛業(yè)內(nèi)的同行,熱愛你的工 具;ヂ(lián)網(wǎng)發(fā)展太快了,如果你不熱愛它的話,不可能跟上它的步調(diào)。這象征著你必須多閱讀,多動(dòng)手,保障自己的才能一勞永逸。下了班也不能閑著,要做一些對(duì)自己有用的 事兒?梢越槿胍恍╅_源軟件的開發(fā),讀讀好書,看看牛人的博客。常常加入一些會(huì)議,看看別人都在干什么。要想讓自己疾速成長(zhǎng),有很多事兒可以去做,而且付出一定會(huì)有回報(bào)。” 共5頁(yè): 上一頁(yè)12345下一頁(yè)
【優(yōu)雅的學(xué)院派】
除了意識(shí)問題,另一方面是技術(shù)問題,即文筆。這也是工程師最瞧不上眼的問題,難以相信這居然是妨礙工程師突破瓶頸的關(guān)鍵所在。我已看到過(guò)數(shù)不清的人在提升這道關(guān)卡吃了大虧,很多工程師技術(shù)實(shí)力很強(qiáng),但就是表白不出來(lái),要么列舉一大堆信息毫無(wú)重點(diǎn)、要么毫無(wú)趣味的講代碼細(xì)節(jié),不知云云。除非你幫兇屎運(yùn)遇到一個(gè)懂技術(shù)的老板,否則真的沒措施逃脫碼農(nóng)的宿命。但大部分人還振振有詞不以為然。而在Web前端開發(fā)領(lǐng)域情況愈甚。前端工程師是最喜歡搞重構(gòu)的,但在快節(jié)奏的需求眼前,你很難用“提高了可維護(hù)性”、“提升了性能”這類撲朔迷離的詞藻為自己爭(zhēng)奪到時(shí)間來(lái)搞重構(gòu),說(shuō)的露骨一點(diǎn),可能你真的對(duì)某次重構(gòu)帶來(lái)的實(shí)際價(jià)值無(wú)法量化,只是“感覺代碼更整齊了”罷了。我會(huì)在下文的“偽架構(gòu)”中會(huì)開展分析前端工程師的這種急躁獻(xiàn)媚的技術(shù)情結(jié)。而這恰是前端工程師最欠缺的素質(zhì)之一:用數(shù)據(jù)談話,用謹(jǐn)嚴(yán)迷信的論據(jù)來(lái)支持你的觀點(diǎn),老板不傻,有價(jià)值的東西當(dāng)然會(huì)讓你去做。
當(dāng)年雅虎的技術(shù)流派正如日中天,領(lǐng)有眾多“之父”級(jí)的高人,所營(yíng)造出的Hack氣氛切實(shí)讓人沉醉的無(wú)法自拔,那段時(shí)間我甚至情愿加班到深夜閱讀海量的文檔和源代碼,感覺真的很舒暢,我深深的被雅虎工程師這種低調(diào)務(wù)實(shí)、精工細(xì)琢的“服務(wù)精力”所感動(dòng),而這種不起眼的優(yōu)良品質(zhì)很大程度的影響雅虎產(chǎn)品的用戶休會(huì)和高質(zhì)量的技術(shù)輸出。那么,何謂“服務(wù)精神”?即你所做的貨色是服務(wù)于人的,要么是產(chǎn)品客戶、要么是接手你項(xiàng)目的人、要么是使用你開發(fā)的功能的人,所以技術(shù)文檔成為隨同代碼的標(biāo)配。因此,工程師之間通過(guò)代碼就能做到心有靈犀的溝通。這是工程師的一項(xiàng)基本素質(zhì),即,思路清晰的實(shí)現(xiàn)項(xiàng)目,且裝備了有價(jià)值的技術(shù)文檔,如果你的程序是給其余程序員用的,則更要如此,就比如你制造一款家電都要配備仿單一樣。因此,YDN成了當(dāng)時(shí)最受寰球程序員最愛好的技術(shù)文檔庫(kù),這種優(yōu)雅務(wù)實(shí)的“學(xué)院氣息”讓人感覺獨(dú)具魅力。
我們確實(shí)需要規(guī)范,但好的規(guī)范一定是務(wù)虛的,一定是“解決問題“的。比如針對(duì)項(xiàng)目構(gòu)建的DPL能夠收納公用的視覺元件以減少重復(fù)開發(fā)、劃定某OPOA項(xiàng)目的事件散發(fā)準(zhǔn)則以確立增量開發(fā)的代碼慣性。反之,蹩腳的規(guī)范卻顯得過(guò)于“形象“,比如頁(yè)面機(jī)能指標(biāo)、響應(yīng)式設(shè)計(jì)原則。另外,只管他山之石可以攻玉,但拿來(lái)主義有一個(gè)大條件,就是你了解你的項(xiàng)目的關(guān)鍵問題,你要優(yōu)先解決的是些癥結(jié)問題,而外來(lái)規(guī)范正好能解決你的問題。因此規(guī)范是一本案頭手冊(cè),是一攬子問題的解決方案,應(yīng)當(dāng)是“字典”,而不是“教程“。可見規(guī)范的源頭是“問題”。所以,當(dāng)你想用CoffeeScript重構(gòu)你的項(xiàng)目時(shí)、當(dāng)你想引入CommonJS規(guī)范時(shí)、當(dāng)你想在頁(yè)面中揉進(jìn)Bootstrap時(shí)、當(dāng)你盤算反復(fù)造輪子搞一套JS庫(kù)時(shí)、當(dāng)你想重寫一套assets打包工具時(shí),想想這些東東解決了你的什么問題?會(huì)不會(huì)帶來(lái)新的問題、把事情搞龐雜了?還是為了嘗鮮?或者為了在簡(jiǎn)歷中冠冕堂皇的寫上應(yīng)用并粗通各種新技術(shù)?
還有另外一群人從另一條途徑接觸Web前端,即工程師轉(zhuǎn)行做前端,他們有較多的后盾語(yǔ)言開發(fā)背景,從讀寫數(shù)據(jù)開始,匆匆涉及閱讀器端,接觸JavaScript庫(kù),起初是在html代碼上加js邏輯,后來(lái)開始波及html和css,他們愛好OO、邏輯清楚、構(gòu)造悅目標(biāo)代碼,更關(guān)注界面當(dāng)面的“程序語(yǔ)言”和數(shù)據(jù)邏輯。html/css在這些人手中則更像盾牌,而JavaScript更如進(jìn)攻的武器。
所以,雅虎技術(shù)的傾銷是絕對(duì)勝利和遠(yuǎn)播的。要害在于兩方面,扎實(shí)的技術(shù)功底和高明的寫手。而真正的技巧大牛必定是集兩者與一身,不僅研究劍道,還能產(chǎn)出秘籍。這也是Yahoo!優(yōu)雅的學(xué)院派氣味的能源源泉。海內(nèi)許多技術(shù)集團(tuán)想在這方面有所建樹,應(yīng)該首先想清晰這一點(diǎn)。
【秀才仕途】
有少數(shù)工作3年或4年以上,在一直追求新的技巧上的沖破,最顯明的一點(diǎn)體現(xiàn)是,開端關(guān)注“底層協(xié)定”,即HTTP、第三方利用、體系對(duì)接、制作工具、工作流程等,這時(shí)思考的重點(diǎn)已經(jīng)脫離了“切頁(yè)面”,變?yōu)?ldquo;出計(jì)劃“,比方要架設(shè)一個(gè)站點(diǎn),可能搭建站點(diǎn)框架,預(yù)感站點(diǎn)后續(xù)(前端)開發(fā)中的所有危險(xiǎn),并逐一給出解決方案。名目后續(xù)開發(fā)碰到問題只有翻閱你供給的“手冊(cè)”即能找到謎底。這種人是尺度的“高等”Web前端工程師。
【上帝說(shuō):“要有光!”便有了光】
萬(wàn)物生靈、陽(yáng)光雨露蓋源于造物之初的天工開物,我們無(wú)法設(shè)想上帝發(fā)明光亮之前的世界樣子容貌。但幸運(yùn)的是,前端開發(fā)沒有神祗般的詭魅。這個(gè)技術(shù)工種的孕育、定型、發(fā)展自有軌跡,也頗有淵源,當(dāng)然,這無(wú)比容易理解。不嚴(yán)厲的講,在楊致遠(yuǎn)和費(fèi)羅在斯坦福大學(xué)的機(jī)房里攛掇出Yahoo!時(shí),Web前端技術(shù)就已經(jīng)開始進(jìn)入大眾視線,只不外當(dāng)時(shí)沒有一個(gè)洪亮的名字。從那時(shí)起,“基于瀏覽器端的開發(fā)”就成了軟件開發(fā)的新的分支,這也是Web前端技術(shù)的中心,即不管何時(shí)何地何種系統(tǒng)以及怎樣的裝備,凡是基于瀏覽器,都是Web前端開發(fā)的范圍(當(dāng)然,這個(gè)定義很狹窄,下文會(huì)提到)。
在雅虎的這段時(shí)間,我有幸接觸到一股正氣凜然的技術(shù)流派,也形成了我對(duì)前端技術(shù)的一些基本見解,這些基本觀點(diǎn)始終影響我至今。
舉個(gè)詳細(xì)的例子,Kissy剛出了DPL,也是一大堆結(jié)論,比如他的布局就采取了經(jīng)典的雙飛翼,使用容器浮動(dòng)來(lái)實(shí)現(xiàn),那么,這種做法就是不可撼動(dòng)的“標(biāo)準(zhǔn)”嗎?看看淘寶車險(xiǎn)首頁(yè),布局容器齊刷刷的inline-block,只要頂層容器去掉寬度,布局容器自身就能依據(jù)瀏覽器寬度調(diào)劑自然水平/垂直排列,容易的適應(yīng)終端寬度了。
一直想寫這篇“十日談”,聊聊我對(duì)Web前端開發(fā)的領(lǐng)會(huì),順便解答下四周不少人的迷惑和悵惘。我不打算聊太多技術(shù),我想,通過(guò)技術(shù)的歷練,得到的反思應(yīng)當(dāng)更重要。
再比如,淘寶旅行打算項(xiàng)目中的安排方法,也沒有完整使用Loader治理依賴,而是將依賴層級(jí)做的很少,業(yè)務(wù)邏輯使用腳原來(lái)合并,這樣就可以更容易在build環(huán)節(jié)參加語(yǔ)法檢討和代碼作風(fēng)檢查。
規(guī)范之立應(yīng)當(dāng)有動(dòng)因,動(dòng)因起源于項(xiàng)目需求,項(xiàng)目需求則來(lái)自對(duì)產(chǎn)品的理解和掌握,怎樣設(shè)計(jì)網(wǎng)站,這是Web前端初級(jí)工程師走向中級(jí)甚至高級(jí)的一次重要演變,軟件工程領(lǐng)域早就有“架構(gòu)師”角色,而架構(gòu)師往往存在于項(xiàng)目需求剖析和概設(shè)、詳設(shè)階段。我看到的情況是,Web前端工程師的思維過(guò)多的制約在“界面”之內(nèi),向前和產(chǎn)品需求離的太遠(yuǎn)(認(rèn)為這是視覺設(shè)計(jì)師的事)、向后和數(shù)據(jù)邏輯又隔分開來(lái)(認(rèn)為這是后臺(tái)工程師該干的事),因此前端規(guī)范也大都泛泛,無(wú)關(guān)項(xiàng)目痛癢,成了玩具。
我想,一部門原因是,當(dāng)前不少入道的前端工程師大都是轉(zhuǎn)行而來(lái),究竟,正兒八經(jīng)的學(xué)校里也不會(huì)教這玩意,感到“切頁(yè)面”有啥好教的,甚至不認(rèn)為html/css是一門語(yǔ)言。轉(zhuǎn)行這事自不用詳說(shuō),大家也各自瞄準(zhǔn)當(dāng)前市場(chǎng)需要,造成的景象是,低級(jí)前端工程師堆成山,中高級(jí)人才卻一將難求,盤算機(jī)系的科班出生就更加百里挑一了。一方面反應(yīng)了教導(dǎo)部分的后知后覺,另一方面也體現(xiàn)了大局部人急功近利的跟風(fēng)。當(dāng)然最主要的起因是,所謂中國(guó)“第一代前端工程師”并未做好布道的工作。導(dǎo)致大家對(duì)基礎(chǔ)跟潛力的立場(chǎng)從之前的疏忽演化為現(xiàn)在的鄙棄。所謂基本,就是在大學(xué)上的那些計(jì)算機(jī)基礎(chǔ)課。所謂潛力,就是戒驕戒躁的求實(shí)風(fēng)格。這些會(huì)在后文中屢次提到。
我們到底需要什么樣的規(guī)范?雅虎的技術(shù)規(guī)范到底有何種魔力?以何種思路構(gòu)建的規(guī)范才是貨真價(jià)實(shí)的?規(guī)范有著怎么的性命周期?想清楚這些問題,能很大水平減輕很多Web前端工程師的思維累贅,看清一部分技術(shù)實(shí)質(zhì),防止盲目跟風(fēng)。
當(dāng)然,情形不老是這么糟糕,我們看到中文社區(qū)中已經(jīng)鍛煉出了很多寫手,他們?cè)谟酶咂焚|(zhì)的文字推銷自己的技術(shù)理念,這是一個(gè)好兆頭,好的文筆是可以錘煉出來(lái)的。而在職場(chǎng),特殊是對(duì)前端工程師這個(gè)特別職位來(lái)講,這種基礎(chǔ)技能可以幫你反思梳理需求的輕重緩急,從混亂的需求中掌握七寸所在。因?yàn)楫?dāng)你開始當(dāng)真寫一封郵件的時(shí)候,這種思考已經(jīng)包括其中了。
【半路出家】
讓人感覺奇異的是,在中文社區(qū)始終未見這種學(xué)院派。甚至在擁有先天開源優(yōu)勢(shì)的Web前端技術(shù)社區(qū)里也是波濤不驚,可見寫一篇好的技術(shù)案牘真的比登天還難。我所見到的大部分所謂文檔索性把代碼里輸出數(shù)據(jù)的語(yǔ)句塊拷貝粘貼出來(lái),至于為什么數(shù)據(jù)格局要設(shè)計(jì)成這樣、如果字段有修正怎么做、編碼解碼要求如何等等關(guān)鍵信息只字不提,或者開發(fā)者也沒想過(guò)這些問題呢。因此,我們一直在強(qiáng)調(diào)代碼的質(zhì)量和可保護(hù)性,但一直以來(lái)都未奏效,蓋源于缺少這種“服務(wù)”意識(shí)的灌注。這種意識(shí)在下文中還會(huì)多次提到,因?yàn)樗苡绊懩阕鍪碌拿總(gè)細(xì)節(jié),是最應(yīng)當(dāng)首先突破的思惟糾結(jié)。
【標(biāo)準(zhǔn)的破與破 2】
工作2-3年的人在前端技能上趨于穩(wěn)固,也就是技能上的第一次瓶頸,這種人干活純熟,切頁(yè)面可能也很快,代碼看上去也比較規(guī)范,屬于純熟工,開始重視溝通技能和一些職業(yè)技能的積聚,比如帶人帶項(xiàng)目,至少有這方面的意識(shí),并有過(guò)推進(jìn)項(xiàng)目、和業(yè)務(wù)方pk需求的閱歷,這就到達(dá)了中級(jí)應(yīng)當(dāng)具備的職業(yè)技能,但應(yīng)當(dāng)注意的是,這時(shí)最容易呈現(xiàn)偏科的情況,特別是對(duì)于那些“專門切頁(yè)面的“和“專門寫腳本的“人,畢竟html/css/js三者水乳交融,三者是一個(gè)及格前端工程師都必需要控制的。如果你發(fā)覺到自身有偏廢的嫌疑,則要警惕了,要清楚的了解本身的差距,并意識(shí)到瓶頸的存在,為過(guò)渡到“中級(jí)“的打下基礎(chǔ)。
我應(yīng)當(dāng)屬于第二類,即在學(xué)校訂兒八經(jīng)的學(xué)習(xí)C/Java和C#之類,認(rèn)為大學(xué)畢業(yè)后能去做ERP軟件、桌面軟件或者進(jìn)某些通訊公司寫TCP/IP相干的程序。校園應(yīng)聘時(shí)抉擇了中國(guó)雅虎,因?yàn)楫?dāng)年(08年)雅虎還是有一點(diǎn)兒名氣,而且我據(jù)說(shuō)雅虎比擬算技術(shù)流的公司……自此就上了賊船,一發(fā)不可整理。
在這個(gè)進(jìn)程中,咱們獨(dú)一的對(duì)手是怠惰,惰于思考,就無(wú)奈真正發(fā)明問題,天然形不成本人的觀點(diǎn)。仍是那句話,任何規(guī)范、辦法、論斷、實(shí)際都是為懂得決項(xiàng)目中的問題的,所以,我們所接觸到那些看似“八股文”式的規(guī)范標(biāo)準(zhǔn)也是為了解決某些問題而提出的,想明白這些問題,懂得方式論背地的“因“,心坎做作有“果”。
因而,成都企業(yè)網(wǎng)站建設(shè),“著眼當(dāng)下、隔靴搔癢”的品德就顯得彌足可貴了,好比,雙飛翼布局方法是為了解決一套(html)代碼適應(yīng)多種布局設(shè)計(jì),這里的布局相對(duì)于固定的產(chǎn)品來(lái)說(shuō)也是固定的,而無(wú)針對(duì)終端的自適應(yīng)(實(shí)用于挪動(dòng)真?zhèn)榻榻米布局仿佛還不最佳實(shí)踐)。這是雙飛翼發(fā)生的背景,如今終端環(huán)境較之5年前已經(jīng)天翻地覆,問題早已不在“多種布局”上,而在“終端適應(yīng)“上,這才是我們面臨的問題,需要我們給出新的技術(shù)方案。
第一日:初嘗禁果
此外,這些人還須要解脫良多思維定勢(shì)的禁錮。這里我推舉大家瀏覽阿當(dāng)?shù)摹禬eb前端開發(fā)修煉之道》。當(dāng)然,假如你有一個(gè)靠譜的師兄帶你入道,天然榮幸萬(wàn)倍。
【規(guī)范的破與立 1】
第二日:科班秀才
但不論怎樣,我始終認(rèn)為應(yīng)當(dāng)秉承興致第一的原則,無(wú)論你是誤打誤撞、還是意欲為之,不管你是科班秀才、還是科班出身,興趣始終應(yīng)當(dāng)是第一原則,而后才是你“想做好“。我對(duì)自己的要求無(wú)法強(qiáng)加于人,所以很多業(yè)界大牛在回想自己成功之路時(shí),提到最多的是:“酷愛你的工作、擁抱它給你帶來(lái)的挑釁”。N.C.Zakas曾經(jīng)這樣鼓勵(lì)大家:
所以,勤于思考,輕裝上陣,大膽實(shí)踐,敢于翻新,挖掘問題所在,實(shí)打?qū)嵉慕鉀Q(潛在)問題,這才是我們真正需要的能力。放下思維定勢(shì)桎梏,也會(huì)有一種恍然大悟的感覺。
Web前端工程師是一個(gè)特別的崗位,只存在于互聯(lián)網(wǎng)范疇。最近幾年跟著互聯(lián)網(wǎng)工業(yè)的火爆,對(duì)前端工程師的需求量暴增,兵源多少近枯竭。各至公司技術(shù)掌門一定都有過(guò)類似的苦惱:“招一個(gè)靠譜的前端工程師、難于上青天”。
前2年是學(xué)習(xí)技能的階段,這個(gè)階段重要精神放在專業(yè)技能的晉升上,2年內(nèi)最少要遇上平均程度,即所謂“中級(jí)“,在這個(gè)階段的人通常對(duì)軟技能不怎么關(guān)注,溝通才能達(dá)不到均勻水平,根本上是來(lái)啥活干啥活,干不完就加班的這種,對(duì)需求的公道性不甚理解,對(duì)項(xiàng)目也沒什么把控,盡管在技能上有進(jìn)步的空間,也不是公司最需要的人,但有不少成長(zhǎng)空間。
過(guò)了這道坎之后,工作3年以上的人大部分技能也趨穩(wěn),有些人對(duì)前端新技術(shù)有鉆研,可以純熟應(yīng)答日常工作,軟技能也ok,具備有針對(duì)性的“拿來(lái)主義“,代碼也具備一定的架構(gòu)性,開始打破“代碼民工”的這一層瓶頸,對(duì)團(tuán)隊(duì)氛圍、培訓(xùn)、工作環(huán)境有個(gè)性化的要求,個(gè)別來(lái)講,這種人是典范的存在潛力的“中級(jí)”工程師,但很快會(huì)遇到職業(yè)發(fā)展中的第二個(gè)技術(shù)瓶頸。
雅虎的技術(shù)運(yùn)作非常規(guī)范,方才已經(jīng)提到,包含技術(shù)、組織、文明,所有看起來(lái)有模有樣,也堪稱標(biāo)桿,自然成了國(guó)內(nèi)很多技術(shù)團(tuán)隊(duì)和社區(qū)的效仿對(duì)象。一時(shí)間各種“規(guī)范“成風(fēng)、各色“標(biāo)準(zhǔn)“大行其道,成果是質(zhì)量錯(cuò)落不齊。
應(yīng)當(dāng)說(shuō)這兩類人是互補(bǔ)的,他們各自了解瀏覽器本質(zhì)的一部分,一撥人對(duì)渲染引擎一目了然,另一撥人則將JS引擎奉為珍寶,其實(shí)任何一部分的上風(fēng)施展出來(lái)都能做出精品。大部分前端工程師都能從這兩條淵源中找到自己的影子。但,這兩類人的思維模式和觀點(diǎn)是如斯不同,甚至于造成了一些不必要的抗衡,比如在某些公司,羅唆將Web前端技術(shù)一分為二,“切頁(yè)面的”和“寫js的”。這樣做看上去明白了分工提高了效力,但他對(duì)員工的職業(yè)發(fā)展帶來(lái)宏大損害。在第二日“科班秀才”中會(huì)有進(jìn)一步探討。
那么,轉(zhuǎn)行做前端的人又當(dāng)如何呢?實(shí)在發(fā)展軌跡和科班秀才們異常類似,只是時(shí)光跨度可能會(huì)長(zhǎng)一些,你要花更多的精力、做更多的項(xiàng)目、更多的反思和總結(jié)能力理解某個(gè)常識(shí)點(diǎn)的本質(zhì)(比如HTTP協(xié)議)。當(dāng)然這只是普通情況。
出方案是一件挺難的事件,它要求一個(gè)工程師同時(shí)具備教訓(xùn)、技術(shù)、氣場(chǎng)等諸多硬技能。尤其是對(duì)技術(shù)底子的請(qǐng)求十分高。
那么,如何定義Web前端技術(shù)崗位邊界?Web前端技術(shù)的價(jià)值體現(xiàn)在何處?前端工程師的價(jià)值僅僅體現(xiàn)在物以稀為貴嗎?前端工程師的初級(jí)、中級(jí)、高級(jí)和專家之間到底如何界定?當(dāng)前“我”處在什么地位?接下來(lái)的門路應(yīng)當(dāng)怎樣走?何謂前端技術(shù)之“道”?我想多數(shù)人都思考過(guò)這些問題,本篇“旬日談”里的觀點(diǎn)可能有些偏激,但拋磚引玉,讀者姑且把這些輿論當(dāng)作一個(gè)引子吧。
相似這種擺脫原有編程思維,有針對(duì)性的用新思路新方法解決問題的做法顯然讓人感到更加清新,編程的樂趣也正體當(dāng)初攻破慣例的快感之中,小馬曾經(jīng)說(shuō)過(guò):“制造規(guī)范是為了打破規(guī)范”,萬(wàn)不要由于這些規(guī)范標(biāo)準(zhǔn)加重負(fù)擔(dān),導(dǎo)致開始做一個(gè)簡(jiǎn)略頁(yè)面時(shí)也顯得縮手縮腳,無(wú)法放開本領(lǐng)。勇敢的著手實(shí)踐,才干真正得出屬于自己的“結(jié)論 “和“標(biāo)準(zhǔn)“,才會(huì)真正深入理解那些“結(jié)論”的意思所在。代碼寫的多了,自然游刃有余,也輕易構(gòu)成成熟的技術(shù)觀點(diǎn)。
如果說(shuō)新技術(shù)的嘗鮮缺乏針對(duì)性,但至少滿意程序員的某種潔癖和快感,那么“負(fù)擔(dān)”從何而來(lái)呢?對(duì)于初學(xué)者來(lái)說(shuō),有價(jià)值學(xué)習(xí)材料可能只有這些規(guī)范,如果說(shuō)規(guī)范價(jià)值不大,那又當(dāng)從何入手呢?
在2000年之后瀏覽器技術(shù)慢慢成熟,Web產(chǎn)品也越來(lái)越豐碩,中國(guó)有大量年青人開始接觸互聯(lián)網(wǎng),有一點(diǎn)需要留神,大部分人接觸互聯(lián)網(wǎng)不是始于對(duì)瀏覽器功能的好奇,而是被瀏覽器窗口內(nèi)的豐盛內(nèi)容所吸引,我們的思維模式從一開始就被限度在一個(gè)小窗口之內(nèi),以至于很長(zhǎng)時(shí)間內(nèi)我們將“視覺”以為是一種“功效”,Web產(chǎn)品無(wú)非是用來(lái)展示信息之用。起初的入行者無(wú)一例外對(duì)“視覺”的關(guān)注超過(guò)了對(duì)“內(nèi)容”的器重,先讓頁(yè)面看起來(lái)美麗,去關(guān)注html/css,沿著“視覺浮現(xiàn)”的思路,持續(xù)深刻下去。因此,這類人是被“視覺”所吸引,從切頁(yè)面入行,著迷于結(jié)構(gòu)化的html和書寫工整的css,喜歡簡(jiǎn)練優(yōu)雅的UI和工整的頁(yè)面設(shè)計(jì),之后開始接觸視覺特效,并使用jQuery來(lái)實(shí)現(xiàn)視覺殊效,以此為線索,成都最大的網(wǎng)絡(luò)公司,開始深入研討Dom、Bom和瀏覽器的渲染機(jī)制等,html/css在這些人手中就像進(jìn)攻兵器,而JavaScript則更如防守的盾牌。
對(duì)于科班出身的莘莘學(xué)苗來(lái)說(shuō),根正苗紅自身就是一種優(yōu)勢(shì),事實(shí)證實(shí),這些人在前端技術(shù)上的成長(zhǎng)軌跡有一定的套路,而且大都能如期的突破技能瓶頸。從一個(gè)人大學(xué)畢業(yè)到他最滿足的工作狀況,旁邊會(huì)經(jīng)由幾個(gè)階段。
雅虎技術(shù)規(guī)范的優(yōu)秀之初在于它們解決問題。所以,學(xué)習(xí)使用規(guī)范應(yīng)當(dāng)多問一句,“他們?yōu)槭裁催@樣做?”其實(shí),想清楚這些問題時(shí),腦海中自然形成了一種“遇山開山”的創(chuàng)造性思維。
我一直認(rèn)為自己是“初級(jí)”前端開發(fā)工程師,一方面我入道尚淺,只有短短幾年,另一方面我自知對(duì)技術(shù)的鉆研并不深入,可能是因?yàn)榄h(huán)境的原因,當(dāng)然最重要的是,我幸運(yùn)的參加到互聯(lián)網(wǎng)突起的浪潮之巔。時(shí)事培養(yǎng)了一批技能單薄但備受追捧的“弄潮者”,這在很大程度上影響我們對(duì)“技術(shù)本質(zhì)”的洞察力,多年來(lái)也一直未有成系統(tǒng)的“前端技術(shù)”布道佳作,以至于當(dāng)下多數(shù)人對(duì)前端技術(shù)的了解,蓋始于表述并不嚴(yán)謹(jǐn)?shù)膷徫徽衅该鑼,而這正偏偏反映了Web前端開發(fā)對(duì)自身的含混定位。對(duì)于很多Web前端工程師來(lái)說(shuō),初嘗禁果的快感無(wú)法連續(xù)良久,就陷入一輪又一輪的迷惑,考慮自己的職業(yè)計(jì)劃,試圖尋找到合適自己的成長(zhǎng)道路、看清自身技能的瓶頸,尋找突破。但遺憾的是,Web前端技術(shù)被普遍接收時(shí)日尚短,沒有多少勵(lì)志的成功樣板可供遵守。然而情況不總是這么糟,畢竟Web前端技術(shù)是一門“技術(shù)”,和計(jì)算機(jī)科學(xué)系出同門,只是因?yàn)榛ヂ?lián)網(wǎng)的高速崛起而被蒙上了迷霧,遮住了雙眼,讓我們傻傻看不清時(shí)局。
剛才我說(shuō)的不是依附于規(guī)范,而是對(duì)規(guī)范的反思,擺脫規(guī)范灌輸給我們的思維定勢(shì)。新人們大略是看了Wiki中的很多指標(biāo)、結(jié)論、實(shí)踐,在做項(xiàng)目之初就附加了不少“八股式”的負(fù)擔(dān),甚至影響我們對(duì)項(xiàng)目關(guān)鍵需乞降關(guān)鍵問題的洞察力和斷定力,負(fù)擔(dān)過(guò)重就無(wú)法輕裝上陣,Wiki中提到的這些指標(biāo)和規(guī)范是結(jié)論性的,是大量的實(shí)踐之后得出的,也只有經(jīng)歷過(guò)大批實(shí)踐才會(huì)真正理解這些結(jié)論,比如DomReady時(shí)間和http要求數(shù)是否有因果關(guān)聯(lián),http懇求數(shù)增添是否真的會(huì)導(dǎo)致頁(yè)面性能降落,什么前提下會(huì)導(dǎo)致性能降低?我們從那些條文和結(jié)論中無(wú)法找到答案。
(責(zé)任編輯:網(wǎng)站建設(shè))
淘寶前端工程師:國(guó)內(nèi)WEB前端開發(fā)十日談相關(guān)文章