#7 中文互联网正在加速崩塌

codeep
cover

Hi,你正在阅读的是《Codeep 半月刊》第 7 期。本期头图来源 DALL·E,展示了一个的世界,崩溃的服务器、断裂的电缆和掉落的社交媒体互动图标营造出紧张和混乱的氛围,背景中的数字天际线正在分崩离析,象征着连接的崩溃。

📍 学技术

URL 是如何工作的?

我写的含可交互示例的文章

协议:URL 的开始部分,如 https://,描述了浏览器与服务器之间通信的内容和性质。常见的协议包括 HTTPS 和 HTTP,用于处理超文本文档。

域名:表示服务器的可读地址,通常代替难以记忆的 IP 地址。域名通过 DNS 解析为实际的 IP 地址。

端口:服务器通过端口号公开特定服务,如 HTTP 默认端口 80,HTTPS 默认端口 443。端口号表明服务器上的不同服务。

路径:指向服务器上特定资源的字符串,服务器根据此路径返回相应的数据或页面。

查询参数:路径后的参数,以 ? 开头,提供请求的额外信息。这些参数以键值对形式存在,用 & 符号连接。

片段标识符:以 # 开头的部分,用于引用页面的特定部分,也称为锚点或哈希属性。

📕 深阅读

为什么修改全局变量是有害的

why-patching-globals-is-harmful

https://kettanaito.com/blog/why-patching-globals-is-harmful

每一个决定都是有成本的。修改全局变量不仅会产生影响用户和维护者的成本,还会严重损害其他优秀的 API 甚至语言本身。

危害一:维护

当你修改全局变量时,你修改了不属于你的东西,维护不属于你的东西是很困难的。

假设你的框架修改全局 fetch 函数以删除重复请求。这对于 fetch 的直接消费者(你的用户)非常有效。最坏的情况是还有其他第三方也在修改 fetch 并依赖于该补丁的存在。这两种行为会发生冲突,导致各种奇怪的问题,几乎无法调试。

危害二:可预测性

在工程领域里,几乎没有什么比同一件事表现出不同的行为更令人烦恼的了。

如果你使用 console.log() ,你知道它将向控制台打印一条消息。还记得以前是如何让网页兼容 IE 的时光吗?这就是当多个代理以不同的方式实现同​​一件事时发生的混乱。

危害三:学习

好的工具教你概念,坏的工具只教你如何使用它自己。

一个好的 API 必须完成很多事情:完成手头的任务,提供直观、通用的方法来完成任务,与既定的理念和最佳实践保持一致,可扩展、可维护和可移植。但还有一件事,它必须做的最重要的一件事:API 必须具有教育意义。

✨新鲜货

playwright

https://playwright.dev/

Playwright 是一款功能强大的自动化测试工具,支持跨浏览器、跨平台和跨语言使用。它能够在 Chromium、WebKit 和 Firefox 等现代浏览器引擎上运行测试,同时兼容 Windows、Linux 和 macOS 系统,且支持本地及 CI 测试环境。

我使用了它来对网站进行定期截图

Dark Visitors

https://darkvisitors.com/

这个网站收录了各大 AI 公司的爬虫使用的 User Agent 标识,如果你不想你的内容喂养 LLMs,可以通过 Robots.txt 配置来屏蔽这些爬虫的访问。

🍔 技术外

开源创建者社区指南

https://opensource.guide/zh-hans/

开源软件指南是一个资源集合,供想要学习如何运行开源项目并为开源项目做出贡献的个人、社区和公司使用。

开源指南由 GitHub 创建和管理,并结合外部社区审阅者的意见,但它们并非 GitHub 产品所独有。GitHub 启动这个项目的原因之一是他们认为没有足够的资源可以让大家了解开源项目以及如何参与开源。

这篇指南的目标是聚合社区最佳实践,而不是 GitHub(或任何其他个人或实体)认为最好的。

指南包含中文版本,对开源感兴趣的大伙可以去看看。

定期对我的网站进行屏幕截图

https://alexwlchan.net/2024/scheduled-screenshots/

如果你想记录你的网站如何随时间变化,Alex 写了一篇关于它的优秀教程。

根据这篇文章,我刚刚设置了一个 GitHub 仓库,它可以访问我的网站、截取屏幕截图并将其提交到存储库。

开始定期对网站进行屏幕截图的最佳时间是在注册域名时。第二个最好的时间就是现在。


本半月刊在本人博客首发,每月 15 号和月底更新,欢迎您关注、转发!

codeep