分类: 编程技术

Javascript 中的 using、Disposable 和显式资源管理

Javascript 中的 using、Disposable 和显式资源管理

Javascript 的新“显式资源管理”提案添加了 using 语句,该语句可以在您使用完资源后自动关闭资源。但作为同一提案的一部分,还添加了许多其他 API,使 using 更加有用。

Google 的设计文档

Google 的设计文档

设计文档是解决软件项目中最棘手问题时,实现清晰沟通和达成共识的有效工具。它们能节省成本,因为通过前期调研可以避免陷入无法实现项目目标的编码死胡同;但它们也需要成本,因为创建和审核需要时间。因此,请根据项目需求谨慎选择!

CSS 层叠层级(@layer)指南

CSS 层叠层级(@layer)指南

这是您全面了解 CSS 层叠层的指南,CSS 层叠层是一项 CSS 功能,允许我们明确定义具有特定优先级的层,从而在项目中完全控制哪些样式具有优先级,而无需依赖特定性技巧或 !important。

浏览器 HTTP 压缩传输新方法: 压缩字典传输

浏览器 HTTP 压缩传输新方法: 压缩字典传输

像Brotli压缩和 Zstandard压缩通过允许使用常见字符串的字典,实现了更高的效率,因此您无需在压缩资源中保留这些字符串的副本。这些算法默认附带一个预定义的字典,用于压缩HTTP响应。

Rust 的依赖关系吓到了我

Rust 的依赖关系吓到了我

出于好奇,我运行了 toeki 这款用于计算代码行数的工具,发现 rust 代码竟然有 360 万行之多。删除供应商提供的软件包后,rust 代码减少到 11136 行。

Rust 中的奇怪表达式

Rust 中的奇怪表达式

Rust 拥有非常强大的类型系统,但因此也存在一些怪癖,有些人甚至称其为“可恶的表达式”。rust 存储库中有一个测试文件 weird-expr.rs,用于测试其中的一些表达式,并确保它们在更新之间保持一致。因此,我想逐一介绍这些表达式,并解释它们在 rust 中是如何有效的。

为什么 Rust 编译器这么慢?

为什么 Rust 编译器这么慢?

异步函数的深度调用图的编译时间需要改进——可能是 LLVM 存在一个容易触发的特殊边界情况,而 rustc 生成的代码恰好触发了它,或者可能是其他语言中未充分利用的糟糕启发式算法。

微软发布用Rust编写的Linux版经典MS-DOS编辑器

微软发布用Rust编写的Linux版经典MS-DOS编辑器

该编辑器向经典的MS-DOS 编辑器致敬,但采用了现代化的界面和与 VS Code 类似的输入控制。其目标是提供一个易于使用的编辑器,即使是那些对终端操作不太熟悉的用户也能轻松上手。

使用 CSS 实现缩放动画:变换顺序很重要……有时

使用 CSS 实现缩放动画:变换顺序很重要……有时

当你动画化 scale 时,目标的宽度和高度会在整个动画过程中线性变化(尽管,如前所述,可以应用缓动效果)。这感觉类似于相机缩放效果

Linux 管道的速度到底有多快?

Linux 管道的速度到底有多快?

我们通过分析 perf 输出和 Linux 源代码,系统性地提升了程序的性能。管道和拼接在高性能编程中并非热门话题,但我们涉及的主题包括:零拷贝操作、环形缓冲区、分页与虚拟内存、同步开销。

每位开发者都应尝试 Vim

每位开发者都应尝试 Vim

学习Vim不仅仅是选择一个新的编辑器,更是改变你与代码互动的方式。我认为每位开发者都应该尝试一下Vim,看看它是否适合自己。如果你坚持下去,Vim会让你获得一种难以言喻的控制感和流畅性,直到你亲身体验才会明白。

HTML 规范变更:对属性中的 < 和 > 进行转义

HTML 规范变更:对属性中的 < 和 > 进行转义

此更改仅修改了在序列化过程中将 HTML 片段转换回字符串表示的方式。影响仅限于访问 innerHTML 或 outerHTML 属性或对元素调用 getHTML() 方法的情况。这些操作会采用现有的 DOM 结构,并生成文本 HTML 表示法。

如何修改Starlink Mini以在不使用内置WiFi路由器的情况下运行

如何修改Starlink Mini以在不使用内置WiFi路由器的情况下运行

本文将详细介绍如何物理移除 Starlink Mini 中的内置 Wi-Fi 路由器板,使终端仅通过以太网运行,从而为高级用户提供更大的灵活性。请注意,此修改仅适用于Starlink Mini 1(截至2025年6月14日)。未来型号(如预期中的Mini 2)的硬件变更可能使此过程失效。

