一晃两三年过去了,对前端发展的一点侃

虽然自己不是致力于前端的,但是有时候也会保持着一点兴趣,这要归功于在3年前的公司里用Extjs3做一个数据库集群的web管理系统。当时后端PHP和Java部分虽也写写,但前端整个一系统就我和leader两个人搞,所以大部分时候做个新功能都是拜托同事帮我写好后台代码,我就可以全身心地学Extjs。

那时候是实习,菜鸟一个,以前的经验就到js写个输入为空判断为止。Extjs这个东西我现在想想确实学习曲线还是挺高的,需要熟悉的内容太多,不过当时初出茅庐第一眼看到的都是妈,初学下来感觉还真不错,居然不会写前端都能轻松搞出一套至少整齐的管理系统界面,extjs的样式也是在一年后才开始看吐。但是重要的是,extjs这种面向对象的思维在我初入行业之时给了我莫大的启迪和熏陶。反倒是现在公司做的传统风格的web,页面中js堆在上半部,html堆在下半部,充斥大量的js字符串拼接html,单引号双引号加号绝对会把你搞吐血。

当时Extjs还是3.0版本,由于自己初出茅庐对底层肯定玩不转,但是至少使用上还是非常熟练,通过各种控件的组合自己封装更大型的组件。弄了一个弹出窗,内部是一个操作系统目录树(其实是grid),用来代替原生的文件选择,可以直接new出来用,还是蛮有成就感的。

另外,当时的leader也是我比较钦佩的人,记得Extjs3的图表组件还是很弱,没有那种基于线图的堆栈图,当时他就在线图的基础上花了几个小时自己扩展出了一个堆栈图,用了一段时间我们发现有点小bug,有些地方没有正常的填充上颜色,于是让我把这个bug改掉。当时我就吐血了,这尼玛要我命啦,一看图表的源码,比普通的控件源码要复杂的多,有大量的for循环甚至单个字母的变量。。于是按照菜鸟的做法:尝试+蒙,把这个问题好像规避掉了。但是leader直接问了我一句,这个bug的原因是什么?? 然后必然是不知道,也顺利地被他骂了一顿,其实我三天两头要被骂,leader对产品的细节和代码要求都非常高。所以耐下心,仔仔细细调试了两天,整整两天,终于确确实实知道了bug的原因和解决办法。

这些因素加起来,给我的最大帮助是:彻彻底底跨过了一个心理上的鸿沟

后来由于项目组的原因,不再做这个系统了,也再没有机会去实践中接触Extjs了,只是我的gmail中一直是订阅的extjs团队的邮件,所以有些新东西都会去看一下,甚至是小玩一下。

记得当时出了Extjs4,这个版本接触的非常少,知道是加入了流行的MVC模式,界面也变得扁平化了,相比classic的那套皮肤,确实更好看了。classic那套用了10年了,必须是看吐了。后来又出了Extjs5,融入了更流行的MVVM模式。。。真是与时俱进啊,这个版本我倒是自己简单写过一些功能,总体上要比4来的更习惯一点,也许是这个时候我已经有了一点MV*的基础吧。再就是前段时间收到邮件,Extjs6快出来了,感慨Sencha公司也要走一年一个版本的节奏啊。新特性我就没时间去关注了,不过最让我惊喜的,居然提供了IntelliJ Idea的插件,说实话当年用eclipse写extjs虽然有一个勉强的js插件,但是还是用着不爽,相信IntelliJ的插件一定是高冷的!

回过去说,Extjs4开始,推出了命令行工具,5里也增强了,据说6还要增强。现代专业的前端都是要搞的和后端一样,有编译打包测试部署自动化工具,extjs作为一个像Apple一样闭环系统,推出自家的工具也是大势所趋啊。Sencha公司的Extjs在大众普及面其实并不广,也是因为它门槛比较高,包括学习曲线和授权以及应用场景还有性能优化能力,但是挡不住它依然是世界上数一数二做前端的公司,毕竟每年都有SenchaCon。

说起前端,不得不说bootstrap,我还是在它没有井喷式爆发前,被我朋友推荐后玩的,第一眼就是惊艳!小清新!只需要设置几个class,就能出现美观的按钮、表格和下拉列表。之后几年,自己玩的时候,做页面基本都用bootstrap。有时候看一眼Extjs,"呵呵"。不过bootstrap毕竟只是css样式库,还是比较简单,东西也不多,官网文档有段时间都翻烂了。现在即便网友做了中文版官网文档,也还是习惯于直接访问英文官网。

前端这两年发展确实快,虽然mvc模式历史以来一直有,但是前端mvc这两年算是个井喷。但是因为自己的工作中用不到,所以也是自己玩玩。学了下Angularjs,卧槽确实用起来方便,大型项目没经历过没有发言权,但是以我目前的认知范围,这东西确实是革命性的。

因为我第一反应是,当你要动态改变页面数据的时候,不需要自己手里拿着变量,用加号去拼接一段html字符串,然后再用jquery糊到页面上。。。=,.=,你需要做的就是声明声明再声明

声明式编程其实也是现代越来越流行的概念,只不过声明式也有个明显的缺点,就是如果你不熟悉项目里声明规则,可能你在读逻辑的时候,要找某些声明的地方,挺费劲。。。这个我在读别人的js代码时有切身感受,当然不是angularjs,普通的js,因为代码里有大量的自定义事件,而调用事件的方式就是  xxx.trigger('yyy事件'),但是我根本不知道当时的开发人员是在哪里把yyy事件给on到xxx对象上去的。。。于是名字特殊点的全局搜索能容易找到,名字大众化一点的就。。。。

扯远了。。。现在这一类MV*框架太多了,facebook还出了reactJs,据说是要革angularjs的命,不过我觉得这些东西都挺好的,现代很多web系统,都讲究减少刷新,富客户端,js做业务计算。如果再全部堆在html上部,就感觉很糟糕,然后方法里都是各种直接操作dom的代码,设置一个css,remove一个元素。作为一个崇尚后端server级软件架构和设计的人,混在一起的东西打从心眼里不爽。

这两个月,一直在参与改别人系统的bug,也是富客户端的,重js的前端代码,这个系统的难度确实比较大,做出来本身已经是很了不起的,但是。。。bug实在太多了。因为是改别人系统,每次要搞一个bug,都在前前后后看很久,既要了解原有逻辑,又要小心代码陷阱。从一开始自己的代码尽量优雅一点,到后来看淡了该贴泥巴就贴泥巴,到现在已经贴了好几把屎了。。特别IE789兼容性,简直一坨翔,还是那句话,IE浏览器就是人类进步的绊脚石(IE:当年看星星叫人家小甜甜,现在老了叫人家牛夫人)

过程虽然很糟糕,但是也不是说完全没用,这个过程中,也学到很多以前不在意,或者没机会去在意的技术细节,包括一些前端工具的使用,像我这种热爱学习的人当然是还能接受啦。

不过老子真的不是前端啊!!

你可能感兴趣的:(JavaScript,mvc,AngularJS,bootstrap,ExtJs)