Go 语言服务器可以实现令人印象深刻的代码导航

Lobsters Hottest 工具

摘要

Go 语言服务器 (gopls) 为 Go 开发者提供了令人印象深刻的代码导航功能,增强了 IDE 的能力。

<p><a href="https://lobste.rs/s/swa6iv/go_language_server_can_do_some_impressive">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/05/30 04:03

# 您使用的浏览器版本过旧 来源:https://utcc.utoronto.ca/~cks/cspace-bad/cspace-old-browser.html ## 您使用的浏览器版本异常陈旧 您看到此页面,很可能是因为您尝试访问我的博客《Wandering Thoughts》(https://utcc.utoronto.ca/~cks/space/blog/)或其所归属的 wiki 站点 CSpace(https://utcc.utoronto.ca/~cks/space/)的某些内容。遗憾的是,您使用的浏览器版本被我用于反爬虫的防护措施判定为可疑,最常见的原因是版本过旧(尤其多见于 Chrome 浏览器)。不幸的是,截至 2025 年初,大量高并发爬虫(部分用于收集 LLM 训练数据)正使用各种旧版浏览器的 User-Agent,尤其是 Chrome 的旧版 User-Agent。为了减轻《Wandering Thoughts》(https://utcc.utoronto.ca/~cks/space/blog/)的负载,我正在尝试(尽可能)拦截所有此类请求,而您正好撞上了。 如果您使用的是当前最新版本的浏览器,而此次拦截属于误判,您可通过我在大学的当前地址(https://www.cs.toronto.edu/~cks/)联系我(您应能从中推算出电子邮件地址)。如果可能,请告知我您使用的浏览器等信息,最好能提供确切的 User-Agent 字符串。 ## 致 Inoreader(订阅阅读器)用户的特别说明 我并未拦截 Inoreader 的 feed 抓取器,也未将其视为版本过旧,它正常抓取我的 feed。我不清楚为何 Inoreader 会向您展示此页面。可能是它们偶尔会使用旧版浏览器的 HTTP User-Agent(或实际运行旧版浏览器)来抓取 feed 或页面,并将此次抓取结果(即本页面)作为向用户展示的内容,而非其 syndication feed 抓取工具的正常结果。这在当下是一个严重错误;现代 HTTP 抓取的结果部分取决于所使用的 HTTP User-Agent(https://utcc.utoronto.ca/~cks/space/blog/web/HTTPResultsAndUserAgents)。 ## 致 Feedly(订阅阅读器)用户的特别说明 与 Inoreader 类似,Feedly 会定期使用伪造的旧版浏览器 HTTP User-Agent 标头抓取我的 syndication feed,导致抓取失败,然后固执地将该结果用于其常规的 Feedly HTTP User-Agent 进行实际 feed 抓取。对此我无能为力;您应联系 Feedly 支持(如果能找到的话)。详情请参见我在《Wandering Thoughts》中的这条评论(https://utcc.utoronto.ca/~cks/space/blog/web/FeedReaderErrorsProblem?showcomments#cks-20260215115901)。 ## 致 Vivaldi 用户的特别说明 由于持续存在的攻击,您可能需要修改「User Agent Brand Masking」设置(https://help.vivaldi.com/desktop/miscellaneous/user-agent-brand-masking/),使您的 Vivaldi 浏览器以 Vivaldi 身份标识自身,而非冒充 Google Chrome。此设置甚至适用于当前最新版本的 Vivaldi。 ## 致 archive.\* 用户的特别说明 您可能是通过 archive.today、archive.ph、archive.is 等站点看到此页面。不幸的是,archive.\* 在抓取网页进行归档时,其行为模式与恶意攻击者难以区分。它们使用旧版 Chrome 的 User-Agent 值,通过广泛分布且未明确标识归属的 IP 地址段进行抓取,并且部分 IP 地址的逆向 DNS 记录被伪造为 googlebot 的 IP 地址(这通常是相当恶劣的行为者才会做的事)。我建议您改用 archive.org,它的归档爬虫行为更规范,能够正常抓取我的博客《Wandering Thoughts》(https://utcc.utoronto.ca/~cks/space/blog/)。 Chris Siebenmann,2025-02-17

相似文章

在浏览器代码运行器中添加Go语言

Lobsters Hottest

作者详细介绍了在基于浏览器的代码运行器(dailyprog)中添加Go语言所面临的挑战及解决方案,解释了为什么标准的GOOS=js方法无法在V8隔离环境中工作,以及如何通过使用GOOS=wasip1和最小的WASI主机shim来成功实现。

Golang 代码审查笔记 II

Lobsters Hottest

来自 elttam 的后续博客文章,介绍了提高安全性的新 Go 语言特性、在代码审计中发现的有问题的编码模式(footguns),以及用于捕获这些模式的 Semgrep 规则。

Solod: Go 可以成为更好的 C

Hacker News Top

Solod 是 Go 的一个严格子集,可编译为可读的 C11,零运行时,无GC,拥有丰富的标准库,让 Go 开发者获得系统级控制,同时为 C 程序员提供熟悉的工具链。

优化CPU密集型Go热路径的笔记

Hacker News Top

本文讨论了CPU密集型Go代码的性能优化技术,指出了泛型和接口抽象因无法内联而产生的局限性,并主张在热路径中使用代码复制。文章通过一个Brotli移植示例和深入基准测试进行了说明。

就用Go

Lobsters Hottest

一篇带有强烈观点的开发者文章倡导使用Go编程语言,强调其简洁的语法、强大的标准库、高效的并发模型以及单二进制部署,作为对过于复杂的现代技术栈的实用替代方案。