- 博客(9)
- 收藏
- 关注
原创 从分层模式理解接口和解耦
如同两方之间订立的契约。契约被订立后,双方只需要关心合同(Contract),而无需关心对方的实施细节,这也是解耦的核心,是控制工程复杂度的核心。如果我们自己负责一个项目,或者一个复杂的模块,其实就是在不同的合同间切换角色。任何时刻,我们只需要扮演好当前关心的那个角色。这样就让我们开发的思维上下文变得可控,而不是无限地膨胀。事实上也做不到无限膨胀,任何人的思考上下文都是有限的。
2025-06-16 13:47:04
1055
原创 钉钉H5应用中拉起原生OA审核详情页(电脑端)
在电脑端打开的实测效果很好,会在右侧拉起一个审核详情的drawer。本功能文档属于第三方企业应用开发分类,但实际也适用于企业自建应用。涉及到的前端代码非常简单,甚至无需初始化jssdk。移动端同样地可以用这种方式打开。
2025-02-12 10:37:19
379
原创 Typescript - covariance & contravariance 协变与逆变
class Animal { eat() { }}class Dog extends Animal { bark() { }}declare let animals: Animal[]declare let dogs: Dog[]// covariantanimals = dogsdogs = animals // Error // contravariantdeclare let funcAnimal: (x: Animal) => voiddeclar
2020-12-15 09:28:32
209
1
原创 webstorm配置alias @
webstorm配置alias @在项目的根目录写一个新文件 alias.config.js/** * 由于 Vue CLI 3 不再使用传统的 webpack 配置文件,故 WebStorm 无法识别别名 * 本文件对项目无任何作用,仅作为 WebStorm 识别别名用 * 进入 WebStorm preferences -> Language & Framework -> JavaScript -> Webpack,选择这个文件即可 */const resolve
2020-09-23 11:42:54
1601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