GridManager历程
GridManager 启动于2015年02月10日, 不曾想这一坚持已经1200多天了。
总想为此记录些什么,但一直未曾动手。
午饭后,公司很安静。带上耳机,听着歌,开始吧。
"我要从南走到北,我还要从白走黑。我要人们都看到我,但不知道我是谁"。
曾经的一个领导和我们说过一句话, 记忆深刻。
"技术不进则死"。
这是一个很好的时代,却又是一个很坏的时代。
我们不再需要像以前一样去解决IE兼容问题(IE: 有人喊我?), 但却有更多的新技术需要不断的学习。
一个选择
"这个插件网上就有, 你随便找上一个copy进来就OK了。"
"网上就有现成的,怎么整了一天还没整好?"
这些所谓的现成的插件,在引入项目后才会暴露出各种需要投入精力的问题。
或多或少,或简或易。
从12年开始,开始动手写日常使用到的前端插件。
从抄到改,再到借鉴...
轮播、上传、下拉框、表单验证...
会有成就感,但也会觉着太简单。
那段时间大数据很火, 各种概念各种解释。
然而在这个大数据时代,我看到了对前端而言最直接的就是表格展示。
当码下GridMananager的第一行,很清楚这将会提升自我,就像ztree和ueditor的作者一样。
开源描述中,我用如下话语来描述:
"快速、灵活的对Table标签进行实例化,让Table标签充满活力。"
是描述也是目标,是值得去追的一个梦。
彼时追人梦, 此时依然是。
快速迭代
我党领导人号召我们: "撸起袖子加油干"
每个周未,每个下班后的点滴时间。 每个午饭后、晚饭前。
随着迭代版本的上升,不断强化功能,渐性优化性能。最终定下以下功能主体:
- 宽度调整
- 位置调整
- 可视化调整
- 排序功能
- 分页功能
- 用户偏好记忆
- 自动生成序号
- 自动生成全选
- 导出数据
- 快捷右键菜单
- 国际化配置
当列出这些功能时,我更多看到的是对应功能开中时遇到的点滴,是当时的很多难点被踩在脚下的那种快感。
jQuery free
思考了许久,终于开始,这是一个艰难的开始。
自从10年开始使用jquery以来,一直很钟爱这个类库,简单方便且锋利。
然而时代在变化,老夫一把jquery走天下的时代已经过去了。
期间对js的认知与实践提升明显,并沉淀下名为jTool.js的类库。
很想告诉你或者他,动起手来去实现一个类库,或许在以后的编码时代会因此受益。
重构
多轮迭代后代码的可读性变低,同时ES2015的魅力日渐突显。
然而时代在变化,ES2015终将引领下一代的javascript。
本次重构对之前的功能进行了大刀阔斧(对下不兼容)的修改:
- 将gulp替换为webpack
- ES5全面替换为ES2015
- 将listManager更名为GridManager,至于更名,grid和list哪个才能更好的理解为表格?
增加单元测试
在一次发布中出现了一些意外,虽然仅仅是一些小意外.
从issues中的反馈意识到这是一个很严重的问题,是急需需要解决的问题。
在一系列的反复调整之后,最终形成karma + jasmine + webapck + coverage的测试体系。
每次发布前的npm run test
, 成为一种风险把控。
在此之前从没有如此的认同单元测试,也相信这终将会成为一种大家都遵守的契约。
为了框架
这些年前端框架层出不穷
angularjs刚达成熟练工,react势头就上来了。
react上手写完两个项目, angularjs割掉了两字母进入了angular2.0时代。
还没来的急看angular2.0+typescript, Vue强势崛起。
好吧,Vue项目练一练, angular2.0先放一放。
时代在变化...
自从GridManager完成jquery free之后,一度蜜汁自信: "不依赖任何框架,所以在各框架下都可以使用"。
然而什么都行,就又代表着什么都不行。
虽然使用没问题,但是对框架模版却无法解析。
随后推出gridmanager-vue, 用于解决在vue框架中的痛点.
然而当0.1.0版本发布时,短时间的兴奋过后更多的感到的是压力。
angular,react这两个版本正在等待解决
项目结构随着功能的调整而出现的不清晰感也需要去重新设计。
...
这个时代下,你我同为追梦人。
时代在变化, 技术在更迭。
愿在技术更迭的浪潮中,你我穿戴着被汗水与浪花打湿的衣钵总能平稳着陆。