
都是
私有模块发布必须配置GOPRIVATE并确保go.mod路径与仓库URL一致。需设置exportGOPRIVATE="git.example.com/internal/,github.com...
Go值类型传参是浅层内存块拷贝:基本类型字段全复制,引用类型字段仅复制头部;结构体超64字节、高频调用或含大数组时应改用指针传参。
Go中返回结构体指针(*T)是实现引用语义的唯一方式,用于支持修改原数据、避免大结构体拷贝、满足不可拷贝字段或指针接收者方法需求,但需防范nil解引用panic。
struct值传递会引发大对象拷贝,因Go中所有参数均为值传递,传参时完整复制所有字段;含大数组、嵌套结构等会导致KB级memcpy开销,应优先使用指针传递避免拷贝。
工厂函数应封装构造逻辑,校验参数、处理I/O错误、返回可运行实例,避免调用方依赖具体类型;NewXXX命名是Go社区惯例;需动态切换实现时才引入工厂接口;工厂须纯函数化,不读全局状态。
Go中表达式求值后必有结果,语句无值;if/for/switch/return是语句,不能用于赋值等需值的上下文,而a+b、len(s)等是表达式,可赋值或传参。
strings.Contains是Go中判断子串存在的首选函数,语义清晰、性能良好,但仅支持精确匹配、区分大小写,需手动处理大小写转换和前缀/后缀场景。
Go用嵌入而非继承实现组合模式,因无传统继承机制,需靠接口抽象+值聚合;节点统一实现TreeNode接口,Composite用[]TreeNode聚合子节点,Leaf返回空切片,避免nil导致遍历错误...
分区表需配合查询条件中的分区键才能生效,否则全分区扫描性能更差;分区键须为高频过滤字段且分布均匀;非分区键字段仍需建索引;主键或唯一索引必须包含分区键;时间分区适合快速归档。
主从复制靠Binlog+RelayLog同步数据:主库写binlog,从库I/OThread拉取存为relaylog,SQLThread串行回放;需开启binlog(row格式)、唯一server-i...