News | Article

Ask for Advice, Not Permission

团队协作中,当需要做一件事情可能会问,“嘿,我打算做 X,你同意吗?”,去征询对方的许可。

但是许可意味着对方需要承担一定的责任,当这件事情没做好,可能会被甩锅,“我问过 Y 的,他说可以的。”

所以许可可能会给对方带来责任和压力,让对方不愿意合作。

如果换一种说法,“嘿,我打算做 X,你有什么建议吗?”。

去寻求建议而不是许可,给建议是不需要对方承担责任的,这样对方会更放心地提供意见,从而得到一些中肯的建议。

提供建议相比许可,也让对方多了一些参与感,会让对方对事情的结果增加兴趣。

Bug squash: An underrated interview question

相比上来就问算法题,八股文,作者更推荐一种面试题:

这是您以前从未见过的存储库。以下是如何在此存储库中构建和运行测试。

有一个错误:我们看到结果是 X,但我们想看到 Y。

找到错误原因,或者可能编写一些代码来修复它。

作者认为这类题目的好处有:

  • 反映了日常开发的流程。

  • 比较有趣。

  • 问题明确,面试者不用去揣测面试官到底想问什么。

  • 能看到候选人实际开发的一些环境,方法。可能会看到对方能非常熟练地使用 vim,linux,或者调试方法很高效等。

其实就是把一个日常开发问题给面试者,看他如何解决,从而可以在多种方面观察面试者是否符合要求。

Node.js Takes Steps Towards Removing Corepack

NodeJS 计划将 Corepack 删除,不内置在 NodeJS 中。

Corepack 是一个 NodeJS 脚本,允许你使用 npm,yarn,pnpm,而无需安装它们。

促成这个计划,是因为有人建议把 Corepack 开启

BYTES 作者的评论是:

Let that be a lesson to anyone else who dares to publicly question the authority of npm.

让这成为任何敢于公开质疑 npm 权威的人的一个教训。

有种 “你们敢质疑 npm?那我就把 corepack 删了。” 的喜感。

Good Refactoring vs Bad Refactoring

A flow chart about understanding code, making small changes, getting feedback, repeating

不好的重构:

  • 改变了代码风格,添加不必要的依赖,导致代码的不一致性

  • 不必要的抽象,原来一个函数就能解决,没必要抽象一个 class 实现

  • 不理解原来的代码逻辑,导致功能丢失

  • 不了解业务背景,实现的逻辑没有业务价值

  • 过度整合代码(@see: Goodbye, Clean Code)

前阵子做也在重构一段代码逻辑,以为已经完全掌握这段逻辑了,结果测试的时候发现执行出错了。

原来的代码中存在一个 forEach,用于从数组中查找一个符合条件的元素。

我重构的时候就换成了语义更合适的 find,但 find 是只找第一个符合条件的元素。

而原来的逻辑中,数组中存在多个同名的元素,用 forEach 实际会找到最后一个匹配的元素,用 find 是找不到的,这就导致了逻辑执行失败。

有用例去兜底很重要,不然改完都不知道改错了。

Tacit Knowledge is Dangerous

A meme with text. The text is: new employee: where's the documentation? team lead: i am the documentation

团队协作中一些知识是藏在大家脑子里的,没有形成文档,当碰到一个问题的时候,要问好多人才能搞清楚,问题也会被反反复复的问和答。

更好的做法是将知识形成文档,通过文档交流。

Having docs and videos is the middle ground of scaling

总体来说,阅读文档在任何规模的团队,任何地方,整体的时间相对还是比较快的。

  • 如何团队小,大家都聚集在一起,相互询问确实比较快

  • 如果团队大,或者大家都远程,甚至时区都不同,那么问人就不如有文档来的快

  • 相对而言,文档都是较好的选择

关于文档的编写,可以看看作者写的 Good Docs Take Great Effort

也分享一些我收藏的链接:

hacker-laws

一个 awesome-list,收集了一些开发人员常见的理论,原则,模式。

代码之外 Beyond Code - 第 11 集 | Owen 聊沉浸式翻译的起源、裸辞三年的经历、做穷人也能用的产品、大亚湾的生活

沉浸式翻译确实好用,这是关于作者的一期播客。

我也看了作者的博客,博客看起来很简洁,形式上有点像个人知识库,内容和风格都挺喜欢。

Tutorial

The Art of Unix Programming

Unix 编程艺术,经典书籍。

Toasts are Bad UX

作者认为 toast 是一种不好的交互,因为 toast 出现的地方和实际交互的地方不在一起,分散了用户注意,增加了用户的操作成本。

不仅是 toast,有一些页面上的交互设计,做一个任务,需要在页面许多不同地方,或者多个页面来来回回的交互才能完成,也很烦人。

好的交互对于用户来说应该是操作便利,认知成本比较低的。

50 TypeScript F*ck Ups Book

搞砸 TypeScript 代码的 50 个微妙错误,以及如何避免和修复它们。

Introduction to Bash Scripting

一本 Bash 脚本编写教程。

Putting the “You” in CPU

把你当作 CPU,看看 CPU 是如何运作的。

Code

Regexes Got Good: The History And Future Of Regular Expressions In JavaScript

JS 中正则表达式的发展历史,对正则表达式的讲述很详细。

Cool Bit

Layering CSS gradients

层叠的渐变,可以实现比较好看的记号笔标记样式。

Tool | Library

盘友圈

一个聚合百度网盘,夸克网盘,阿里网盘的搜索网页。

Music

/post/weekly/5/松-Carsick Cars.jpg

这周推荐的是 Carsick Cars 的专辑《》,Hopico 上有一期打歌节目《等了十年他们终于发专辑了!晕车的车国内首场打歌现场丨HOPICO》介绍了这张专辑。

最近他们也开始巡演了,感兴趣也可以到 live 听听。

Carsick Cars 的歌其实听得不多,印象最深的应该是他们那首《中南海》,"中南海,中南海,抽烟只抽中南海",听完满脑子都是“中南海”。