0%

小伙看到同事写的Gorm黑魔法,逐渐不淡定了。

开发过程中,看到同事的代码写了这么一段:

1
2
3
4
5
6
7
db = db.Session(&gorm.Session{Context: db.Statement.Context}).FirstOrCreate(&entity)
if db.Error !=nil{
    return components.ErrorDbInsert.WrapPrintf(db.Error, "Insert error, entity:%s", utils.ToJson(entity))
}
if db.RowsAffected == 0 {
    return components.ErrorAlreadyExist
}

在uber 的go语言编码规范中有这么一条,2.48s 和0.21s 的差距还是很惊人了,我很好奇,why?

20211101012619128

切片在append的时候可能会自动扩容,看一下相关源码。

使用monkey对函数进行打桩单测的时候,发现打桩函数没有生效。

习惯直接使用IDE的可视化的rundebug功能进行跑单测,没有关注到具体执行的命令。