家里有人买了AFTERSHOKZ 韶音AS650 Air骨传导耳机,一直没体验过这类耳机,于是把玩了下,这里谈下个人的使用体验,同时兴许可以帮助那些纠结买哪类型耳机的朋友们。

优点

  • 设计新颖,明显区别于入耳式/耳罩式,对于有些入耳困难且不喜欢耳罩的,确实是个option
  • 做工不错,在千元档来说,这个谈不上突出优秀,算不错
  • 舒适度,毕竟不需要入耳,加上整体重量30g还可以,所以并不会对耳朵造成任何的负担

缺点

阅读全文 »

React文档中讲到一个概念-Error Boundaries(错误边界),今天正好在读一本书《Learning React》,借着刚读完的熟悉感 + 结合实际的项目,聊下个人的实践认知。

解决的问题范畴

A JavaScript error in a part of the UI shouldn’t break the whole app. To solve this problem for React users, React 16 introduces a new concept of an “error boundary”.

如上为官网开篇的一段介绍,由此可以看出该技术的根本目标是希望UI层的异常不要导致整体的App的崩溃。

注意

阅读全文 »

应一个朋友的诉求,实现了基于百度翻译API的workflow,这里简单share下

翻译服务

因为朋友的明确需求是百度翻译,所以这里也就选择了百度。但个人更喜欢谷歌翻译,因为确实翻译质量相对好些。

使用百度翻译服务需要以下两点

  • 注册百度账号
  • 获取APP ID,密钥,对应的API服务确保开通
阅读全文 »

为了生产发版后,能够及时的通知BA,Dev同学,趁着周末,研究了会儿Jenkins,这里简单Mark下。

安装配置

Plugin Manager

自带的mail过于简单,为了实现邮件模版自定义,需安装以下插件

阅读全文 »

最近看到一道基础题,沉痛打脸,发现对于JS的事件循环机制理解不扎实,于是梳理下,巩固基础。

基础题

先上原题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
console.log('start');
setTimeout(() => {
console.log('children2');
Promise.resolve().then(() => {
console.log('children3');
});
}, 0);

new Promise(function (resolve, reject) {
console.log('children4');
setTimeout(function () {
console.log('children5');
resolve('children6');
}, 0);
}).then((res) => {
console.log('children7');
setTimeout(() => {
console.log(res);
}, 0);
});

正确答案

阅读全文 »
0%