V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
ryan961

团队开发中如何看待或者与成员沟通代码质量等问题

  •  
  •   ryan961 · Dec 22, 2021 · 2917 views
    This topic created in 1586 days ago, the information mentioned may be changed or developed.

    最近公司新起了个项目,主管让我带新人做做,新人之前做 php ,没有接触过 go 。 我将之前的项目代码以及文档都分享给了他,并给他简单将讲解了项目的架构以及流程。 我给他起好了模板给他开发,结果第二天发现他直接把代码结构直接咔嚓一顿给改了(我起的 代码架构我们已经沿用的两个项目了,其他人也都这么搞的)。然后我就给他说了一下,然后他就给我一顿争论, 还提了他的这个思想是上家主管说的...我那叫一个气的。不过还好本人脾气还算好,我直接又给他理了一下我们的代码架构, 让他重新照着开发一遍,1 是为了方便我们团队合作开发,2 是等你有了一定的基础和经验你再去构思自己的结构布局,哪有没 学会走就要去跑的呀。 今天又去看了下他复写的代码,我是真不知道该怎么跟他说了

    func getParam(c *gin.Context) *models.BaseParams {
    param := models.BaseParams{}
    _ = c.ShouldBindBodyWith(&param, binding.JSON)
    param.ClientIp = c.ClientIP()
    param.RegisterTime = c.GetInt64(keys.RegisterTime)
    return &param
    }
    
    func UserInitialize(c *gin.Context) {
    Info := new(struct {
    models.User
    models.UserInfo
    })
    _ = c.ShouldBindBodyWith(&Info, binding.JSON)
    ctx := c.Request.Context()
    
    param := getParam(c)
    
    _ = c.ShouldBindBodyWith(&param, binding.JSON)
    
    if err := srv.UserInitialize(ctx, Info, param); err != nil {
    utils.FailJsonTest(c, -1, err.Error())
    return
    }
    
    utils.SuccessJsonTest(c, 0, ecode.OK.Message(), Info)
    return
    }
    
    
    func (s *Service) UserCreate(ctx context.Context, Info *struct {
    models.User
    models.UserInfo
    }, params *models.BaseParams) error {
    
    err := s.dao.UserCreate(ctx, Info)
    
    ...
    }
    
    func (d *Dao) UserCreate(ctx context.Context, Info *struct {
    models.User
    models.UserInfo
    }) error {
            //开启事务
            tx := d.dbForMatch.Begin()
            //回滚事务
            defer tx.Rollback()
            //创建用户表
            err := d.dbForMatch.Create(&Info.User).Error
            if err != nil {
            return err
            }
            //创建用户信息表
            Info.UserInfo.CustomerId = Info.User.CustomerId
            err = d.CreateUserInfo(&Info.UserInfo)
            if err != nil {
                return err
            }
            //提交事务
            tx.Commit()
            return nil
        }
    

    真不知道跟怎么跟他说了...是不是我太钻牛角尖了?

    11 replies    2021-12-29 14:56:23 +08:00
    LoNeFong
        1
    LoNeFong  
       Dec 22, 2021   ❤️ 1
    尊重, 祝福
    LoNeFong
        2
    LoNeFong  
       Dec 22, 2021
    告诉他不用分目录, 分结构了, 直接一个*gin.Context 传到数据库 岂不美滋滋(逃
    14v45mJPBYJW8dT7
        3
    14v45mJPBYJW8dT7  
       Dec 22, 2021
    server service dao 好像没啥问题。。。这是你们的模板还是他改成这样的,不过方便维护肯定是按照模板来。
    nicebird
        4
    nicebird  
       Dec 22, 2021
    和上司沟通下,这种不遵守规范的,死三次可以开了。
    wyhooo
        5
    wyhooo  
       Dec 22, 2021
    错在招了个写 PHP 的(逃
    walkerliu
        6
    walkerliu  
       Dec 22, 2021
    最后的 code segment , 事务控制有问题吧
    missdeer
        7
    missdeer  
       Dec 22, 2021
    新人你还客气啥,就怕是老油条还顽固不化
    qq1340691923
        8
    qq1340691923  
       Dec 22, 2021
    这个代码不是挺好的吗...
    siguretto
        9
    siguretto  
       Dec 22, 2021
    挺好的,只是可能都塞在一个文件里了
    iQXQZX
        10
    iQXQZX  
       Dec 23, 2021
    这个参数 struct 就堆在这,各个地方都重复一遍?哪有这么写的,不应该统一定义在外边吗。上面还有人说没啥问题。。。
    liaohongxing
        11
    liaohongxing  
       Dec 29, 2021
    语言都不对 ,能开始写算不错了 。大部分像看天书一样坐着不动。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6111 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 02:08 · PVG 10:08 · LAX 19:08 · JFK 22:08
    ♥ Do have faith in what you're doing.