2017前端总结

又一年到头了。

这一年断断续续都做了些什么呢?自从不做java以后今年是第一年完全投入到JavaScript的开发当中,模模糊糊的做了很多的事情,写了很多的代码,最后都剩下了些什么?有哪些是以后可以复用的?有哪些做了无用功?

要总结这一年的工作,脑子里至少是有几个关键词的,这些关键词代表了一个个事件,一个个项目,一个个工程,工作时间投入的80%都在这些关键词里了。

lighting

light从2015年就做了lighting开发工具,应该是说从2014年年末一个机缘巧合的机会做了第一个版本的jresplus工具也就是lighting的前身。这断断续续几年做下来lighting本身功能也丰富了很多,至少我在市面上没有发现过类似lighting的工具(不知道fis最近过得怎么样了?)。

lighting本身的定位是开发者的编译构建工具,辅助开发者应用的开发生命周期的维护,从目前的功能来看这个角色已经完成了90%,除了易用性上还有很大的问题以外,其他的部门我看来也似乎无可挑剔了。作为开发了这么多项目的一名开发者,如果让我选择一个工具来开发任何一个新项目我毫不犹豫的会用lighting(包括和webpack以及各种构建的PK),因为lighting简化了一些通用的步骤,同时提高了应用的实现效率。

今年对lighting的开发也投入了不少的工作量,主要的功能就是对webpack下的vue2.x的支持了,引入了webpack的编译构建机制,和lighting本身设计的编译构建流程成和在了一起,做出了新的type-vue插件,这个版本和之前的版本并不兼容(又不兼容!),确实也出过一些问题。这个功能的实现上,我完全参考了市面上通用的模块化的应用开发方式,整个依赖的建立和处理都基于webpack的体系来完成的,包括各种核心和非核心的构件!

lighting今年的第二个主要的功能应该就是最近才完成的jsnative的集成支持了。jsnative这项技术,让我看到了JavaScript实现高性能APP的希望,尤其是weex对jsnative技术的封装支持,大大降低了jsnative应用开发的成本,比起reactnative技术可以省却不少的学习成本,再加上lighting本身的技术体系就是建立在vue的框架之上的,让这一切来的理所当然,所以lighting对jsnative(严格来说应该是weex技术)的支持就顺利成章了。对weex的支持最大的难点是对web和native编译的差异化处理,这是工具集成时面临的一个最大的问题,好在weex-loader也是webpack下的一个loader插件,代码看下也并不难处理。jsnative技术需要工具和框架的相互配合,框架要自动识别当前的运行环境和编译环境,所以处理起来有大量的差异化代码要处理,毕竟是框架的底层的东西这个处理起来也是应该的,好在都解决了。

lighting今年的更新不可谓不大,各种变化都让它可以功能上更加完备,对开发的支持可以更加实际,但是同样lighting上本身有一些很明显的问题急需处理:

  1. 功能性并不能满足开发者(用户),开发者(用户)要的是易用性
  2. 编辑器、设计器才是解决开发过程的根本问题
  3. lighting本身的臃肿必将是一个致命的问题(插件化只能解决一部分问题)

股游记

今年的第二个关键字非股游记莫属了,这本是晶哥突发奇想的一个念头,具体化之后竟然成了一个十分完备功能完善的游戏(十分佩服晶哥天马行空的想法,做产品就是需要这样的意念和能力)。股游记本身的开发基本上1周就做完了,再加上设计和UI,本身总耗时应该在一个月以内。第一次做成一个这么完备的游戏应用还是很有成就感的,这个产品的完成也让我对一些问题有了新的认识,包括产品、设计、交互、样式等等,各种角度都刷新了我以前的一些观点和看法,比如:

  1. 产品设计是一个十分重要的阶段,功能的贯穿和交互流程的形成对整个产品的后续阶段都是很重要的基础,这个阶段可长不可短
  2. UI设计是一个专业性极强的领域,UI设计师也是产品设计的一部分
  3. 开发阶段是整个产品的最短的一个阶段也是成本最少的一个阶段,开发根本就不是重点(所以这个行业可以外包,也可以无视,所以叫IT民工)

说道IT民工这个说法,今年认识还是比较深了。这就是一个劳动力密集型的行业,并不是什么白领,这个人力成本虽然略高,但是每个人都是一颗可以被替换的棋子,脑力劳动的成本已经大大降低了。再加上很多的开发流程都已经标准化了,即使换成任何一个人做都不一定会做不好。今年国庆回了一趟家,发现好多同学都成了同行,曾经没有任何关联这个行业的都编程了我的业内人士了,这多少也印证了这个行业的一出率已经十分高了。所以还是要提高自己的核心竞争力。

再回头说股游记这款游戏,衍生了股游记系列的培训课程,多少也扩大了些知名度。另外最近编程大赛拿了个第三名,多少有了些名堂。

说道游戏,这几天有个微信小游戏挑一挑简直是把各个渠道的新闻刷个不停,各方惊呼根本停不下来,做游戏能做到这个份上,也是天下无敌了(恰好是今天也看到了游戏抄袭的传闻,不管结果如何,这个游戏设计的思路都是值得学习的)。这个跳一跳本身既简单有有趣,也是游戏开发的出路之一吧!

牛盾

最后又不得不说到牛盾,这个延宕了一年有余的区块链项目。从去年完工到到现在都是处理断断续续改进的状态,再加上随处可见的吐槽,成了今年工作的一个最大的背景噪音,有时候真想一次性重写好了,可以终于是没有动手(动手也不知道怎么做),这是我在牛盾身上最大的感触:无能为力!

为什么是无能为力,我对外宣城是因为区块链本身数据的存取上有加载速度太慢的缺陷交互优化上无法处理。而实际上是我真是不知道怎么做一个APP程序,使用H5套壳的方式开发出来的东西究竟能不能作为一个完整的应用?我在这里只能打一个大大的问号,根本就没法做啊!

最近牛盾又筹划了一个大的改版,我计划核心功能都使用jsnative技术来实现,不知道最后的效果如何?

总结

2017年转眼间就过去了,静下来想想一年的时间忙忙碌碌做了很多事情,做到最后竟然连做了这么多事情的印象都没有了,只剩下几个大事贯穿在了最后。

2018年要不一样,工作上的事情还是要有点成就出来,要不然不冷不热的整天浑浑噩噩兵来将挡水来土掩也没有意思。