Web Analytics

使用TLA+形式化验证Go并发程序

本文永久链接 – https://tonybai.com/2024/08/05/formally-verify-concurrent-go-programs-using-tla-plus Writing is nature’s way of letting you know how sloppy your thinking is – Guindon 在2024年6月份举办的GopherCon Europe Berlin 2024上,一个叫Raghav Roy的印度程序员(听口音判断的)分享了Using Formal Reasoning to Build Concurrent Go Systems,介绍了如何使用形式化验证工具TLA+来验证Go并发程序的设计正确性。 ...

August 5, 2024 · 21 min · Tony Bai

Gopher Daily支持Feed订阅

Gopher Daily支持Feed订阅 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 Gopher Daily支持Feed订阅 八月 4, 2024 0 条评论 ...

August 4, 2024 · 6 min · Tony Bai

Go语言中的SIMD加速:以矩阵加法为例

本文永久链接 – https://tonybai.com/2024/07/21/simd-in-go 前些日子,一些资深Gopher,比如fasthttp的作者Aliaksandr Valialkin因函数迭代器加入Go 1.23版本而抱怨Go的演进走错了方向:朝着增加复杂性和隐式代码执行的方向发展,而没有专注于Go语言的基本设计哲学——简单性、生产力和性能。Valialkin希望Go团队能专注于一些性能打磨和优化的环节,比如使用SIMD提升一些计算场景下Go代码的性能,避免Go的某些领地被以性能和安全性著称的Rust抢去! ...

July 21, 2024 · 14 min · Tony Bai

通过实例理解SQL查询语句的执行顺序

通过实例理解SQL查询语句的执行顺序 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 通过实例理解SQL查询语句的执行顺序 七月 20, 2024 0 条评论 ...

July 20, 2024 · 7 min · Tony Bai

通过实例理解Go访问和操作数据库的几种方式

本文永久链接 – https://tonybai.com/2024/07/15/understand-the-ways-to-access-databases-in-go 关系数据库操作是Go应用开发中的重要一环,尤其是Go Web应用、微服务等。作为Gopher,我们需要了解几种主流的数据库访问和操作方法,以便在项目中做出适当的选择。 ...

July 15, 2024 · 25 min · Tony Bai

Go语言编程指南翻译记:一本书,一支队伍,一段难忘的旅程

Go语言编程指南翻译记:一本书,一支队伍,一段难忘的旅程 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 Go语言编程指南翻译记:一本书,一支队伍,一段难忘的旅程 七月 5, 2024 2 条评论 ...

July 5, 2024 · 5 min · Tony Bai

Go与神经网络:手写数字识别

本文永久链接 – https://tonybai.com/2024/06/28/go-and-nn-part3-handwritten-digit-recognition 在上一篇文章《Go与神经网络:线性回归》中,我们借由传统的机器学习方法:线性回归解决了房价预测问题。按照我初步设想的从传统机器学习到大语言模型的学习路线,是时候在这一篇中切换到学习神经网络了。 1. 从线性回归到神经网络 我们已经知道了如何使用多元线性函数构成的线性回归模型预测房价,其实线性模型也可以看作是一个神经网络。我们在上一篇文章中使用的假设函数如下图: ...

June 28, 2024 · 21 min · Tony Bai

Go 1.23中的自定义迭代器与iter包

本文永久链接 – https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23 在《Go 1.23新特性前瞻》一文中,我们提到了Go 1.23中增加的一个主要的语法特性就是支持了用户自定义iterator,即range over func试验特性的正式转正。为此,Go 1.23还在标准库中增加了iter包,这个包对什么是Go自定义iterator做了诠释: ...

June 24, 2024 · 19 min · Tony Bai

Go团队的工作方式

Go团队的工作方式 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 Go团队的工作方式 六月 22, 2024 1 条评论 ...

June 22, 2024 · 7 min · Tony Bai

Gopher的Rust第一课:Rust的依赖管理

本文永久链接 – https://tonybai.com/2024/06/16/gopher-rust-first-lesson-managing-deps 在上一章《Gopher的Rust第一课:Rust代码组织》中,我们了解了Rust的代码组织形式,知道了基于Cargo构建项目以及Rust代码组织是目前的标准方式,同时Cargo也是管理项目外部依赖的标准方法,而项目内部的代码组织则由Rust module来完成。 在这一章中,我们将聚焦Rust的依赖管理,即Cargo对外部crate依赖的管理操作。我将先介绍几种依赖的来源类型(来自crates.io或其他Package Registries、来自某个git仓库以及来自本地的crate等),然后说说Cargo依赖的常见操作,包括依赖的添加、升降版本和删除;最后,聊一下如何处理依赖同一个依赖项的不同版本。 ...

June 16, 2024 · 22 min · Tony Bai