好长时间没有总结了,上一次的总结还是一年以前《两个多月以来,我都干了些啥》;趁着离职前的空闲时间,再次总结一下这一年多来的自己。
1、直播项目的backbone时期。
2015年的尾巴,正是react大放光彩的时候,angular的地位也如日中天,然而为了考虑兼容性,悦老大采用了在当时已有些过时的backbone。实话来讲,backbone给我留下的印象并不是很深刻,或许是由于先接触了angular的缘故吧!不过看到backbone以及underscore提供的很多好用的api,用起来还是挺不错的。悦老大重点让我去学习一下backbone关于继承的实现,尤其是让我去自己阅读源码,受限于自己当时的水平吧,虽然当时也会用到jq的extend方法,但总归理解起来并不是十分透切。
项目依旧是模块化的实现方式,不同功能的组件放在不同的文件,而且backbone提供的模型、集合、视图的结构也使得这一切变得十分了然。每一个模块所绑定的外层dom是谁,绑定的events有哪些,以级需要渲染的template模板。项目还是原来的项目,功能还是原来的功能,dom结构也许有所改变,但功能实现的原理并无不同,唯一不同的时换了一套不同的写法。
也是从这个时候,我开始去思考,框架存在的意义,与js业务的关系。当我们去做一个项目的时候,无论框架怎么变动,真正实现的业务逻辑其实并不会发生改变,而框架的不同,则意味着写js时所需要遵循的规则不同。用什么框架,就要遵守这个框架的写法,如何实现你可以不必去了解,只要知道我应该这么来用就可以了,简直就是'在我的地盘就得听我的'的翻版。
2、直播项目的react时期。
春节结束,2016年的伊始,时值react兴盛,悦老大对热门技术的追求也一直是他颇为自豪的一点,于是直播项目在春节期间也就孕生了。而熟悉了一个多月的的backbone开始被慢慢取代。对于我来说,不得不放下backbone,全身心投入到react的学习当中。入职的半年内,框架从angular到backbone到react,留给我琢磨新框架的时间并不太多,拿着悦老大已经搭好的项目架子,在一点一点添加细节的过程中学习,在后台测试提出的种种bug修改中成长,学习悦老大的写法,学习框架api的官方示例,而能力也在无形中渐渐得到提高。长老的入职,使前端组不再是两个人的小组。
对于react的初印象是简单,是的,虽然我还是个小白,但对这种形式的代码组织方式十分喜欢,看官方的示例也很好用的样子,但真正解决起问题来,还是一堆一堆的问题,尤其是悦老大引入flux让我迷惑了好一阵子。年前公司年会的时候,悦悦就给我安利了react的状态机、数据、分发,使用state及props来改变数据,采用当时并不理解的action处理事件,当时搞不明白的是为什么明明很容易事件,为什么要用flux绕这么一大圈?
一直到3月份以后react直播项目才真正上线,期间产品设计提出的需求都是由我具体实现,当然少不了悦老大在一边的帮助。然而这版react的直播项目最终引起了一场大的风波与变动。在跟市场部门进行演示的时候好像并不太顺利。回来之后,项目便要重新设计,重新架构。这一次改版,放弃了所有的框架,只由jquery及相关插件实现。只不过,这次只用jquery的改版,我并没有参与。从天津演示回来后,悦老大就跟长老开始了新的改版,而已经上线的react版直播项目,由我来负责维护和BUG修复。
3、无框架版的直播项目。
具体由悦老大与长老实现。这版项目的上线,成了为我成长速度放缓的开端。没有了悦老大的前端组,只剩下一个没多少经验的老员工和一个有些实战经验的新员工,没有技术上的领导,没有新鲜的前端技术引进。每天用自己熟悉的知识写些产品需要的效果。悦老大与长老的这版项目,后期我又制了一个皮肤模板,对页面结构进行了调整,并对业务逻辑进行了部分修改,后期添加一些功能,删除一些功能,也成为了目前线上版使用时间最长的一版。
经历这么多次的改版,我收获到了什么?我的收获不在于我实现了多少个功能,而在于见过了一个项目的不同的实现方式。同一种效果用不同的框架实现,而且是在这么短的时间内,直接把我从一个前端js新手变成一个前端新人,入了门,上了道,仅此,便可以使我对悦老大终生感恩。不在于他曾教我多少东西,而在于他带我领略了前端界的大好河山!