在字符串中检测元音的最快方法

在字符串中检测元音的最快方法

但当我开始深入研究时,我意识到这背后还有更多内容。我挑战自己想出尽可能多的检测元音的方法。我还让几位朋友尝试了一下。哪种方法最快?哪种方法绝不能使用?哪种方法最巧妙?哪种方法最易读?这篇文章涉及11种不同的检测元音的方法,包括算法分析、解析Python字节码、检查CPython实现,甚至查看编译后的正则表达式操作码。让我们开始吧。

Python 正在逐步移除 GIL,这对 Python 开发者意味着什么

Python 正在逐步移除 GIL,这对 Python 开发者意味着什么

鉴于无 GIL Python 预计将于 2028 年左右成为默认版本,而当前的无 GIL Python 3.13 仅为实验性构建,我们目前不应在生产环境中使用无 GIL Python。因为仍存在许多不确定性——包括兼容性、稳定性和生态系统采用率。它需要时间来完善。但我们确实应该密切关注无GIL Python的发展。它已经发生了,而且非常令人兴奋!

我不遵循的五个软件最佳实践

我不遵循的五个软件最佳实践

尽管没有开发者希望过这样的生活,但许多人在职业生涯中至少经历过一次。为了确保这样的混乱留在过去,他们从战斗的伤痕中总结出了集体智慧。我通过近十年的专业开发经验积累了一些智慧,同时也从同事那里学到了更多。

日志分析工具 GoAccess 配置详细教程

日志分析工具 GoAccess 配置详细教程

GoAccess是一个网络日志分析工具,它允许你可视化网站的流量,并更深入地了解访客信息:访客数量、页面访问量、访客来源(地理位置、操作系统、浏览器等)。它通过解析网页服务器的访问日志实现这些功能,无论是Apache、NGINX还是其他服务器均适用。

用一个奇招检测并让Chromium机器人爬虫崩溃(机器人爬虫讨厌这个!)

用一个奇招检测并让Chromium机器人爬虫崩溃(机器人爬虫讨厌这个!)

享受这个漏洞吧。把它留在你的工具箱里。在测试环境中让机器人崩溃时笑一笑。但也许不要在生产环境中部署它。尤其是当Googlebot能看到它的时候。

Rust 比 C 更快吗?

Rust 比 C 更快吗?

假设我们有一个初级开发人员在写 Rust,也在写 C,做的是同一个任务。我们会在其中一种语言中获得更快的代码吗?这控制了能力,但控制不了相同的代码。这是“相同”的吗?

为什么 C++ 认为我的类是可复制构造的,而实际上它无法被复制构造?

为什么 C++ 认为我的类是可复制构造的,而实际上它无法被复制构造?

对于“这个类是否可复制构造?”这个问题,答案应该是什么?你不知道定义是什么,只知道它的声明。编译器是否应该停止编译并显示错误信息“无法预测未来”?但是,如果你不想在头文件中暴露复制构造函数的实现呢?判断可复制构造的规则是是否存在未被删除的复制构造函数。

SVG 网站图标(favicon)的实际应用

SVG 网站图标(favicon)的实际应用

我们有充分理由关注SVG Favicon:暗色模式支持。暗色模式近期备受关注。您可能已为自己的网站实现了暗色模式。这对图标意味着什么?这意味着根据浏览器标签页背景亮度显示不同Favicon的能力。

这是 JavaScript 吗?

这是 JavaScript 吗?

当有人说”这只是 JavaScript”时,更明确的说法应该是”这只是适用于…的 JavaScript”,例如:这是适用于浏览器的 JavaScript; 它只是用于 Node 的 JavaScript;它只是用于 Next.js 的 JavaScript

如何处理 Rust 依赖项

如何处理 Rust 依赖项

虽然一些微型 crates 各自都能很好地完成某项任务,但我们仍然应该寻找一种方法来减少依赖树中的依赖项数量。

为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?

为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?

,JavaScript Temporal 即将推出:一套新的日期和时间 API,旨在取代 Date 对象。我们最初的整个日期解析问题源于时区歧义,但在很多情况下,我们希望将纯日期字符串完全视为纯日期。

在 Rust 中写入未初始化的缓冲区

在 Rust 中写入未初始化的缓冲区

Rust 中的非初始化缓冲区是一个由来已久的问题, John Nunley and Alex Saveau 想到了一种新方法,使用 Buffer Trait,现在已经出现在 rustix 1.0 中,我将在这篇文章中介绍。