TS + Redux 的一些感想

好久没写文章了,一直在贡献开源框架和一些库,也不擅长写文章,看我已往的文章,全都是干瘪瘪的,没有半点废话。此次算是写个软文吧,实话实说,也没期待会有多少人看。html


连接先放着:https://github.com/redux-model/redux-model前端


记得2016年刚创业失败出来找工做,找了一家教育类的互联网公司(如今也是)。这家公司用的是es6 + react + redux + webpack的前端架构。而我创业期间,还在写 es3 + jquery,研究各类构造函数/继承/原型 等一些比较底层的东西。因此进了新公司,算是解放了吧,有种从2g网络迁移到4g网络的感受,仙气飘飘。react

那时候的redux,哇哦,先写上3个actionType类型(请求须要3个状态),再写一个action和一个reducer,reducer里写上3个case,分别对应3个actionType。若是Reducer数据比较复杂,那就是各类Object.assign了。因此在写了两个月以后,俨然发现我是否是在一直写模板文件啊?感受每次都是似曾相识?但也没啥办法,抽也无法抽,毕竟对redux了解不够深刻。我同事的作法是写一个代码片断,每次须要的时候自动生成,而后修修改改完事。jquery

断断续续写了2年左右原生的Redux,直到2018年,Typescript已经有点纸包不住火了,我也被点燃了,因此尝试了好几回,总想把项目转到ts去,因而网上各类搜索最佳实践案例,每种都尝试过去,各类坎坷。断断续续地,终于在2018年末给安排上了!webpack

写了初版的Ts + React + Redux,还算满意,总算都有类型了,数据能够精准追踪。如今是2019年,也快30岁了,你知道的,人老了,就写不动了,须要合理地偷懒,须要准时下班git

内心其实早有疙瘩,这Redux模板是时候给治一治了。因而有了初版的Redux-Model,目的很明确,干掉actionType,把action和reducer整合在一块儿,再也不写3个文件。因此初版本的模型,分的很细,一个模型只包含一个action,当咱们有多个模型须要做用到同一个reducer时,reducer须要附在其中一个模型里。es6

现在,Redux-Model已经升到了8.0了,框架早已稳定下来,一个模型能够写无数个action和一个reducer,数据变化也一目了然。因此我最初的那个TS项目,至少大规模重构了5次的模型,每次都是几百个模型文件变动。真正地稳定应该是在6.0的时候,由于这个版本解决了一个类型自动反推导方面的大难题,这个问题至少花了我3个月的上班时间去冥思和尝试才成功。那时候,公司里有3个团队已经已经在用个人模型框架(包括TS也是我在公司里推广的,如今全部团队都已经接受TS了),想让他们升级,就必须一个一个帮忙升,还真是有点很差意思了。github

付出老是有回报的,如今在去采访那几个团队,对框架的评价是完美,这不也是我所追求的吗?web

框架虽好,但没有大厂背景,没有我的光环,想推广起来简直和作梦同样----想的美。推广过一段时间,大部分是在群里,不过换来的都是冷嘲热讽,什么 dva不香吗?mobx不香吗? 这些框架难道我没尝试过吗,就你知道香?都是给JS用户设计的,对TS不太友好,至少还没达到个人要求,因此我才要写这么一个框架,为TS量身定制的Redux框架。七夕那天,我在一个聊了挺久的群发了一个框架连接(加群大半年,总共没发超过5次),当场就被群主骂了,我无法接受,由于他以为我推广这个是为了找到更好的工做?这种侮辱开源精神的事,我无法接受,退群了。过后群主还要再私发我一条微信:无利不起早?? 我没有回复,不必了,不与小人争辩。redux

不是每一个人都为找工做而写代码。兴趣是个好东西,高考结束,别人都在网吧打游戏,我在书店背了几段html脚本去网吧运行,给小伙伴看效果。在同事眼里,我就是那种聊到代码就两眼放光的人。而开源,是为了完善生态,让你们有更好的选择。固然了,某种程度也是想证实本身能力ok,码痴不都这样吗?

感兴趣的TS铁粉,推荐使用。JS用户不推荐使用,由于是TS定制的,但欢迎star,让更多的人知道这个库,毕竟我太缺光环了。

好很差用,您去看看Readme,而后demo运行看看就知道什么叫手中无TS,心中有TS。我不去吹,由于自信。

https://github.com/redux-model/redux-model

相关文章
相关标签/搜索