收集
thoughtworks的技术雷达,可以偶尔关注一下
https://www.thoughtworks.com/radar/languages-and-frameworks?blipid=202010002
Tools
sizzy
一个为移动端快速适配开发的开发者浏览器,很不错
https://sizzy.co/
思考
记录
由于现在大部分是碎片的记录,所以如果真的要吸收,肯定还是要有最终的总结才可以
https://www.bilibili.com/video/BV1Y541187G5
学习是先打碎后重塑的过程
状态管理
XState
finite state machines and statecharts for the modern web.
Js的有限状态机,和状态图
透過 Model-based Testing 我們只需要寫各個狀態下的斷言(assertion)就可以自動把各種狀態切換的路徑都測試完
https://blog.jerry-hong.com/posts/xstate-introduction/
优点
- 程式碼即 UI Spec:编码后可生成状态图,不仅可以直观地总览,更可以以此来向他人进行交流;
- 寫更少的測試?(成本可能比较高,且不一定靠谱)Model-based Testing,以 Model 为实现核心进行测试,感觉比较美好,可能抵不住来自产品的快乐修改。
- 更快速的路徑優化。路径优化的前提是产品能够明白路径真的优化了,
这个库的思路很有趣,因为本质上一个系统中的数据是由各个状态演化后决定的,如果能够精准定义状态的流程,数据的初始,中间态,结果,也就都能被准确描述并监控了。所以基于状态流程生成状态 model,再基于 model 进行测试,完成所有状态的可能性测试,确实至少保证了,数据->状态 状态->数据 的安全可靠。除了一些UI不可状态感知的边界,或者一些状态不定的副作用,似乎真的可行。
Immutable
immutable本质上就是改变对象的项,在对象树结构往上受影响的节点对象都返回一个新对象。
所以单对象使用解构就可以。
复杂对象树,则可以通过一些工具库,本质还是单对象节点的解构赋值。