前端开发工程师(下文简称前端),这个岗位我一直有些异议,异议就在前端的岗位职责有哪些?
必须掌握基本的Web前端开发技术,其中包括:CSS、HTML、DOM、jQuery、Ajax等,在掌握这些技术的同时,还要清楚地了解它们在不同浏览器上的兼容情况、渲染原理和存在的Bug。在一名合格的前端工程师的知识结构中,网站性能优化、SEO和服务器端的基础知识也是必须掌握的。
我们公司的前端,主要工作是切图、css、html、简单的js、兼容性问题。其中以css和兼容性问题为主要工作量。其他的涉及甚少,可能连JQuery插件都没有写过。而后端工程师基本除了css和兼容性问题,其他的都要考虑,并且解决在前端遇到的问题,如编写插件、组织页面、定义页面逻辑等。
随着技术的发展,我认为MVC也应该列入前端必须掌握的开发技术中。MVC和页面有着千丝万缕的联系,而且是不可切断的联系。
1:MVC可以定义页面结构,一个页面是需要多个Action去完成,并不是按照美工切完图后页面来组织项目的。
2:页面中的数据由Model进行传输和解析。
3:页面中的输入限制等也由Model来决定。
4:同一个页面中的子页面是有逻辑关系的,而这些关系决往往定了页面的显示效果。
5:页面中的效果(哪怕是一个最小的效果)需要Action去配合完成。
6:跟业务比较紧密的插件(如自定义的Jquery插件)同样需要MVC的支持。
在一个使用MVC来构建的网站中,前端的工作量绝不仅仅是CSS,在此基础上,我非常希望前端能够管理网站的项目,这个项目中不仅包含维护HTML、CSS、js,更能够根须项目的功能需要维护页面的逻辑和组织结构,并延伸到MVC。MVC之后的工作全部交给后端。
也许在一个小型的网站项目中,这显得有些强求,因为后端将无事可做或可做的非常少。但是在一个大型的项目、分布式的项目中,前端的这种能力将给整个项目带来好处。
当然这也对前端提除了更高的要求,我一直认为,前端是可以承担项目经理的职责,前端的发展不应该仅仅是技术方面的。
对于网站型项目,前端的责任是非常重大的,因为客户最直接的印象是来自前端,客户的业务也最直接的体现在前端,前端作为项目经理与客户的沟通,可以达到项目的最好结果。