
sqlite
多数主流CI平台预装Go但版本滞后,需显式指定版本(如1.22.5)并配置GOPROXY、GOSUMDB、CGO_ENABLED等环境变量以确保构建稳定复现。
EFCore不能在BlazorWebAssembly客户端直接运行,因其依赖的ADO.NET、同步I/O等能力不被浏览器沙箱支持;必须部署于服务端,由BlazorWASM通过HTTPAPI调用访问数据...
不用自增ID做短码因会暴露业务数据、难以并发预知ID,需解耦;推荐随机+重试或雪花ID派生,Go+SQLite用INSERTONCONFLICT避免竞态。
模块拆分前必须先初始化go.mod,运行gomodinitexample.com/myapp是前提;模块路径需真实唯一,目录应按业务域(如/internal/user)而非技术层组织;接口定义在调用方...
Go中database/sql错误判断需区分sql.ErrNoRows等预期错误与其他系统错误,事务Rollback()必须检查返回值,context超时错误应归类为临时故障,自定义错误类型比字符串匹...
Go的map非线程安全,并发读写会panic;sync.Map适用于高并发读、低频写的场景,但类型受限且API不同;需按序遍历、结构体key、持久化、TTL/LRU时应选其他方案。
测试函数应命名行为而非实现,如TestWhenThen模式;避免硬编码JSON等字符串,改用json.RawMessage复用;禁用全局状态修改;子测试需t.Run包裹并命名清晰;慎用共享资源与隐式耦...
云原生存储在Go应用中需通过Kubernetes标准接口访问,而非Go直接提供抽象;应校验PVC挂载路径、避免init中I/O、对接对象存储用SDK并处理超时重试、StatefulSet中用Downw...
必须先调用sql.Open获取*sql.DB但不立即建连,首次Query/Exec才触发连接;需导入驱动、检查Open和Ping的error;Query用于多行、QueryRow用于单行;Exec执行...
单元测试中应避免直接调用database/sql或gorm.DB,因其破坏快、稳、可重复、隔离性;推荐用接口抽象+mock(如testify/mock)替代;集成测试才连真实数据库,并严格管控生命周期...