Google I/O 2025 Go 语言进展:生产力、生产就绪与 AI 赋能
Google I/O 2025 Go 语言进展:生产力、生产就绪与 AI 赋能 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...
Google I/O 2025 Go 语言进展:生产力、生产就绪与 AI 赋能 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...
Go工具链进化:go.mod新增ignore指令,破解混合项目构建难题 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...
本文永久链接 – https://tonybai.com/2025/05/22/go-sbom-practice 大家好,我是Tony Bai。 近年来,软件供应链安全事件频发,从 SolarWinds 到 Log4Shell,每一次都给业界敲响了警钟。在这样的背景下,软件物料清单 (SBOM, Software Bill of Materials) 的重要性日益凸显。无论是甲方爸爸的硬性要求(尤其是在2B软件交付和白盒交付场景),还是我们自身对软件透明度和安全性的追求,SBOM 都已成为现代软件开发不可或缺的一环。 ...
本文永久链接 – https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package 在Go语言开发中,包(package)是代码组织的基本单位,也是基本的构建单元。Go编译器会将每个包构建成一个目标文件(.a),然后通过链接器将这些目标文件链接在一起,形成最终的可执行程序。 尽管Go包的构建过程看似简单,但实际上蕴含着许多值得深入了解的细节。例如,当我们执行go build命令时,Go编译器是如何选择需要编译的源文件的?你可能会回答:“不就是通过文件名中的ARCH和OS标识以及构建约束(build constraints)来选择的吗?” 虽然你的答案并没有错,但如果我进一步提出以下问题,你是否还能给出确切的答案呢? ...
本文永久链接 – https://tonybai.com/2024/09/20/htmx-gopher-perfect-partner-for-full-stack 在传统的Web开发领域,前端和后端开发通常被明确划分。前端主要负责用户界面的交互和视觉呈现,运用HTML、CSS和JavaScript等技术;后端则专注于服务器逻辑、数据库管理和核心功能实现,常用Go、Java、PHP、Ruby等语言。 ...
本文永久链接 – https://tonybai.com/2023/12/22/understand-oidc-by-example 在《通过实例理解OAuth2》一文中,我们以实例方式讲解了OAuth2授权码模式(Authorization Code)模式的工作原理。实例中的照片冲印服务经过用户(tonybai)的授权后,使用用户提供的code(实则是由授权服务器分配并通过用户的浏览器重定向到照片冲印服务的)到授权服务器换取了access token,并最终使用access token从云盘系统中读取到了用户的照片信息。 ...
本文翻译自《Go Language at 13 Years: Ecosystem, Evolution, and Future in Conversation with Steve Francia》。 译注:Go开源于2009年,如果从那时算起,Go才11岁;但在Go核心开发团队眼中,Go的真正诞生年份是2007年,至今13个年头了。关于Go的演化简史可以参见我的专栏文章:《Go语言的前生今世》。 本文要点: Go的简单性让你可以快速上手使用它–你可以在一个下午就消化掉整个Go语言规范; 作者认为Go是当今最好的现代语言之一(其他的还包括:Dart、Flutter和Rust); Go的未来是由它的开源社区决定的,它对所有的功能建议进行讨论和辩论。除非达成明确的共识,否则该功能不会被实现。 社区的规模大约每18个月翻一番。 最初,Go的早期采用者多来自python或ruby等动态语言的开发人员,现在随着语言的成熟,来自Java、.NET和C++程序员也开始接纳并使用Go。 在充满挑战的一年里,社区适应了相互支持,出现了多个meetup,并出现了新的资源。 编程语言的历史只朝着一个方向发展,每一种新的语言的出现都让事情都变得越来越复杂,越来越抽象。然而,就在十几年前,Go在Google诞生了。这种编程语言走的是另外一条路,它把赌注押在了简单和精心的设计和实现上。这个配方一直保留到今天,你可以直接开始写Go代码,没有太大的障碍。当你想到现代软件的大部分流行和可靠的作品都是用Go编写的,比如Docker、Kubernetes、Prometheus等,这就足以让你印象深刻。这个列表还在持续增加。为了了解Go从哪里来,更重要的是它要往哪里去,InfoQ联系了Google负责战略和产品的Go编程语言团队核心成员Steve Francia(译注:他也是知名静态站点生成工具gohugo的作者)。 ...
本文源于笔者对知乎上的一个问题“Go有哪些劣势?”(https://www.zhihu.com/question/300163211)的一次回答(https://www.zhihu.com/question/300163211/answer/1632229924)。当时随手花几分钟在手机上写了一些点。但事后我觉得应该再做一些系统地思考。在这里我就将更系统地思考后的答案整理并分享给大家。 关于Go语言,我是喜欢的,甚至可以算作“鼓吹者”阵营的一份子。但我一贯秉承“Go并非完美语言”这个观点来尽可能客观地看待Go。每种编程语言都有自己的劣势,Go也不例外,下面我们就来列举一下Go的那些“劣势”: ...
本文是首发于个人微信公众号的文章**“TB一周萃选[第5期]”**的归档。 人生十鉴 大喜易失言 大怒易失礼 大惊易失态 大哀易失颜 大乐易失察 大惧易失节 大思易失爱 大醉易失德 大话易失信 大欲易失命 ...