CSDN:請您對自己做個簡單的介紹,尤其是在前端開發(fā)技術(shù)方面的經(jīng)歷。
蔣定宇:前端工程師資歷7年:于2005年加入臺灣雅虎奇摩首批Web Developer,主要負責(zé)項目的開發(fā)與前端架構(gòu)。同時擔(dān)任Yahoo! Developer Network的傳教士、到各大專院校與研討會招募、推廣YUI等開源技術(shù)。
2009加入新創(chuàng)團隊miiiCasa:第一個工程師、將整個前端的規(guī)范、架構(gòu)、環(huán)境從零建立起來。目前擔(dān)任前端技術(shù)團隊的主管,持續(xù)地改善開發(fā)環(huán)境、工具、架構(gòu),主要負責(zé)項目Goodie Bar、開放平臺、Space、miiiTV。前端開發(fā)重視維護性,在規(guī)范、模塊化、自動化、物件導(dǎo)向等議題上有所鉆研。所使用的框架為YUI 3,喜愛它優(yōu)異的架構(gòu)、有各種符合團隊開發(fā)所需具備的工具。
個性簽名是:在意做對的事、對細節(jié)面的鉆研、把事情搞清楚,喜歡與其他開發(fā)者分享交流。
2008年5月,跟雅虎請了一個月的假、花了27天跑步環(huán)島(約900公里)。
跑步環(huán)島:后記
2010年7月,擔(dān)任北京WebRebuild講師,對于前端開發(fā)者的熱情與態(tài)度留下了深刻的印象。
北京WebRebuild演講,收獲滿檔!
CSDN:前端開發(fā)在這一年多又有了很多新的變化,HTML5正在迅速發(fā)展,各種JS框架也層出不窮地出現(xiàn),請問你對這些新技術(shù)的發(fā)展趨勢是怎樣看?
蔣定宇:HTML5跟JavaScript框架能夠快速發(fā)展,要歸功于Mobile Web與nodeJS兩者的蓬勃發(fā)展。PC裝置由于仍有IE的版本問題,HTML5或JavaScript的新技術(shù)都只能做半套、也要考慮許多相容性的問題。但不支援Flash的Mobile Web則讓這些技術(shù)、特別是HTML5有個能夠揮灑的空間。而nodeJS則應(yīng)許了JavaScript愛好者一個美好的未來:【JavaScript:Web的前后端開發(fā)的統(tǒng)一語言】
由于這個社群的蓬勃發(fā)展,大家開始正視JavaScript存在已久的問題、并真的以實作來解決,也帶動了瀏覽器端的改變…例如模塊化就是一個很明顯的例子:由CommonJS帶出了ECMAScript的Module Spec、并且刺激了瀏覽器端AMD的實作出現(xiàn)(RequireJS)、另外像MVC架構(gòu)、樣板引擎也都是因此而產(chǎn)生,對JavaScript在前后端開發(fā)帶來了許多正面的循環(huán)。
需求帶來新技術(shù)、規(guī)格的制定帶來實作、實作則帶來了淘汰(新技術(shù)或瀏覽器)與向下相容的需求。這樣的循環(huán)能夠快速地持續(xù)發(fā)生、改變就是可以期待的。這一年我們看到了長生不老的IE6、7占有率變得很低,瀏覽器廠商競相實作新技術(shù)、開發(fā)者想辦法向下相容……目前這樣的循環(huán)持續(xù)地發(fā)生,我對于新技術(shù)能夠被實作是抱持積極正向且樂觀的態(tài)度的。
CSDN:正如上面提到的,HTML5目前正發(fā)展得火熱,你覺得對JavaScript語言發(fā)展會產(chǎn)生什么影響?
蔣定宇:這必定是相輔相成的,傳統(tǒng)的JavaScript在許多地方是非常松散的、也稱不上是個好的Programming Language。
ECMAScript不斷地在改進、把好的帶入、壞的部分移除。例如Binary的操作、語法的簡易化、模塊化、變數(shù)的Scope等。跟HTML5比較不一樣的地方在于,它僅僅是語法上的轉(zhuǎn)變與強化,并未提供花俏的新功能。加上開發(fā)者已經(jīng)習(xí)慣既有的寫法、或者是已采用YUI、jQuery、Dojo等函式庫、也須顧及舊瀏覽器不支援此外ECMAScript并不如HTML5有強大的行銷力或被討論的風(fēng)氣…以上幾點歸納出來:實作可能會發(fā)生的很緩慢,得看未來有沒有個非常強大的實作(例如 nodeJS)來支持。
CSDN:關(guān)于制定HTML5的兩個組織WHATWG和W3C分道揚鑣的事情最近業(yè)界有不少爭論,這可能意味著HTML5將會有兩個標(biāo)準(zhǔn),您覺得對于前端開發(fā)人員來講,是利還是弊?您怎么看待這件事。
蔣定宇:Douglas Crockford曾經(jīng)批評HTML5失去控制地開創(chuàng)新技術(shù),卻未設(shè)法解決瀏覽器存在已久的問題。但我認(rèn)為往前的動力是必須的,若WHATWG與W3C和諧相處、但是卻緩步如蝸牛,這樣反而更不好。畢竟過去Web發(fā)展曾經(jīng)跛足不前好一段時間,這不該是現(xiàn)今軟體開發(fā)的常態(tài)。做出改變絕對比空談來得有意義,或許過程中我們得付出代價,但也必定有更多的收獲,不管程序開發(fā)或人生都是這樣的。因此我認(rèn)為WHATWG擺脫W3C冗長的流程絕對是利大于弊,不進則退啊!
CSDN:就在上月底,Adobe公司表示不會針對谷歌新版Android 4.1操作系統(tǒng)提供官方Flash,智能手機上的Flash時代終結(jié),因此很多人預(yù)測Flash將死,對此你有什么看法?會給前端開發(fā)人員有什么樣影響?
蔣定宇:一個問題是:為了讓桌上型的舊瀏覽器相容于HTML5的localStorage、CROS、Websocket、File等新技術(shù),你會用何種方式來實作呢?答案只有一個:Flash。
而替代HTML5最大的問題在于工具集與效能面,都必須等待時間來解決。的確手機的 Flash時代即將要終結(jié)、但桌上型的我認(rèn)為Flash還是很好用的。而前端人員在這段時間是很尷尬的,在桌上型仍然要使用部分的Flash來做輔助。而手機使用HTML5的效能問題更頭大、外加瀏覽器或系統(tǒng)版本更多。Mobile Web功能一旦復(fù)雜、就會放棄它往Apps的方向走。
CSDN:可否根據(jù)您的感受談?wù)?,對前端工程師來說最大的挑戰(zhàn)是什么?
蔣定宇:前端工程師可比喻為連接過去與未來的橋梁。
過去我們?yōu)榱瞬煌瑸g覽器的相容性而奮戰(zhàn)、現(xiàn)在我們則為了與新技術(shù)如何共存而煩惱。這樣的本質(zhì)就是前端工程師所存在的價值,有許多庫的產(chǎn)生都是為了補足過去的不足。讓未來可以加速發(fā)生、化不可能為可能就是前端工程師最大的挑戰(zhàn)。
另外由于JavaScript日益復(fù)雜、加上越來越多的后端需求,前端工程師從過去只需注重介面、到現(xiàn)在為了應(yīng)付復(fù)雜的團隊開發(fā)需求,Solid的架構(gòu)知識(例如:MVC)更不可或缺。這些需求都不可與兩三年前同日而語,很辛苦,但也是身為前端工程師最好玩的地方。
CSDN:根據(jù)您的觀察和感受,可否請您簡單談?wù)劊{兩岸的前端領(lǐng)域有哪些不同?
蔣定宇:臺灣市場小、新創(chuàng)公司多,前端工程師的需求在這一年才比較明顯,開發(fā)者偏向?qū)嵶髅媾c工具的應(yīng)用,以能夠快速開發(fā)為導(dǎo)向。而大陸使用者多、中大型網(wǎng)站多,相對開發(fā)的團隊也大、開發(fā)者自然對于細節(jié)方面與架構(gòu)方面的興趣就會高許多。以框架的使用來說,臺灣幾乎清一色都使用輕巧短小的jQuery、并配合相依的Library快速開發(fā)。大陸明顯地多樣化,就我所知美團使用YUI、淘寶使用從YUI改上來的Kissy、百度則有兩三個自行研發(fā)的框架。
Reinvent the wheel(重新打造輪子)在大陸是很明顯的一件事、在臺灣則是學(xué)習(xí)如何把輪子用好。重新造輪可以實際改進缺點、灌入更棒的創(chuàng)意,把輪子用好則是讓經(jīng)驗可以累積。