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

相關文章
相關標籤/搜索