本篇文章首 lens over tea https://web.archive.org/web/20210521023726/https://artyom.me/lens-over-tea-1第一篇文章的启发,可以看作它的私人意译版本,关注点在与尝试用 ts 来取代原文中的 hs 语言,使得 ts 开发者能在更熟悉的语言环境中领悟原文中的精髓。
第一次尝试
文章开始,让我们从 lens 的基础语义出发,即 get 与 set。现在,我们先假设存在这样的一个需求,我们需要定义一组方法,用来向某个数组的第 i 个位置赋值和取值,需求很简单,很快,我们实现了第一版:
会议主要内容
整个系统所涉及的主要资源有
模版资源
会员单位资源
项目资源
保函订单资源
整个系统所涉及的员工角色
总公司与分公司
内勤人员
业务员与会员单位(这部分并不需要账户登录系统)
适用场景
主要适用于快速计算一个 monoid 对象的多次 concat 运算后的结果。核心点在于减少 concat 的调用次数。时间复杂度大致上为logN。
monoid 定义伴随着:
CI/CD中可能使用的git命令
获得pr分支相较于主分支所做的变更
搜集commit:
merge非rebase:git log origin/main..HEAD
rebase非merge:git log main..HEAD
通常意义上,我们在编写对应某个资源的管理页面的时候,我们往往会面对一大类功能大致相似的需求,例如:
传统意义上的curd
带筛选条件的查询
更新某个具体的值
对某个具体的值进行更新
与回收站的交互操作
....等等一系列的操作