Go本地测试小技巧解耦任务拆解
作者:王中阳Go 发布时间:2023-08-29 14:09:26
Go本地测试的思路
我习惯在开发过程中及时测试自己开发的功能模块,这样能及时发现问题,节省后期功能耦合之后,debug的时间。
为了统一管理要测试的功能(模块),所以创建了测试类,在cmd中直接运行,不需要借助postman等接口请求工具。
fun Run(){
//测试方法
TestUnifyInputInsert()
}
func TestUnifyInputInsert() {
var req *goods_unify.GoodsPackItem{} //这是结构体
//这是json
jsonInput := `{"base":{"goods_code":"381318","source":2,"shop_id":"1","shop_name":"京东自营测试","description":"测试描述","category_id":["1389"],"brand_name":"Bigen"},"attributes":[{"key":"产地1","value":"北京"}],"price":{"market_price":1000,"guide_price":900,"agreement_price":800,"activity_price":800}}`
//把json转成结构体
err := gconv.Struct(jsonInput, &req)
if err != nil {
g.Dump("转换错误:", err)
return
}
service.GoodsUnify.CreateGoods(context.Background(), req)
}
解耦
今天在重构之前的代码,举个例子:
之前关于商品中心的添加、更新、修改价格、修改商品信息、下架等功能逻辑,都耦合在同一个方法中。
根据标记区分要进行什么操作。
从代码复用角度考虑,这样设计确实能少写很对代码。
但是维护起来确实很头大。
举个具体的场景示例:
当更新商品价格时:之前的设计是也需要传递类似封面图、属性、来源等30+字段,并且和价格无关的信息也会进行运算,解耦做的非常差。
在解耦之后:只需要传递商品价格,和商品对应的各个规格的价格信息。
同时把价格计算相关的方法抽取出来,供修改价格和修改商品信息复用。(修改商品信息也支持修改价格。)
no情绪 & todolist
情绪一上来,智商就下去。
今天比较累,但是工作效率比较高,反思一下就是上面的原因,因为自己活力四射的时候往往带有情绪:傲娇的情绪也好、觉得被坑的情绪也罢。
当带有情绪时,是无法深入思考的,所以会出现智商变低的情况。
今天以一个比较累,比较困,但是记录了todolist,拆解了问题,然后就这样闷头解决了各个问题。
现在反思一下今天的工作还是很爽的。
沟通的重要性
沟通真的非常重要,想起黄教主说的:“我不要你觉得,我要我觉得”。 老板们不都是黄教主...
今天和一个朋友谈心,她聊到了最近工作中的困惑和烦恼。
我耐心听她讲完后,帮她总结就是沟通的问题:她总是以为工作中碰到的问题是什么样的,其实事实并非如此。不愿意去沟通,甚至没有主动沟通过,凭借自己的主观臆断去推进工作。
如果一如既往的“我觉得...我以为...”,不仅于事无补,情况只会越来越糟。
及时沟通
不要拖延、不要犯懒,问题只会随着时间的拖延而越来越严重。
找对人
我认为当碰到问题时或者需要公司支持时,一定要和自己的直接领导做好沟通,因为直接领导是最了解咱们工作情况的,同时又能站在比自己高的角度去思考,能更好的理解老板的所思所想。
不要跨级沟通是有道理的,跨级可能会导致理解偏差。
公司之所以需要职级,需要一个萝卜一个坑,是因为在组织架构中、公司文化中、长久的发展中形成的,我现在开始信这句话了:存在即合理。
当碰到问题时,找到对的人,进行及时沟通是非常非常重要的!
来源:https://juejin.cn/post/7111325551549218823


猜你喜欢
- 1,打开cmd安装PyQt5pip install pyqt52,PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5-
- 使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢?在JDBC编程接口中Stateme
- 1. 在apps包下新建一个utils的python包2. utils包中新建一个YunPian.py文件,文件中代码如下import re
- 同步的方法基本与多线程相同。1) Lock当多个进程需要访问共享资源的时候,Lock可以用来避免访问的冲突。import multiproc
- 要求,输入一串数字,并以列表的形式打印出来。number = input('请输入一串数字:') print(number)
- 爬取”顶点小说网“《纯阳剑尊》代码import requestsfrom bs4 import BeautifulSoup# 反爬heade
- 1. 时间与时区1.1 时间标准UTC,世界标准时间,是现在的时间标准,以原子时计时。GMT,格林威治时间,是以前的时间标准,规定太阳每天经
- JS实现轮播图实现结果图:需求:1 根据图片动态添加小圆点 2 目标移动到小圆点轮播图片 3 鼠标离开图片,定时轮播图片;鼠标在图片上时暂停
- 也不一定,以前从来没有深入的研究过sql查询,最近买了一本T-SQL查询的书,把以前忽视的问题都记录一下 以前一直模模糊糊的把sqlserv
- golang 函数以及函数和方法的区别在接触到go之前,我认为函数和方法只是同一个东西的两个名字而已(在我熟悉的c/c++,python,j
- 由于工作需要本文主结合了excel表格,对表格中的ssh密码进行批量修改以下是详细代码(python3):'''遇到
- 一.图像金字塔图像金字塔是指由一组图像且不同分别率的子图集合,它是图像多尺度表达的一种,以多分辨率来解释图像的结构,主要用于图像的分割或压缩
- 前一阵子经理问我能不能把用户最后一次登录我们的业务数据库的时间记录下来,因为之前有人修改过数据库sa用户的登录密码,所以我们要记录一下。 我
- 本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能。缺点:1. 程序不是响
- 1. 为什么要备份数据先说一下为什么需要备份MySQL数据?一句话总结就是:为了保证数据的安全性。如果我们把数据只存储在一个地方,如果物理机
- 问题:例如我们要选从不同省份选取一个号码,每个省份的权重不一样,直接选随机数肯定是不行的了,就需要一个模型来解决这个问题。简化成下面的问题:
- 本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:这里不手动实现最小二乘,调用scipy库中实现好的相关
- 说明:本文内容都是从Google上搜索来的,本想上http://www.alexa.com/查官方数据,访问非常慢暂且没查。使用本接口将返回
- 对于个人用户来说,除了病毒和木马,网页中的隐形代码也开始严重地威胁着我们的安全,但大多数人却缺乏自我保护意识,对隐形代码的危害认识不够,甚至
- 对于DBA来说,丢失超管用户root的密码是致命的,可以通过添加--ship-grant-tables参数来跳过权限表。1、忘记root密码