趁着周末做下react-intl的类库升级。当前最新版本是v4.6.9,项目使用的版本是v2.3.18,这里决定升级到v3@latest

升级带来的benefit

  1. 修复已知的BUG,原先的版本当我传入de-de,国际化失效,当时的workaround是我将localData的key永远设定为en
  2. 针对localeData部分,体积会减小,因为已经使用了浏览器自带的Intl相关API
  3. withRef迁移到forwardRef,这也是目前组件间引用传递通用的方式,有益于统一
  4. 之前已经做了React,Redux这些主要类库的升级,Intl升级有益于整体架子将来的迭代升级
  5. 之前的国际化方法,比如formatMessage返回的是Node节点,比如包含了Span标签,而v3返回的是文本,严格来说渲染也会降低浏览器的开销,毕竟少了一对节点,当然比如有些国际化地方需要简单的文本,这样就可以直接满足

开源虽免费,版本须谨慎,但永恒不变,对于发展中的WEB技术和本身的产品项目都是不利的,所以还是需要渐进升级。

升级细目

阅读全文 »

最近因为Alfred的开发与社区的布道师沟通,期间在一个问题上我的描述让他出现了极大的困惑,他给了我这么个反馈-这是个X-Y-Problem,这时我才第一次知道X-Y Problem这个概念。

诚然,很多时候,我们去问的问题,我们需要自己先去想想,描述的问题是否是真正的问题,描述的是否自己能否看懂,否则就是在浪费他人时间,同时也浪费了自己的时间。

在职场也工作6年了,其实问问题,描述问题,是个能力, 不是说你30岁了,就真的会问问题。你不见得比小孩强,人家想吃什么直接说,你可能扯半天,别人不明白你到底想干嘛。

最近站点上了WebSocket,紧接面临的问题是Web服务集群下WS的通讯问题。Web服务多实例的情况下,假如A用户访问订阅了A服务的WS频道,但是B服务在后台发起了广播,实际上A用户是收不到消息的。于是问题来了,集群场景下,广播,单个用户准确发消息呢。

Tech Stack

首先,介绍下当前项目的技术栈

  • React v16.4.2
  • SpringBoot v2.1.6.RELEASE

解决方案

阅读全文 »

个人是AirPods等无线设备的强烈支持者,很多年不曾使用过有线鼠标,耳机了。但日常使用存在这样一个场景,平时AirPods是连接的iPhone,但有时比如要开会,我需要快速连接到Mac上去。当前的操作是,滚动鼠标到屏幕右上角蓝牙图标=》点击蓝牙图标,选择AirPods=》选择连接。OK,操作繁琐,于是我想做个workflow来快速连接断开蓝牙设备吧。

当前效果

当你选中一个断开连接的设备,则设备就会连接,反之,则会断开。妈妈再也不用繁琐的操作蓝牙连接了。

下载地址:戳这里

阅读全文 »

一直没做过Chrome拓展开发,最近发现京东跟阿里一样,在一些权益上刻意为用户设绊子,浪费宝贵的时间,于是顺便做个小工具,也权当Chrome插件开发练手。

工具的目的

  • 自动点击摇一摇
  • 定时自动获取目标金额优惠券

工具作用不大,但节省了几次鼠标点击的体力操作和对于定时才可以领取优惠券的惦记。so,个人觉得有点意义。

阅读全文 »
0%