感知世界

我的吃穿用玩学知趣...

我们所对前端视觉效果与用户交互体验一向不重视,以致于我们部门一个现场开发的项目(BS架构),无论页面设计还是交互体验都很粗糙,达不到用户的要求。用户把我们老大叫去观摩,我们老大在用户现场挂不住面子,气急败坏的给我打电话。

作为一个偏设计和页面交互的前端,我正在给另一群用户配发工作站、打印机、扫描仪、喷绘仪、刻字机。再抽空出差给用户搞搞GIS软件培训,维护下客户的服务器和盘阵。这些已经干了三四年了,满脑子都在琢磨着今后不做程序员了又该去做什么,突然被老大一顿数落:“这些没用的先放放,干好前端才重要。” 我简直哭笑不得。

我们在现场的项目组没有前端这个概念,一群写Java的程序员,使用AdminLTE随便搭出几个页面来,名头还很响,号称响应式布局,可页面元素的构建完全靠运气,动辄出现在意想不到的位置上,还调整不了。那审美也还停留在上世纪。现在即使体制内的客户也越发挑剔了,这要能蒙混过关才怪。

现在的前端变化太快,日新月异。我身在体制内,前端又不被重视,如今的流行技术已经让我感觉非常陌生了,这也正是我心灰意冷的重要原因。不过好在我们项目起点低,我把四年前的技术拿出来,依旧可以让他们满足感十足。

我们老大派了一个美工和我一起去救场,美工了解完业务逻辑,做了一套让客户顺眼的效果图,她的工作就大功告成了。可这些精美设计图与现有的简陋页面间的落差巨大,当我看到代码时,更是直接崩溃。你能想象到所有的样式都直接写到HTML标签和JS代码里的样子么?你能想象二十几层的div嵌套么?而且代码习惯也很不好,引用第三方插件,在HTML里随时随地的引,既不知道统一放在Head区,也不讲究加载顺序。JS里一个函数接着一个函数,几乎看不到注释。文件的目录结构就是没有目录结构,JS与HTML放在同一个目录下,里面充斥着“XXXX副本1”、“XXXX副本2”、“XXXX1111.html”、“新建文件2222.html”、“js.js”、“js2345.js”这类东东。在这样的代码上搞美化,一定会生不如死。

老大为了避免我三心二意,直接把我调进了这个项所属的TEAM。这种情况下,我直接对项目组表态:“既然人已经过来了,那就不是短时间救个场的事儿了,我需要完全改变这个组关于前端的工作方式,不能走冤枉路,更不能挖坑。你们想要应付两天后的视察,心情迫切我理解,我可以赶个纯前端的小DEMO安慰下用户,但我不会去碰现有的项目代码,那是在错误的路上越走越远,而且很可能会徒劳无功,在时间本来就很紧的情况下这简直是灾难。现在项目前端搞成这样,正是因为没人会写前端,也不了解前端应有的工作方式,所以我只会以我认为合理的方式来工作。”

好在天文台重构之后,领导和相关的同事对我页面效果实现能力还是很认可的,他们也不再只把我当成硬件集成高手和培训大师。特别是那个美工,到处替我吹嘘,说她的效果图第一次被人不打折扣的从静到动的实现出来。况且,我的表态也很有道理,站在对项目未来负责的角度上,项目负责人也无法辩驳。

我花三天时间赶制的统计页面几乎完全实现了美工的创意,不仅安慰了用户,也安慰了项目负责人。之后的一周,却没有任何页面上的进展。项目负责人对此似懂非懂,却不得不容忍,反正我确实也在加班加点的编码。

我实际上从零开始编写了一个面向对象的JS框架,用来实现样式交互与内容功能的分离。

好在此框架的应用场景非常具体,不需要很多的功能,也不需要兼顾各种可能性。所以,我把框架封装的非常彻底,先前客串“前端”的“后端”只需要编写JS,串联好各模块的触发,把JSON传进相应接口,并和后端完成数据交互就可以了,这也是他作为“后端”所擅长的。

感觉这一周多的加班加点也还是有意义的,今后我可以相对单纯的面对界面样式和交互效果了,至少不会为烂代码心累了。