近两个月的一点总结
六月份到现在利用空闲的时间尝试了挺多之前没有接触过的东西,总的来说挺充实的感觉。趁着加班一个月的项目刚上线, Lia 也在今天迭代了 v2.0.0,抽空理一下这段时间的流水账。
React & webpack
可能在之前接触了很多 React 的布道,真正写 JSX 的时候并没有抵触,相反 React 里面各个部分的设计都让我敬佩,感觉大部分都是自然合理地出现而没有刻意。同时尽管之前粗糙地尝试过 Reflux,在接触 Redux 之后又耗费了大概两天的时间去理解其中数据流的意图。其他 react-router 之类的模块就比较好掌握了。关于 React 的尝试并没有深入,不敢多说了。
webpack 的话之前已经接触过,但还是通过这次的机会沉迷进去。作为一个模块打包工具,webpack 能做的东西绝对不只是打包,同时还为模块的独立和组件资源的聚合提供了构建工具层面的支持。同时 webpack 的使用也可以很简单,在接触了 vue-cli 之后也才意识到 webpack 的配置可以更加灵活。
学习 React 练手的过程中也挑了 Ant Design 去尝试,也挺好咯
Sublime Text & Atom
这期间为了舒服地写 React,从用了四年的 ST 切到了 Atom,然后大概过了一个月的时间又回到 ST。
一开始用 Atom 各方面都很优秀。默认主题 One Dark 很好看,语法高亮、代码校验和格式化、Terminal 等等插件也十分强大,偶尔遇到插件的问题也可以自己 Debug 找原因。同时 Atom 在 1.8 版本应该也比较完善了,使用过程中没有遇到一些致命的坑。
然而 Atom 在速度方面还是远远跟不上 ST。在 OS X 日常使用中可以感觉到 Atom 偶尔卡顿,检索和打开文件也稍微延时了一点点点,打开大文件马上奔溃。于是捣鼓了两天时间在 ST 上也配了 Material Theme 及一系列插件, 又回到使用 ST 的日子了。
ESLint & JSHint
也是 JSX 的缘故,从 JSHint 切到了 ESLint,自己花时间熟悉和捣鼓规则。两者对比的话,前者简单,后者灵活。同时,ESLint 也能更好地兼容 ES6 及之后的新语法,但由于各种规则都放开给自己捣鼓了,在刚接触的时候面对这么多的可配置项还是有点发呆。
Vue
上手了 React 之后,刚好有个小需求提到我这边。考虑到开发体验、组件的资源聚合及代码的可维护,果断抛弃了目前团队基于 FIS3 的构建流程,自己基于 webpack 另起炉灶。然后这次又选择了更加轻量和简单的 Vue 去尝试。
去年 Vue.js 0.12 的时候以 MVVM 框架的形式去尝试过,也遇到了一些坑,但是对 Vue 及其作者的印象都很好。这次围绕 Vue.js 1.0.26 展开项目,感觉与 React 也有很多相似的地方。Vue.js 延续了“简单”的风格,但却足够强大与 React 一拼,类似 Web Component 的代码组织风格使得组件的编写更加直观,指令和插件使得工具函数的封装和使用更加友好;vue-cli 对我来说表现十分惊艳;vuex 与 Redux 有很多概念相似,使用上却很多不同;vue-router 中规中矩,还有一些可以优化的地方;vue-resource 也是一个十分出色的模块,在编写测试用例的过程中帮了大忙。
期待 Vue.js 2.0
Karma
也是通过 vue-cli 的尝试下才接触了 Karma 这个方向,一下子打开了眼界。以往对于浏览器测试的认识停留在 Phantomjs 上,虽然很强大,但感觉还是挺不友好的。在看到了 Karma 之后马上决定用手上的项目试水,也是得益于项目基于 Vuejs 的组件化开发,在编写用例的时候没有很多纠结。vue-resource 的 interceptor
则为模拟服务器的不同响应提供了十分方便的测试途径。这次项目中几个主要功能模块的测试覆盖率在强迫症的推动下做到了 100%,项目提测到上线前端部分没出现功能性的 bug,撒花撒花
Travis CI & Coveralls
赶项目期间 Emilia 出现了一个 issue 才发现在 Windows 下面存在致命的问题导致模块不可用,这才真正对 test
这个文件夹怀有敬意,也才开始接触 CI 和 Coveralls。两个平台上手门槛不高,但是如何合理地设计和编写用例感觉还是要花一些时间和精力。
然后有好几次开虚拟机在 Windows 下面跑用例让人抓狂。
Mocha & Chai
抹茶是自己比较早开始接触的测试框架,使用起来感觉很融洽,然后 Chai 却是前几天 Lia 调整用例的时候才用上的,有点错过了很久的感觉。可扩展的插件和自定义的断言使得测试用例的更加直观和友好,写起来很满意。
最后
这段时间也放弃了书写分号,JS 也是 CSS 也是,解放了生产力;Lia 和 Emilia 迭代了个版本,速度快了十倍差不多,有点开心;加班加点一个月的时间现在也算空下来可以继续捣鼓自己的东西了,看着 TODO 清单还是有点缓不过来;也开始意识到到很多东西只能靠自己去挖掘和尝试,能从团队汲取和接触到的东西十分受限,危机感这么开心🎂