Go语言的十大痛点:一个资深程序员的十年吐槽

2025-08-22

一位程序员十年来持续批评Go语言,本文总结了他对Go语言的诸多不满,包括:错误变量作用域设计不合理,导致代码可读性差且易出错;存在两种nil类型,增加了代码复杂度;缺乏真正的可移植性,条件编译方式笨拙;append函数的行为难以预测;defer机制不够灵活,难以管理资源;标准库吞没异常,导致程序难以处理错误;对非UTF-8编码的支持不足;内存管理不够高效。作者认为这些问题并非技术难题,而是设计上的缺陷,Go语言本可以做得更好。

阅读更多
开发

无系统调用:一个基于 io_uring 的高性能 Web 服务器

2025-08-22

本文讲述了构建高性能 Web 服务器的演进历程,从早期的 pre-forking 到 select/poll,再到 epoll,最终利用 io_uring 技术实现零系统调用。作者开发了一个名为 tarweb 的实验性 Web 服务器,它利用 io_uring 将所有操作异步地添加到内核队列中,从而避免了频繁的系统调用开销,并结合 kTLS 和无描述符文件等技术进一步提升性能。虽然目前仍存在一些挑战,例如内存管理和 io_uring 的安全性问题,但该项目展示了在高并发场景下显著提升 Web 服务器性能的潜力。

阅读更多