Tag
Go日志优化核心是避免无谓计算:提前判断级别防参数求值、选用零分配库(如zerolog/zap)、编译期裁剪Debug、模块级动态降级。
查看更多 2026-06-20
Go所有参数传递都是值传递,slice、map、chan、func、*T等类型因值中含指针可间接修改原数据;int、string、数组、结构体等则完全拷贝,修改不影响原值。
查看更多 2026-06-20
自定义错误需用结构体实现Error()方法,导出字段便于读取,指针类型支持errors.As提取,嵌入cause并实现Unwrap()可构建错误链,避免字符串匹配。
查看更多 2026-06-20
Go语言不直接实现KubernetesHPA,仅用于编写指标适配器或控制器;HPA扩缩由kube-controller-manager驱动,直接调用scale子资源会绕过HPA逻辑导致状态异常;合规方式是提供CustomMetricsAPI或替代控制器。
查看更多 2026-06-20
Go测试资源管理需分层:TestMain做全局初始化与清理,必须调用m.Run()并返回其退出码;单个测试用t.Cleanup确保及时释放,注意闭包变量捕获;并发测试须独占资源如随机端口和临时目录;清理失败应记录而非静默。
查看更多 2026-06-20
泛型无法替代反射的场景包括序列化/反序列化、ORM映射、配置加载、通用校验框架、RPC参数解包;泛型可替代反射滥用场景如IsIn函数;混合使用需注意条件触发、类型校验、及时转回具体类型及缓存Type。
查看更多 2026-06-20
swag是Go微服务生成OpenAPI文档最成熟方案,通过解析源码注释生成swagger.json,需规范注释、导出字段带jsontag、正确指定main路径及扫描目录,并注意CI中自动化校验与生产环境关闭文档路由。
查看更多 2026-06-19
Go语言不直接管理微服务,Kubernetes负责编排与生命周期管理;Go通过client-go调用KubernetesAPI实现集成,如创建Deployment、监听Pod状态、编写Operator等,需注意配置、标签匹配、Finalizer处理及关注点分离原则。
查看更多 2026-06-19
Go程序容器中默认root运行风险高,需在Dockerfile和Kubernetes中强制非root用户;HTTP服务应按场景启用mTLS或头+网络策略校验;Secret须挂载文件读取并脱敏;依赖需用govulncheck扫描并评估活跃度。
查看更多 2026-06-19
拆分Gopackage应按职责边界而非文件大小——若包承担多个不相关职责(如user包混杂DB、HTTP、JWT等)则需拆,否则强拆反增负担;须同步处理导出符号、依赖方向、错误类型三件事。
查看更多 2026-06-19
Demand feedback