Weekly#5
Table of Contents
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
不好的重构:
- 改变了代码风格,添加不必要的依赖,导致代码的不一致性
- 不必要的抽象,原来一个函数就能解决,没必要抽象一个 class 实现
- 不理解原来的代码逻辑,导致功能丢失
- 不了解业务背景,实现的逻辑没有业务价值
- 过度整合代码(@see: Goodbye, Clean Code)
前阵子做也在重构一段代码逻辑,以为已经完全掌握这段逻辑了,结果测试的时候发现执行出错了。
原来的代码中存在一个 forEach,用于从数组中查找一个符合条件的元素。
我重构的时候就换成了语义更合适的 find,但 find 是只找第一个符合条件的元素。
而原来的逻辑中,数组中存在多个同名的元素,用 forEach 实际会找到最后一个匹配的元素,用 find 是找不到的,这就导致了逻辑执行失败。
有用例去兜底很重要,不然改完都不知道改错了。
Tacit Knowledge is Dangerous
团队协作中一些知识是藏在大家脑子里的,没有形成文档,当碰到一个问题的时候,要问好多人才能搞清楚,问题也会被反反复复的问和答。
更好的做法是将知识形成文档,通过文档交流。
总体来说,阅读文档在任何规模的团队,任何地方,整体的时间相对还是比较快的。
- 如何团队小,大家都聚集在一起,相互询问确实比较快
- 如果团队大,或者大家都远程,甚至时区都不同,那么问人就不如有文档来的快
- 相对而言,文档都是较好的选择
关于文档的编写,可以看看作者写的 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 中正则表达式的发展历史,对正则表达式的讲述很详细。
Music
这周推荐的是 Carsick Cars 的专辑《口》,Hopico 上有一期打歌节目《等了十年他们终于发专辑了!晕车的车国内首场打歌现场丨HOPICO》介绍了这张专辑。
最近他们也开始巡演了,感兴趣也可以到 live 听听。
Carsick Cars 的歌其实听得不多,印象最深的应该是他们那首《中南海》,"中南海,中南海,抽烟只抽中南海",听完满脑子都是“中南海”。