每周见闻(39):在福州小逛了几天
每周见闻:2025-10-19 - 2025-10-26
解锁小电驴
这周跟着老婆去了福州玩(吃)了几天。
长乐落地,在机场附近看海顺便解锁人生第一次小电驴。和共享单车一样,扫码开车。骑上去的时候满脑子都是“骑上我心爱的小摩托”的 BGM。然后开始回忆日本学驾照时附赠的小电驴教程了(上手还是很快的,油门焊死就跑起来了)。
既然是第一次,还是拍照留个念吧:
吃喝小逛
出来玩吃是必须要保证的,长乐冰饭、鲟饭、生滚粥、鱼丸海鲜都没拉下,海鲜是真的不错,是可以为了吃来第二次的地方。
逛的话还是围绕住所周边,外加体力限制逛的不多。这次去了
- 三坊七巷:虽然是旅游景点,但里面有很多的展馆可以逛。
- 鼓山:有索道、景车,体力友好。上面涌泉寺香火很旺。
- 福道:纯步道需要体力,不过顶上风景不错。当地人去的也很多。
- 船政博物馆:有很多历史资料,非常丰富。讲述了海军的发展史。
鼓山索道上拍的夜景,很好看。有山的地方就是不一样啊。

最后吐槽一点福州的路不怎么好走。石板路会有高低不平;路上各种车辆更是生猛,转弯都不打灯的还是第一次见。
工具
1、GitHub - tw93/Mole: 🐹 Dig deep like a mole to clean you Mac. 像鼹鼠一样深入挖掘来清理你的 Mac[^1]
标签:Tools,Mac
一个清理 Mac 的 CLI 工具,更新很频繁。目前处于初级版本,如果有重要数据,作者也建议等稳定后再使用。
这个工具也是作者通过 Vibe Coding 做出来的。我试用了一下,查找、清理的速度很快,也能找出很多文件占用。
2、StoryMotion - Create a Custom Hand-drawn Motion Graphics Animation in Minutes[^4]
标签:Tools,Design
一个可以将 Excalidraw 的流程图转换为动画的工具网站。有免费的 Plan,适合需要进行技术介绍和讲解的小伙伴。

Coding
1、Simplify Your Code: Functional Core, Imperative Shell[^2]
标签:Coding,Node.js
来自 Google Testing 的博客,建议将业务代码拆分为纯业务逻辑的核心方法与承担副作用(数据库/网络交互)的交互方法。核心方法只负责处理输入数据的转换,因此更容易被测试;而交互方法负责数据来源,因此也更容易替换(数据库/换地址/直接 Mock)等。
在服务端的开发工作中,通常更关注是 E2E 的测试而非单个功能测试。这样拆分也确实更容易对交互方法进行 Mock。

2、Importing vs fetching JSON[^3]
标签:Node.js,JavaScript,前端
现在前后端都支持直接 Improt JSON 文件,那 import 能否替代 fetch 呢?作者分别从错误处理和垃圾回收两个方面介绍了 import 和 fetch 的区别。
其中静态引入 import data from ./data.json with { type: json }; 对错误处理支持不好;使用 import 的数据会一直存在直到离开页面,当数据量大时会对性能带来影响。fetch 获取的数据在失去引用后就会被回收。Tree-Shaking 也只针对顶层对象起效。
在作者看来,import 适合数据量较小的本地文件,并非是 fetch 的替代。

3、Discovering features using HTTP OPTIONS[^5]
标签:Coding,前端
一篇介绍了 OPTIONS 方法的博客。只要做过前端的朋友一定不会陌生,一般在处理跨域问题时会遇到 OPTIONS 请求。还记得以前背“八股”的时候有背过,什么情况会有 OPTIONS 请求。
而 OPTIONS 也并非跨域的附属品,它实际的含义是告诉客户端我可以做哪些操作。在返回的头中可以告诉客户端能允许哪些方法、接受的 Encoding、不同方法接受的类型以及对人机更友好的文档地址返回方式。确实能学到不少之前不了解的小知识。

4、Fetch streams are great, but not for measuring upload/download progress[^6]
标签:Node.js,JavaScript,前端
作者介绍了为什么 Fetch 的 request/response 流不适用于处理上传/下载的进度显示。
原因很简单,对于上传请求此时并没有 content-length,即使用 stream 计算也做不到精确(你只能知道上传了多少数据,但不能保证数据被服务端收到);而下载虽然有 content-length,但那是针对压缩后的数据(如 gzip)而实际用来处理的 chunk 则是解压后的数据,那自然便对不上了。
目前依然只有 xhr 的方法能比较准确地处理上传下载的进度,所以你看到的进度条基本都不是真的。

参考文章:
- [1] GitHub - tw93/Mole: 🐹 Dig deep like a mole to clean you Mac. 像鼹鼠一样深入挖掘来清理你的 Mac: https://github.com/tw93/Mole
- [2] Simplify Your Code: Functional Core, Imperative Shell: https://testing.googleblog.com/2025/10/simplify-your-code-functional-core.html
- [3] Importing vs fetching JSON: https://jakearchibald.com/2025/importing-vs-fetching-json/
- [4] StoryMotion - Create a Custom Hand-drawn Motion Graphics Animation in Minutes: https://storymotion.video/
- [5] Discovering features using HTTP OPTIONS: https://evertpot.com/discovering-features-with-http-options/
- [6] Fetch streams are great, but not for measuring upload/download progress: https://jakearchibald.com/2025/fetch-streams-not-for-progress/
