不要认为自己比别人做得好,即便你很出色。常问自己,谁对我有恩还没加倍报答。杜绝事必躬亲,学会抓大放小。
想要打造并拥有一流的Web产品开发团队,在团队成员基础能力上一定要下功夫。对于Web前端产品开发来说,仅仅掌握Web1.0时代简单的"网页套接"是完全不够的。我结合自己的团队配备,特此罗列了Web前端产品工程师所涉及的技能列表如下:通过许多实际项目,个人认为一个完备的前端产品开发团队,必须拥有如下的人才配备,也希望大家补充:
◎团队全体成员达到所有技能中的a级标准
◎团队全体成员必须掌握两项技能中的b级标准,并保证所有的b级标准在该团队中有50%以上成员能达到
◎团队全体成员必须掌握一项技能中的c级标准,并保证所有的c级标准在该团队中有25%以上成员能达到
具体技能描述:
【必备】UserInterface
◎PhotoShop/FireworksDesign
a-配合美工将草图形成具体的符合WebPage的设计
b-有快速制作分层高品质PSD、PNG的能力
c-能迅速将PSD、PNG的内容构思成div css或者table等HTML代码
◎FlashDesign
a-基本动画效果
b-复杂的交互体系设计,了解第三方swf辅助设计软件
c-复杂的交互体系设计以及较强的对各类外埠资源(PNG、JPG、MP3、WAV等)的整合能力。精通部分第三方辅助设计软件(AE、SwishMax、Swift3D等)
【必备】Browser-side(WebApplication)
◎XHTML/CSS
a-基本的layout实现
b-严格跨平台的layout实现以
c-优雅的HTMLcode,尽可能符合标准并有SEO的考虑因素。在任何平台、浏览器下基本保持一致。不要求了解各种CSS的hacks,但要求知道遇到问题应该如何查阅资料以在第一时间内解决。能够为JavaScript开发人员提供最好操作的DOM结构,让JS开发人员在开发的时候认为"一切都已经准备就绪了",而不是"捉襟见肘"。
◎JavaScript/Ajax/DOM
a-基本的DOM操作,了解AJAX,可以实现数据通信
b-基本的DOM操作,能写高效率的OOP代码,以降低维护成本
c-基于需求,进行不同的开发,选择合适的框架,做到代码效率最高,用户体验最好,代码下载量最小,并且可以在单独甚至更多产品线中最大限度重用代码
◎FlashDevelopement
a-基于Timeline的ActionScript操作,能实现简单交互
b-掌握a外,能实现数据层通信(与服务器以及本地SharedObject)
c-精通AS1-3,能根据需求进行各类RIA开发。无论是要求支持FlashPlayer8的,还是FlashPlayer9的,都能做到开发效率最高、灵活性最大(比如对HTML层的接口设计,等等)。
【必备】Client-side(DesktopApplication)
◎Apollo
a-产品级的封装,基本技术了解(如何打包、如何加入HTML和JavaScript等)
b-掌握a的同时,能利用Apollo的API独立设计、开发OS的文件I/O功能。
c-掌握基本技能的同时,对"3D概念体系"有所认知。这里"3D"即:Design(设计)、Development(开发)、Deploy(产品部署)。能用Apollo
◎WindowsPresentationFoundation、WPF/E(Silverlight)
(待定,欢迎补充)
【增补】Server-side(修改:经考虑,这个技能不参与评级)
本来列举了"1、Server端简单的技术、脚本"和"2、MediaServer(Red5)接口"作为"Web前端工程师技能列表"的一种(服务器、数据逻辑层技能的)评判标准。但似乎很多朋友对于前端工程师是否应该掌握Server端技能的必要性表示怀疑。确实,要掌握好上述的展现层技能不是意见容易的事情,而且前端工程师的确非常辛苦。但是,站在另一方面来说,辛苦的原因是什么,我不知道在你日夜奋战div CSS的时候思考过没有。就我的经验,前端的辛苦在于以下几个方面:
◎重复劳动多,大量的div css都是重复的,即便可以复制粘贴,但几千行的div海洋中去寻找一个入口恐怕都非常痛苦
◎需求变更多,往往你折腾几个小时终于把跨平台问题解决好了,而且在IE6、7和Firefox下面都能显示同样的效果了,甚至连Java