Links
🍐

第 2 期 - 鸭子理论与第一性原理

记录 22/(11/07 - 11/13)期间 值得分享的内容,每周不定期更新。

介绍

我们每天都会接收到过载的信息,然而明月与砾同囊,其中的优质信息往往会被淹没,因此需要一个信息过滤服务来提升接收的信息质量。
思考的价值由此而来,分享内容的不限,偏向于 计算机技术 与 科技人文的方向。

封面

生日惊喜🎂 11-09 00:00 家

话题

本周的话题是探讨 我非常感兴趣的两个理论:鸭子理论与 第一性原理。
  • 鸭子理论:如果它看起来像鸭子、游泳像鸭子、叫声像鸭子,那么它可能就是只鸭子。
  • 第一性原理:回归事物的本质,找到实现目标最优路径的方法。
我一直很信奉这两个理论,并喜欢将其结合。
我的理解是 每一件事物都等价于 ta 的外在表现,并且可将 表现的本质 拆分成为各要素,进行解构分析。
该理解可提炼成一种方法论:分析事物要点,再从要点的核心出发。
在早期学习、工程实践中 这已 潜移默化 成为我的行动准则之一。
举个例子:我前不久想实现一款截图软件,截图的核心能力 应该怎么实现呢? 你会想到使用系统提供的截图能力 去在上层封装?对不起 系统没有“截图”能力。
正确的解决方案是:使用 CGDisplayCreateImage 方法(mac),该方法的作用:Returns an image containing the contents of the specified display,乍一看与 截图没有直接关联,但它却成为了各种截图软件的关键。
因为回归了表现本质,截图即是对屏幕图片进行区域选择(第一性原理)。
而当实现核心能力后,我们又可能再提供 截图时蒙版,标注工具栏功能,这样一款基本的截图软件就成型了(鸭子理论)。
下一期话题预告:信息技术 与人 的相似性。

文章

近些年围绕 NCLC 踊跃出了不同形态的产品,如项目管理 Meego、低代码系统 Retool、在线文档 Notion 等,甚至本文中还将 NCLC 细分为了 12 个发展赛道。
其中业界内发展最为迅猛、最有代表性的产品形态莫过于 建站类。
HN 上的一个问题,是否能一直在终端中生活?
高赞回答是:非研发相关的事情不建议。
原因也很明显,非研发相关的基础设施是很少有人关心,很难保障的。
When you use one programming language daily in your job as a Software Engineer, it's easy to fall into the trap of that language bubble. I want to show you how stepping outside your comfort zone and learning new languages and paradigms helped me grow as a Software Engineer.
学习时应追随自由,不设边界,不要在自己的领域故步自封,应逃离舒适区,多试错方能快速成长。
从技术角度介绍 剪切板的工作流程,剪切板之于应用就像是共享的外部 IO。
分享篇最近写的一篇关于 NCLC 的文章:
近些年搭建平台变得很是流行,它提供了一种全新的开发方式,同时大幅降低了使用者的门槛,解决了企业的两大痛点:开发效率与人员转型。
搭建平台由编辑器(画布+设置器)和生成器组成,本文将重点介绍画布,分为架构设计与画布设计两个章节来展开。
浏览器工作原理的系列好文。
作者使用 python 、tk 框架,从 0 实现一个简易的浏览器。
从其中不难看出,鸭子理论的应用,文章对原理剖析得很透彻,推荐阅读。
一篇介绍 React 渲染方式的好文。
从 CSR 到 SSR,再到 流式 SSR 以及 React18 推出的 Server components,文章都有涵盖。
并且整体脉络清楚,原理也清晰易懂(配有视频),推荐阅读。
Stackoverflow 上的一道问题,如何使用 JavaScript 在 2800w 的数据中去重。
下面的回答大部分围绕 chunk 解法来展开,也有人推荐使用 shell 命令(有很大程度的优化)。
我个人推荐是 布隆过滤器 负责是否命中 + 分块 chunk 循环处理数据。
一篇介绍 generator 的好文。
文章用 Tim Tams 作为引子,介绍 generator 对操控流式数据的便利,然后又通过 compose generator 实现素数筛的例子,进一步证明了 generator 在数据处理方面的强大。
并且作者也同步了 genetator 在 tc39 与 社区的一些发展,同时梳理了 generator 与 async、await 之间的差异,以及如何模拟实现。
文末给出了 使用 Either functor 处理 csv 文件的案例。
文章信息量大而精,推荐阅读。

项目

valtio

Valtio makes proxy-state simple for React and Vanilla
Robot Framework is a generic open source automation framework. It can be used for test automation and robotic process automation (RPA).
Difficulty typing? Use your voice to code without spelling things out by talking with GitHub Copilot.
Internet's best half-baked app ideas at one place.

Rome

Rome is an ambitious project aiming to unify the dozens of frontend language tools into a single easy-to-use tool built from scratch.
This release includes our fast linter and formatter; they require minimal configuration, come with beautiful and descriptive diagnostics, and have built-in support for JavaScript and TypeScript.
Extend your codebase with custom, interactive blocks.
Build rich documentation, enhance your workflows, and bring your repository to life.

生活

超级超级超级忙碌的一周。
全新的工作内容 与 处于关键项目上线的窗口,工作压迫得人喘过不气。
几乎连续一周加班到凌晨,睡觉质量也下滑很多,睡不踏实,经常做梦都是工作...
周四又因上周六去了超市 判定成了时空接触,需要被封控在家 3 天,算是雪上加霜了。
在家工作等价于 让工作侵入生活,基本上毫无平衡可言了。
因为很累,所以我没办法习惯。
希望下周会轻松一些吧..
本周轮到我阳历生日,又一次感受到 Leann 准备的小惊喜,爱你。

历史回顾

本周补充完善了第一期周刊,增加了完整的分享内容,使用了全新的排版方式,欢迎阅读与指正。