参考文档 - protoc-gen-grpc-web工具
参考文档 - @egret/protobuf
glob是一个可以支持正则去批量读取文件获取文件路径的工具;
glob.sync标识同步,通常glob()pattern, [options], cb)是个异步函数。
glob.hasMagic(pattern, [options]) 是否有特殊字符;
glob.Glob 类,生成实例eventEmitter类型;
大括号部分可能包含斜杠字符,因此a{/b/c,bcd}会扩展为a/b/cand abcd;
*匹配单个路径部分中的 0 个或多个字符
?匹配 1 个字符
[…]匹配一系列字符,类似于 RegExp 范围。如果范围的第一个字符是!or^则它匹配不在范围内的任何字符。
!(pattern|pattern|pattern)匹配与提供的任何模式不匹配的任何内容。
?(pattern|pattern|pattern)匹配所提供模式的零次或一次出现。
+(pattern|pattern|pattern)匹配所提供模式的一次或多次出现。
(a|b|c)匹配所提供模式的零次或多次出现
@(pattern|pat|pat?erN)完全匹配提供的模式之一
** 如果“globstar”在路径部分中单独存在,则它匹配零个或多个目录以及搜索匹配项的子目录。它不会爬取符号链接的目录。
强大的代码管理服务工具;包含:代码镜像管理、CI/CD自动化构建触发实例更新、有无状态容器、环境变量管理(配置项configMap、Secret)、Ingress(域名服务指向实例)、存储卷(外部存储卷帮助存储日志,避免重启失去记录)、自定义声明周期标识实例或容器状态辅助定位问题、远程登录管理服务、负载均衡配置(cpu分配权重等)、共享数据结合NFS(自建NFS和云CFS)、路由及服务发现等丰富的功能。
架构:集群 cluster - 业务 - 命名空间namespace - 有无状态应用 - 服务 - 工作负载 workload - 实例prod - 镜像image
参考文件:
kubernetes官网
路由管理;
APP、Page、Component 应用、页面、组件注册及对应声明周期管理;(onload、、unload)
bindTap事件绑定,统一request封装请求;
API:文档
QQ原生 API,可以方便的调起QQ提供的能力,如获取用户信息,本地存储,支付功能等;事件监听、异步、同步类;
import - export 模块组件导出;
json用来配置当前页面window窗口信息;app.json配置整体内容:页面信息 + 一些系统配置(tabBar、组件等);
qss:支持大多数css指令,扩增css的字体单位及样式导入;
页面节点信息、区域变化、动画(qq.creatAnimation)
指标(显、隐);V = F( 显{a, b, c, …}, 隐 );数据驱动;
控制变量法、同质人群(科学比较、探究因果关系);设定目标(Minimal Detectable Effect最小预期提升);最小样本量;
圈选实验人群(画像、标签、用户包)、预估实验时长、数据埋点、实验发布&数据验证;
实验期间关注:流量平均、指标计算是否正常、对大用户影响;
分流同时 + 复用流量;(域,子域,层)
AA回溯(用户 vs 用户,旧数据 vs 新数据);
指标分析:复用原有BI指标;
测试时常见用例验证方式:特殊字符、纯数字、空格、分页;
// package.json
{
"type": "module"
}
太久没用,再这里再记一下
"editor.formatOnSave": false,
// 自动修复
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
},
// 配置 ESLint 检查的文件类型
"eslint.validate": ["javascript","vue","html"],
git diff a647ce21082cf2e8fa85e0c26382e0ef428526a6 HEAD --name-only
框架合成事件写原生
划出过快响应周期未生效
disabled
iframe
多窗口
未被检测到
面向对象拆分组装es6类方法,静态和实例方法作区分;
原型链 + call改this构造函数;es6的类底层采用了寄生组合式继承。
对象只有 __proto__ 和 constructor,函数 prototype 及对象 __proto__ 和 constructor。
obj.__proto__ === obj.constructor.prototype;
fun.prototype === fun.prototype;
Function.constructor === Function.constructor;
Function.prototype.constructor === Function.constructor;