DaraW

Code is Poetry

浅谈 B 站新 BV 号的设计

最近 B 站将 AV 号切换到了 BV 号,在知乎引起了较广泛的讨论,本来我只是吃瓜群众,但是在知乎上看到了一个说用 MD5 当地址的回答,我评论 MD5 不可行后,评论区有不少人质疑我,因此写了一个回答来解释为什么 MD5 不可行,以及我对 BV 号的看法。感觉这其实是一个很有意思的问题,所以将我的回答搬到了这里。

复盘:Vue.js 是如何成功的

前几天 Vue.js 发布了纪录片,恰巧我从 2015 年就在生产环境使用过 Vue 1.0,看着 Vue 从 1.0 到 3.0、从前端框架混战到三足鼎立,虽然后来在生产环境中使用 Vue 并不多,但也一直保持着对 Vue 和 Evan 的关注。所以这次我想从纪录片内容入手,谈谈 Vue 是如何成功的。

React 应用性能优化一例

背景

在我们的应用中有一个存储在 Redux 中的全局状态机,保存着整个应用的核心状态,其类型大概如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum FSMStatus {
Unknown = 0,
Active = 1,
Inactive = 2,
}

interface FSM {
global_id: number; // 状态机实例的全局唯一 ID
timestamp: number; // 当前时间,每隔一秒会变化
fsm_status: FSMStatus; // 整个状态机的状态
x_mod_status: FSMStatus; // x 模块的状态
x_mod_data: any; // x 模块的核心数据
y_mod_status: FSMStatus; // y 模块的状态
y_mod_data: any; // y 模块的核心数据
}

还有一些 React 组件,其中 Main 组件包含了 Inner 组件,Inner 组件中使用了 rc-tooltip 实现了弹窗效果。弹窗中有一个列表,列表中有一条带有特殊样式的处于激活状态的数据,且可以通过按键操作切换处于激活状态的数据项。

某天突然用户报告说操作弹窗列表时感到卡顿,而且在弹窗开着的时候其他模块会明显感觉比较卡。

Thrift RPC Mock 方案探索

背景分析

在传统前后端分离开发的场景下,前端和后端一般定好 HTTP API 接口后就各自进行开发,前端开发中使用 EasyMock、webpack-api-mock 等平台/工具进行接口的 mock,后端通过 Postman / curl 等工具进行接口的自测。

在微服务场景下,各服务之间通过 IDL 定义好 RPC 接口。但是接口调用方依然有 mock 接口的需求,接口提供方也有着自测接口的需求。公司内的服务化平台已经提供了较为完善的接口测试工具,自己实现一个相对也比较容易,但目前却没有一个比较完善的 RPC Mock 方案。

在新项目启动后,前端、API 层和依赖的 Service 往往同步开始开发,只要依赖的 Service 未提供,API 和前端的开发、自测都会被阻塞,在侧重数据展示类需求的项目中这种问题更加严重。

所以,有必要尝试探索一套 RPC Mock 的方案,在保证开发者使用体验的前提下,解决上述问题。

前端视频质量监控

背景

业务中使用到视频播放后,一些不确定的因素例如用户端网络异常、CDN 异常等等,导致视频加载缓慢和发生卡顿,这些质量问题会给用户体验带来较大的伤害,也会影响产品的留存转化率。因此对线上视频进行质量监控意义很大,可以让我们明确知道用户端的异常发生概率,以便做进一步的优化。

多说一句再见

因公司业务调整,非常遗憾的向大家宣布多说项目即将关闭。 我们将于2017年6月1日正式关停服务,在此之前您可以通过后台的数据导出功能导出自己站点的评论数据。 对此给您造成的不便,我们深表歉意,感谢您的一路相伴。

从博客搭建好以来一直使用着多说作为评论系统,虽然多说有着不少的黑点,比如上了HTTPS后失去地址栏绿锁,也听说过多说有各种各样的bug,服务器故障导致评论框不出现更是没少见过,不过以后再也不能黑多说了。

《你不知道的JS上卷》阅读小记之setTimeout的this指向问题

这几天翻看了下被传的神乎其神的《你不知道的JS》这本书,其实以前就看过一次,不过当时的level并不高,而且感觉这本书讲的有点绕,所以看了一点就没坚持下去。
这次翻看感觉还是比较轻松的,有些地方写的很好,有的地方还是感觉讲的有点绕(可能是翻译的问题),但总的来说这本书还是很不错的,基本都是JS中有坑、新手难以理解的点,简直就是《JS:The Bad Parts》(哈,开个玩笑~)。
这个小记不是打算记录书中内容的笔记,而是想补充纠正书中的讲的不完善的地方。

ES6实现内部类的写法

最近在把 JIris 移植到JS平台 Iris.js 的过程中不断的在Java和JS两种语言之间切换,ES6的 Class 某种程度来说可以写出更加优雅的代码,而不用去管背后的原型实现。但是不得不说有一个遗憾就是 ES6 虽然支持了静态方法,但是还不支持静态属性和静态类,于是仔细观察了下发现了几种ES6实现静态类的相对优雅的写法。

Proudly powered by Hexo and Theme by Hacker
© 2020 DaraW