台灣 miiiCasa资深前端工程师蒋定宇谈前端开发

编者按:CSDN年度技术盛宴2012 SDCC中国软件开发者大会将于2012年9月7日-8日在北京新云南皇冠假日酒店举行。软件研发频道将采访一些与会讲师,谈谈他们将在会上分享的内容。

本期我们采访的讲师是台灣 miiiCasa資深前端工程師 蔣定宇。

CSDN:请您对自己做个简单的介绍,尤其是在前端开发技术方面的经历。

蒋定宇:前端工程师资历7年:于2005年加入台湾雅虎奇摩首批Web Developer,主要负责项目的开发与前端架构。同时担任Yahoo! Developer Network的传教士、到各大专院校与研讨会招募、推广YUI等开源技术。

2009加入新创团队miiiCasa:第一个工程师、将整个前端的规范、架构、环境从零建立起来。目前担任前端技术团队的主管,持续地改善开发环境、工具、架构,主要负责项目Goodie Bar、开放平台、Space、miiiTV。前端开发重视维护性,在规范、模块化、自动化、物件导向等议题上有所钻研。所使用的框架为YUI 3,喜爱它优异的架构、有各种符合团队开发所需具备的工具。

个性签名是:在意做对的事、对细节面的钻研、把事情搞清楚,喜欢与其他开发者分享交流。

2008年5月,跟雅虎请了一个月的假、花了27天跑步环岛(约900公里)。

跑步环岛:后记

2010年7月,担任北京WebRebuild讲师,对于前端开发者的热情与态度留下了深刻的印象。

北京WebRebuild演讲,收获满档!

CSDN:前端开发在这一年多又有了很多新的变化,HTML5正在迅速发展,各种JS框架也层出不穷地出现,请问你对这些新技术的发展趋势是怎样看?

蒋定宇:HTML5跟JavaScript框架能够快速发展,要归功于Mobile Web与nodeJS两者的蓬勃发展。PC装置由于仍有IE的版本问题,HTML5或JavaScript的新技术都只能做半套、也要考虑许多相容性的问题。但不支援Flash的Mobile Web则让这些技术、特别是HTML5有个能够挥洒的空间。而nodeJS则应许了JavaScript爱好者一个美好的未来:【JavaScript:Web的前后端开发的统一语言】

由于这个社群的蓬勃发展,大家开始正视JavaScript存在已久的问题、并真的以实作来解决,也带动了浏览器端的改变…例如模块化就是一个很明显的例子:由CommonJS带出了ECMAScript的Module Spec、并且刺激了浏览器端AMD的实作出现(RequireJS)、另外像MVC架构、样板引擎也都是因此而产生,对JavaScript在前后端开发带来了许多正面的循环。

需求带来新技术、规格的制定带来实作、实作则带来了淘汰(新技术或浏览器)与向下相容的需求。这样的循环能够快速地持续发生、改变就是可以期待的。这一年我们看到了长生不老的IE6、7占有率变得很低,浏览器厂商竞相实作新技术、开发者想办法向下相容……目前这样的循环持续地发生,我对于新技术能够被实作是抱持积极正向且乐观的态度的。

CSDN:正如上面提到的,HTML5目前正发展得火热,你觉得对JavaScript语言发展会产生什么影响?

蒋定宇:这必定是相辅相成的,传统的JavaScript在许多地方是非常松散的、也称不上是个好的Programming Language。

ECMAScript不断地在改进、把好的带入、坏的部分移除。例如Binary的操作、语法的简易化、模块化、变数的Scope等。跟HTML5比较不一样的地方在于,它仅仅是语法上的转变与强化,并未提供花俏的新功能。加上开发者已经习惯既有的写法、或者是已采用YUI、jQuery、Dojo等函式库、也须顾及旧浏览器不支援此外ECMAScript并不如HTML5有强大的行销力或被讨论的风气…以上几点归纳出来:实作可能会发生的很缓慢,得看未来有没有个非常强大的实作(例如 nodeJS)来支持。

CSDN:关于制定HTML5的两个组织WHATWG和W3C分道扬镳的事情最近业界有不少争论,这可能意味着HTML5将会有两个标准,您觉得对于前端开发人员来讲,是利还是弊?您怎么看待这件事。

蒋定宇:Douglas Crockford曾经批评HTML5失去控制地开创新技术,却未设法解决浏览器存在已久的问题。但我认为往前的动力是必须的,若WHATWG与W3C和谐相处、但是却缓步如蜗牛,这样反而更不好。毕竟过去Web发展曾经跛足不前好一段时间,这不该是现今软体开发的常态。做出改变绝对比空谈来得有意义,或许过程中我们得付出代价,但也必定有更多的收获,不管程序开发或人生都是这样的。因此我认为WHATWG摆脱W3C冗长的流程绝对是利大于弊,不进则退啊!

CSDN:就在上月底,Adobe公司表示不会针对谷歌新版Android 4.1操作系统提供官方Flash,智能手机上的Flash时代终结,因此很多人预测Flash将死,对此你有什么看法?会给前端开发人员有什么样影响?

蒋定宇:一个问题是:为了让桌上型的旧浏览器相容于HTML5的localStorage、CROS、Websocket、File等新技术,你会用何种方式来实作呢?答案只有一个:Flash。

而替代HTML5最大的问题在于工具集与效能面,都必须等待时间来解决。的确手机的 Flash时代即将要终结、但桌上型的我认为Flash还是很好用的。而前端人员在这段时间是很尴尬的,在桌上型仍然要使用部分的Flash来做辅助。而手机使用HTML5的效能问题更头大、外加浏览器或系统版本更多。Mobile Web功能一旦复杂、就会放弃它往Apps的方向走。

CSDN:可否根据您的感受谈谈,对前端工程师来说最大的挑战是什么?

蒋定宇:前端工程师可比喻为连接过去与未来的桥梁。

过去我们为了不同浏览器的相容性而奋战、现在我们则为了与新技术如何共存而烦恼。这样的本质就是前端工程师所存在的价值,有许多库的产生都是为了补足过去的不足。让未来可以加速发生、化不可能为可能就是前端工程师最大的挑战。

另外由于JavaScript日益复杂、加上越来越多的后端需求,前端工程师从过去只需注重介面、到现在为了应付复杂的团队开发需求,Solid的架构知识(例如:MVC)更不可或缺。这些需求都不可与两三年前同日而语,很辛苦,但也是身为前端工程师最好玩的地方。

CSDN:根据您的观察和感受,可否请您简单谈谈,海峡两岸的前端领域有哪些不同?

蒋定宇:台湾市场小、新创公司多,前端工程师的需求在这一年才比较明显,开发者偏向实作面与工具的应用,以能够快速开发为导向。而大陆使用者多、中大型网站多,相对开发的团队也大、开发者自然对于细节方面与架构方面的兴趣就会高许多。以框架的使用来说,台湾几乎清一色都使用轻巧短小的jQuery、并配合相依的Library快速开发。大陆明显地多样化,就我所知美团使用YUI、淘宝使用从YUI改上来的Kissy、百度则有两三个自行研发的框架。

Reinvent the wheel(重新打造轮子)在大陆是很明显的一件事、在台湾则是学习如何把轮子用好。重新造轮可以实际改进缺点、灌入更棒的创意,把轮子用好则是让经验可以累积。