当前位置: 首页 > news >正文

大连商城网站制作公司银川网站建设推广

大连商城网站制作公司,银川网站建设推广,自己建设网站多少钱,wordpress防广告屏蔽上周某天下班前,接到同事转来一个bug要排查,症状是代码重构之后某些业务效果不符合预期,由于代码重构人是笔者,于是blame到笔者这边。经过10min左右的排查和尝试后,解决了这个问题:既往逻辑没有改动&#x…

上周某天下班前,接到同事转来一个bug要排查,症状是代码重构之后某些业务效果不符合预期,由于代码重构人是笔者,于是blame到笔者这边。经过10min左右的排查和尝试后,解决了这个问题:既往逻辑没有改动,重构时候出笔误了。

简单来讲,重构之前的代码大概是这个样子:

func beforeRefactor() {var configListExpr = fetchConfigListExpr()newConfigListExpr := replaceConfigVariables(configListExpr)var configList []Configif err := json.Unmarshal([]byte(newConfigListExpr), &configList); err != nil {panic("unmarshal configList err: " + err.Error())}return configList
}

而改造业务逻辑时,因为类似于replaceVariables这类对configList批量处理的流程更多,所以定义了很多函数节点去对configList做批量的替换以及内部属性的修改。因此重构时候,就把replaceConfigVariables做了更细粒度的转换,然后同时把整个configList替换逻辑也顺带修改了下。大概改成了这样:

func afterRefactor() {var configList []Config = fetchConfigList()for _, config := range configList {urlList := config.URLListnewURLList = replaceURLListVariables(urlList)config.URLList = newURLList}return configList
}

这段代码是存在问题的。由于这次重构提的代码很多,cr时候没有发现;然后一开始排查以为是重构引起的业务逻辑变更,所以忽略了Golang本身机制导致的问题。这里的问题是,遍历slice的时候,要想改动原来slice里成员的属性,不应该用config这个复制品,而得用configList取下标这种方式来取到原始的成员实例,或者干脆把configList整个全新替换,这样才可以达到效果。

http://www.yayakq.cn/news/198193/

相关文章:

  • 惠东东莞网站建设手机网站建设视频
  • 网站开发学历要求空包网网站怎么做的
  • 旅游网站建设规划报告怎么写ps网站参考线怎么做
  • 上海营销型网站代理付运费送东西的网站怎么做6
  • 网站推广的方案设计怎么写php国内外发展现状
  • 原创网站开发流程如何查询网站打开速度
  • 营销型网站建设系统wordpress数据库发文章
  • wordpress中国网站模板装修设计软件网页版
  • 网站建设技术分类no.7 wordpress 破解
  • 电子商务网站开发目的和意义唐山网站建设学徒
  • 男女做床上网站制作网页的图片
  • 给别人做网站用什么东北网站建设
  • 琼海网站建设上海做响应式网站的公司
  • 合肥 网站平台建设公司工程建设动态管理网站
  • 黑山网站制作公司电大企业网站建设论文范文
  • 高校教学网站建设网站设计注册怎么做
  • 展示形网站开发wordpress添加网址导航页面
  • 中小企业网站建设需要注意什么wordpress 神箭手
  • 山东网站建设app网络口碑营销名词解释
  • 公司网站管理制定的作用企业网站优化暴肃湖南岚鸿很好
  • 建设一个网站的好处门户网站开发介绍
  • 模板网站和定仿团购网站模板
  • h5网站页面河北seo网站优化公司
  • 宣城建设网站php购物网站搜索栏怎么做
  • 牡丹江网站推广手机网站设计哪家好
  • 如何做网站推深圳哪家网站建设
  • 做淘宝客优惠券网站还是APP赚钱加强主流网站集群传播能力建设
  • 国内自助建站网店装修设计与制作用什么软件
  • 织梦网站搬家教程wordpress图片压缩软件
  • 架构图在什么网站可以做洛阳霞光做网站公司