目录 一、gomock工具介绍 二、安装 三、使用 3.1指定三个参数 3.2使用命令为接口生成mock实现 3.3使用make命令封装处理mock 四、接口单元测试步骤 三、小黄书Service层单元测试 四、flags 五、打桩(stub) 参数 六、总结 6.1测试用例定义 6.2设计测试用例 6.3执行测试用例代码 6.4运行测试用例 6.5不是所有的场景都很好测试 一、gomock工具介绍 gomock是一个Go语言的测试框架,在实际项目中,需要进行单元测试的时候。却往往发现有一大堆依赖项。这时候就是Gomock大显身手的时候了,用于编写单元测...
markdown 基础语法 1.标题 标题一 标题二 标题三 标题四 2.字体 这是斜体字体 这是加粗字体 这是加粗斜体字体 这是带有删除线的文字 这是删除线文字 3.引用 >这是一个引用 >>这是一个嵌套引用 4.分割线 -- 5.列表 列表1 列表2 1.列表项1 2.列表项2 1.列表项1 子列表项一 子列表项二 2.列表项2 6.链接 [这是一个链接](https://www.baidu.com) [这是一个链接][1] [1]:https://www.baidu.com 这是一个链接 百度 7.图片 ![这是一个图片](https://www....
本文深入探讨了Kubernetes(K8s)的关键方面,包括其架构、容器编排、网络与存储管理、安全与合规、高可用性、灾难恢复以及监控与日志系统。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人 一、介绍 Kubernetes的历史和演进 Kubernetes(简称K8s)是一个开源的容器编排系统,用于自动化应用程序的部署、扩展和管理。它最初是由Google内部的Borg系统启发并设计...
目录 一、sqlmock介绍 二、安装 三、基本用法 四、一个小案例 五、Gorm初始化注意点 一、sqlmock介绍 sqlmock是一个用于测试数据库交互的Go模拟库。它可以模拟SQL查询、插入、更新等操作,并且可以验证SQL语句的执行情况,非常适合用于单元测试中。 二、安装 gogetgithub.com/DATA-DOG/go-sqlmock 三、基本用法 使用sqlmock进行MySQL数据库集成测试的基本步骤如下: 创建模拟DB连接: import( "database/sql" "testing" "github.com/DATA-DOG/go-sqlmoc...
目录 一、引入 二、控制反转与依赖注入 三、为什么需要依赖注入工具 3.1示例 3.2依赖注入写法与非依赖注入写法 四、wire工具介绍与安装 4.1wire基本介绍 4.2安装 五、Wire的基本使用 5.1前置代码准备 5.2使用Wire工具生成代码 六、Wire核心技术 5.1抽象语法树分析 5.2模板编程 七、Wire的核心概念 7.1两个核心概念 7.2Wire提供者(providers) 7.3Wire注入器(injectors) 八、Wire的高级用法 8.1绑定接口 8.2结构体提供者(StructProviders) 8.3绑定值 8.4使用结...
目录 封装语言包翻译器 tag中设置验证规则 控制层验 curl请求 返回结果 封装语言包翻译器 packagevalidator import( "fmt" "net/http" "reflect" "github.com/go-playground/locales/zh_Hans_CN" unTrans"github.com/go-playground/universal-translator" "github.com/go-playground/validator/v10" zhTrans"github.com/go-playground/validat...
参考 https://github.com/higress-group/proxy-wasm-go-sdk/tree/main/proxywasm https://github.com/tetratelabs/proxy-wasm-go-sdk https://github.com/alibaba/higress/blob/main/plugins/wasm-go/pkg/wrapper https://tinygo.org/docs/reference/ https://tinygo.org/docs/reference/lang-support/stdlib/ mse网关及插件的测试 ...
问题背景 访问某个HTTP域名接口,偶发性超时,原因可能多种多样,比如DNS解析问题、网络质量问题、对端服务负载问题等,在客户端没有良好埋点的情况下,排查起来比较费劲,只能挨个方向尝试,这里送大家一个小工具,可以快速采样DNS解析延迟,快速确认是否是DNS解析问题。 使用演示 运行工具,传入域名,就开始探测,每秒探测一次,如果想控制频率,也可以传入第二个参数,比如0.2秒探测一次。 ulric@ulric-flashcatdns-lookup-latency%./dns-lookup-latencybaidu.com0.2 Apr709:25:15.414:26.060ms Apr709:2...
目录 一、介绍 二、安装 三、导入 四、基本使用 4.1发送GET请求 4.2POST请求发送JSON数据 4.3Post文件上传 4.4GoRequests使用代理 4.5Gorequests使用session 五、HTTP服务端代码 一、介绍 官方文档DOC:https://pkg.go.dev/github.com/levigross/grequests Github:http://github.com/levigross/grequests Python中的Requests库非常强大,所以Go开发者模仿Python的Requests库,由此诞生了Grequest...
本文深入探讨了KubernetesPod配置的实战技巧和常见易错点。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人 一、简介 Kubernetes基础概念回顾 在深入探讨Pod配置之前,让我们先快速回顾一下Kubernetes(K8s)的基础概念。Kubernetes是一个开源平台,旨在自动化容器化应用程序的部署、扩展和管理。它提供了一个可扩展的框架,允许用户运行分布式系统的应用程序...
继18日Llama3的8B、70B大模型发布后,百度智能云千帆大模型平台19日宣布在国内首家推出针对Llama3全系列版本的训练推理方案,便于开发者进行再训练,搭建专属大模型,现已开放邀约测试。 目前,百度智能云千帆大模型平台中各种尺寸模型定制工具ModelBuilder已预置了最全面最丰富的大模型,支持国内外第三方主流模型,总数量达到79个,是国内拥有大模型数量最多的开发平台。 如有帮助,请多关注TeahLeadKrisChang,10+年的互联网和人工智能从业经验,10年+技术和业务团队管理经验,同济软件工程本科,复旦工程管理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人...
PV与PVC PVC(PersistentVolumeClaim),命名空间(namespace)级别的资源,由用户orStatefulSet控制器(根据VolumeClaimTemplate)创建。PVC类似于Pod,Pod消耗Node资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存),而PVC可以请求特定存储卷的大小及访问模式(AccessModePV(PersistentVolume)是集群中的一块存储资源,可以是NFS、iSCSI、Ceph、GlusterFS等存储卷,PV由集群管理员创建,然后由开发者使用PVC来申请PV,PVC是对PV的申请,类似于Pod对Nod...
近期,上海合合信息科技股份有限公司发布的文本向量化模型acge_text_embedding在中文文本向量化领域取得了重大突破,荣获MassiveTextEmbeddingBenchmark(MTEB)中文榜单(C-MTEB)第一名的成绩。这一成就标志着该模型将在大模型领域的应用中发挥更加迅速和广泛的影响。 MTEB概述 假设你需要了解如何在家中自制咖啡,可能会在搜索引擎中输入‘家庭咖啡制作方法’。如果没有Embedding模型,传统的引擎会简单地匹配包含关键词的文章,提供一些表面相关的内容而非实用的指南。”团队成员提到,借助Embedding模型,引擎便能更准确地理解用户意图,从而提供...
相关依赖 github.com/higress-group/proxy-wasm-go-sdk github.com/alibaba/higress/plugins/wasm-go 标准的redis 下面是一个读取redis指定key的方法,使用了higress的wasm-go组件实现的 err:=config.Client.SMembers("online",func(responseresp.Value){ for_,item:=rangeresponse.Array(){ str:=item.String() ifstrings.HasPrefix(str,"\""...
目录 一、单元测试基本介绍 1.1什么是单元测试? 1.2如何写好单元测试 1.3单元测试的优点 1.4单元测试的设计原则 二、Go语言测试 2.1Go单元测试概要 2.2Go单元测试基本规范 2.3一个简单例子 2.3.1使用Goland生成测试文件 2.3.2运行单元测试 2.3.3完善测试用例 2.3.5回归测试 2.4Goland直接运行单元测试 2.5GoTest命令参数 2.6运行一个文件中的单个测试 2.7测试覆盖率 2.8公共的帮助函数(helpers) 三、testing.T的拥有的方法 四、表格驱动测试 4.1介绍 4.2举个例子 五、testif...
本文更新于2024-03-22。 官方文档:https://go.dev/doc/devel/release 目录 泛型 go1.22.0(2024-02-06) go1.21.0(2023-08-08) go1.20(2023-02-01) go1.19(2022-08-02) go1.18(2022-03-15) 模块 go1.17(2021-08-16) go1.16(2021-02-16) go1.15(2020-08-11) go1.14(2020-02-25) go1.13(2019-09-03) go1.12(2019-02-25) go1.11(2018-08-...
前言 并发编程和分布式微服务是我们Gopher升职加薪的关键。 毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发。 虽说好上手,但是想和别人拉开差距,提高自己的竞争力,搞懂分布式微服务和并发编程还是灰常重要的,这也是我今年更新文章的重点。 更文计划 我会更新一系列文章,陪你一起打怪升级,升职加薪! 本文的重点是:gozero快速入门,带你了解使用gozero开发项目的整体流程,以及一些技巧。 下一篇的重点是:带你使用gozero从头到尾实现一个经典功能的开发。 后续文章还会陆续更新我们在商业项目开发中积累的项目经验,比如:如何自定义goctl提高效率...
目录 一、httptest 1.1前置代码准备 1.2介绍 1.3基本用法 二、gock 2.1介绍 2.2安装 2.3基本使用 2.4举个例子 2.4.1前置代码 2.4.2测试用例 一、httptest 1.1前置代码准备 假设我们的业务逻辑是搭建一个httpserver端,对外提供HTTP服务。用来处理用户登录请求,用户需要输入邮箱,密码。 packagemain import( regexp"github.com/dlclark/regexp2" "github.com/gin-gonic/gin" "net/http" ) typeUserHan...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 代码请看:https://github.com/ahfuzhang/cowmap 有这样一种场景:数据量不多的map,在使用中读极多写极少。为了在这种场景下做极致的优化,我实现了copy-on-write的map:其实现原理为:所有的读都可以不加锁的并发读取,一旦需要写,则copy一份原来的map,在备份上修改,然后通过原子操作把指针切换到新的对象上。 我对比了CowMap(Copy-On-WriteMap)和sync.Map,以及普通map+读写...
本文提供了一份全面的Kubernetes(K8S)命令指南,旨在帮助用户掌握和运用K8S的各种命令。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人 一、基础命令 在Kubernetes中,基础命令用于日常的查询和基本操作。以下表格展示了这些基础命令,它们的说明,以及相应的使用举例。 命令 说明 举例 kubectlversion 显示客户端和服务器的Kubernetes...