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

南宁网站建设升上去网站建设推广服务商

南宁网站建设升上去,网站建设推广服务商,遵义市住房城乡建设局网站,怎么用网站做chm上周某天下班前,接到同事转来一个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/99199/

相关文章:

  • 如何用wordpress仿站wordpress中的分类页
  • 郑州建站系统在线咨询网站外部链接建设
  • 新网备案成功了怎么做网站网站源码免费的
  • 古风自己做头像的网站wordpress自动取分类做菜单
  • 简述网站建设及维护全过程建设母婴网站的目的
  • 广西造建设工程协会网站温州市建设小学大南网站
  • 租服务器发布网站网站建设的参考书籍
  • 专门做牛肉的网站凡科手机网站建设
  • 免费的网站软件下载安装wordpress 静态设置
  • 宁国市城乡与住房建设网站建设部考试中心网站
  • 通栏 网站模板做胃镜多少钱天津津门网站I
  • 建设隔离变压器移动网站湖南省住房和城乡建设厅老网站
  • 企业网站托管外包怎么做网站建设刂搜金手指下拉二五
  • 黄一级a做爰片免费网站wordpress 插件play
  • 旅游网站建设国内外现状给公司创建网站
  • 昆山网站建设jofuns万网主机 网站重做
  • 济南做html5网站天津做网站的
  • 建设网站用什么好网站开发后台用什么语言
  • 想建立一个网站怎么做企业查询软件免费
  • 中国建设部网站关于资质批量网站建设
  • 苏州市网站网页设计案例图片
  • 网站制作零基础学习分销商城系统有哪些
  • 佛山公司网站推广外包服务外贸网站搭建推广
  • phpwind怎么做网站网络营销的目的
  • 网站主色调简介如何做彩票网站代理
  • 网站建设公司网站建设专业品牌国外优秀vi设计案例
  • 计算机网站建设相关的书籍小米发布会在哪看
  • 安徽住房和城乡建设厅网站首页学习网站建设好找工作吗
  • 营养早餐网站的设计与制作淘客网站建设收费吗
  • 网站建设 验证码做微商海报的网站