去服务化探索
系列文章
如何使用 React 和 AWS Amplify 构建无服务器 Web 应用程序
Amplify Docs
Fiddler抓包
敬请期待!!!
Wireshark抓包
敬请期待!!!
抽象语法树(AST)浅析
抽象语法树(AST)浅析简介我们熟知的 Babel, ESlint 和 Prettier 都是基于 AST 的,那么 AST 到底是什么呢?
举个例子:
1var answer = 6 * 7;
转换为 AST 后是这样的在线查看:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103{ "type": "Program", "body": [ { "type": "VariableDeclaration", "declarations": [ { ...
前端性能监控
前端性能监控1. 为什么要做前端性能监控?
更快发现问题和解决问题
做产品的决策依据
提升前端工程师的技术广度和打造简历亮点
为业务扩展提供更多可能性
2. 前端监控目标2.1 稳定性
JS 错误 JS 执行错误或 Promise 异常
资源异常 script, link 等资源加载异常
接口错误 网络请求异常
白屏 页面空白
2.2 用户体验
加载时间 各阶段加载时间
TTFB
FP
FCP
FMP
FID
卡顿 超过 50ms 的长任务
2.3 业务
PV
UV
TP
3. 前端监控流程埋点 ==> 数据采集 ==> 数据建模存储 ==> 数据传输(实时/批量) ==> 数据统计(分析/挖掘)==> 数据可视化或者预警
3.1 常见埋点方案3.1.1 代码埋点
嵌入代码的形式进行代码埋点,比如点击事件时保存用户行为发送至服务端
优点是可以任意时刻精准发送或保存数据
缺点是工作量较大
3.1.2 可视化埋点
不需要开发人员参与,一般是通过三方实现,实质时使用系统代替人工代码埋点
3.1.3 无痕埋点
前端任意一个事件都被绑定一个标识,所有的事 ...
SUMMARY
SUMMARY
[] 区块链
[] 智能合约
JavaScript 设计思想
JavaScript 设计思想为什么函数是一等公民?在 JavaScript 中,函数可以赋值给一个变量,也可以作为函数的参数,还可以作为函数的返回值。如果某个编程语言的函数,可以和这个语言的数据类型做一样的事情,我们就把这个语言中的函数称为一等公民
快属性和慢属性:V8 是怎样提升对象属性访问速度的?V8 实现对象存储时,并没有完全采用字典的存储方式,这主要是出于性能的考量。因为字典是非线性的数据结构,查询效率会低于线性的数据结构
在 ECMAScript 规范中定义了数字属性应该按照索引值大小升序排列,字符串属性根据创建时的顺序升序排列。
在这里我们把对象中的数字属性称为排序属性,在 V8 中被称为 elements,字符串属性就被称为常规属性,在 V8 中被称为 properties。
在 V8 内部,为了有效地提升存储和访问这两种属性的性能,分别使用了两个线性数据结构来分别保存排序属性和常规属性,具体结构如下图所示:
\
快属性和慢属性将不同的属性分别保存到 elements 属性和 properties 属性中,无疑简化了程序的复杂度,但是在查找元素时,却多了一步操作,比如执 ...
SUMMARY
SUMMARYJavaScript 设计思想
JavaScript 设计思想
[] dns 是如何实现负载均衡的
[] nginx 如何实现负载均衡和反向代理
V8 编译流水线事件循环和垃圾回收
数据结构与算法
SUMMARYGitBook
SUMMARY
SUMMARY
去服务器化探索
[] dns 是如何实现负载均衡的
[] nginx 如何实现负载均衡和反向代理