新文章
之前一直都有在写小抄的习惯,于是抽空整理了一下发到 Blog 上,希望能够帮助通过搜索引擎进来的同学们。
折腾 iTerm2 + tmux
很早之前就安装了 tmux,但是苦于一直记不住命令,也就没有坚持用。
不过其实 iTerm2 已经整合了 tmux,可以将 tmux 的各种命令操作映射到 iTerm2 本身的快捷键操作中,这可以大大降低 tmux 的学习成本,于是花了点时间折腾、以及 iTerm2 的外观调整,整体效果是这样的:
主要参考以下这两篇文章:
分享文章
一些本周阅读过的好文章、以及我的一些总结和个人思考;非常建议你直接阅读原文,毕竟一千个读者就有一千个哈姆雷特,而且我的理解可能是错的。
解剖 Netflix
原文地址:《解剖 Netflix - 全美员工满意度最高的企业》 | Step By Step
这是本文作者从一本叫做《零规则》的书的笔记,主要讲述一家名为 Netflix 的科技公司的经营传奇。
这家公司是全美员工满意度最高的公司,而「零规则」这几个字,也正是 Netflix 的核心文化之一。
下面就来讲讲 Netflix 的不同之处:
-
「零规则」并不是完全没有规则:「零规则」不代表 Netflix 是一家毫无规则的公司,它也有解雇员工的准则,而且可能比其他公司都要狠,甚至连 CEO 都能被解雇;它的零规则指的是它不会花时间制定考勤、打卡、费用报销、上班时长等细则,因为 Netflix 相信自己招聘的肯定是最出色的员工,否则,他们也无法在如此严苛的岗位筛选中存活下来。
-
行业的最高薪资:只招揽最优秀的人才,并且没有固定的涨薪幅度,而是鼓励员工出去面试,根据拿到的 offer 给予对应的涨幅。
-
同事不是家人:许多企业会宣称我们是一个大家庭、同事们都是家人。而 Netflix 认为同事是合作伙伴,而不是家人,因为如果在公司里大家都以家人相称反而会导致不能作出正确的决策。
-
以 Netflix 最大利益为考量:Netflix 采用树形的决策模式,底层员工不需要凡事去请示上司,因为自己才是决定这件事的最佳人选,Netflix 认为员工不会因为这个决定让自己蒙羞。
-
无休假规定也没有固定的工作时长:如果一个人用工作时长的一半就完成了他的工作,剩下的时间他选择阳光海滩。而另一个人每天加班加点,超时工作才能把事情做完,果断给第一个人加工资。
-
信息透明:没有「报喜不报忧」的潜规则,Netflix 认为自家员工都是成年人,有能力辨别什么能说什么不能说。
在生产环境中使你的 npm i 速度提升 50%
原文地址:《在生产环境中使你的 npm i 速度提升 50%》 | 山月行
- 选择时延低的
registry
,需要企业技术基础建设支持 NODE_ENV=production
,只安装生产环境必要的包 (如果 dep 与 devDep 没有仔细分割开来,工作量很大,可以放弃)CI=true
,npm 会在此环境变量下自动优化- 结合 CI 的缓存功能,充分利用
npm cache
- 使用
npm ci
代替npm i
,既提升速度又保障应用安全性
浅析 Web 录屏技术方案与实现
-
有感录屏:
-
有感录屏一般指通过获得用户的授权或者通知用户接下来的操作将会被录制成视频,并且在录制过程中,用户有权关闭中断录屏。即无论在录屏前还是录屏的过程中,用户都始终能够决定录屏能否进行。
-
实现方式:WebRTC。
-
-
无感录屏
-
无感录屏指在用户无感知的情况,对用户在页面上的操作进行录制。实现上与有感录制区别在于,无感录制通常是利用记录页面的 DOM 来进行录制。常见的有 canvas 截图绘制视频和 rrweb 录制等方案。
-
实现方式:
- canvas
- rrweb
-
个人思考
rrweb 的话只是对 SPA 场景比较好,但对于 微前端/Iframe 场景,它基于 DOM 的回溯就会失效从而失去其录制功能,加上整个 rrweb 链路代码实现复杂度较高,个人认为能用 WebRTC 还是走 RTC 实现比较好。
如何为你的问题获得有用的答案
原文地址:《How to get useful answers to your questions》 | Julia Evans
- 问一个模糊或未明确指定的问题时,可能出现的问题:
- 这个人首先解释一堆我已经知道的东西
- 这个人解释了一些我不知道的事情,但我认为这些事情与我的问题无关
- 这个人开始给出相关的解释,但使用我不理解的术语,所以我仍然最终感到困惑
- 通过问「是否」的问题,可以更快地得到有用的信息。
- 如果别人做了一个漫长而无关紧要的解释,可以直接打断
- 不接受没有回答你的问题的答案
谈谈在 SQL 语句中的优化技巧
原文地址:《谈谈在 SQL 语句中的优化技巧》 | qq52o
此文一共列了 30 个优化技巧,内容已经比较精炼了,这里我就不一一列出,有兴趣直接进原文阅读。
求职时的常见错误
原文地址:《求职时的常见错误》 | 1 Byte
- 细节:对待简历要认真,一个连简历都不重视细节的人,可想而知在工作中有多马虎。
- 精通:慎重「精通」二字,除非你有自信比面试官更熟悉它。
- 面试:遇到不会的难题,不要轻易放弃,面试官想要看到的是你如何解决问题。
如何在 Emacs 里做所有事
原文地址:《如何在 Emacs 里做所有事》| 1 Byte
Emacs 简直堪称是一个操作系统,之前有研究过使用 Emacs 下面的 Org-mode 插件来做我的内容管理系统,但是折腾了一下觉得太难上手了,于是转向使用 Notion。
而本文中的视频就展示了 Emacs 的 Org-mode 强大,有兴趣可以看看。
小程序单元测试最佳实践
原文地址:《小程序单元测试最佳实践》 | wxsm’s pace
-
启动很慢!至少需要 30 秒;因为每个不同的测试文件都需要单独启动并连接一遍实例。
- 共享同一个全局实例(×),不起作用。
- 将所有测试用例放在单文件中共享实例(×),运行一次需要等到所有测试跑完才能看到结果。
- 不通过 launch,直接 connect 到现有窗口(√),只在第一次会比较慢。
-
通过 navigateTo 这类方法跳转很慢:通过点击页面元素的方式触发会比较快。
个人思考
去年年初的时候也曾尝试过在项目中推动微信小程序的 E2E 自动化测试,当时把此文所提到的坑都踩过一遍、连最后选择的解决方案都是一样的。
之前也有在 Web 项目实践过的 E2E 测试(用的是 Cypress),体验比微信小程序的自动化测试好一万倍不止。不过回头想想,像微信小程序这样不伦不类的产物,本来就是恶心开发者的,还扯什么开发体验呢?
有趣的链接
-
CSS Specificity Calculator:CSS 选择器优先级计算,帮助你快速计算你的 CSS 选择器优先级。
-
Blogkit:一个朋友的开源项目,利用 Notion API 驱动,将 Notion 作为博客的后台数据库,目前已经支持分发到内置的静态网站以及语雀。
- btw,自从 Notion 开放 API 依赖,将 Notion 作为博客后台数据库的 idea 就层出不穷,并且已经有不少人付诸实践,比如这里还有一个:How the Notion API Powers My Blog。虽然我个人也很喜欢使用 Notion 作为我的资料库,但目前仍没有打算基于它来做博客。
-
Coderwall:一个开发人员社区的开发和设计技巧、工具和项目,可以从上面学到很多技巧,包括但不限于:Shell、Git、JavaScript、CSS 等。