后端开发
Go 标签描述

目录 一、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大显身手的时候了,用于编写单元测...

  uGYzDadp0Cs7   2024年04月18日   77   0   0 Go

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....

  hyrB1Ag4eVs8   2024年04月15日   67   0   0 Go

目录 一、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...

  uGYzDadp0Cs7   2024年04月18日   66   0   0 Go

目录 封装语言包翻译器 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...

  dHUS172Lkv6A   2024年05月08日   169   0   0 Go

问题背景 访问某个HTTP域名接口,偶发性超时,原因可能多种多样,比如DNS解析问题、网络质量问题、对端服务负载问题等,在客户端没有良好埋点的情况下,排查起来比较费劲,只能挨个方向尝试,这里送大家一个小工具,可以快速采样DNS解析延迟,快速确认是否是DNS解析问题。 使用演示 运行工具,传入域名,就开始探测,每秒探测一次,如果想控制频率,也可以传入第二个参数,比如0.2秒探测一次。 ulric@ulric-flashcatdns-lookup-latency%./dns-lookup-latencybaidu.com0.2 Apr709:25:15.414:26.060ms Apr709:2...

  wzFl6rDubusz   2024年04月12日   76   0   0 Go

目录 一、介绍 二、安装 三、导入 四、基本使用 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...

  uGYzDadp0Cs7   2024年04月15日   164   0   0 Go

继18日Llama3的8B、70B大模型发布后,百度智能云千帆大模型平台19日宣布在国内首家推出针对Llama3全系列版本的训练推理方案,便于开发者进行再训练,搭建专属大模型,现已开放邀约测试。 目前,百度智能云千帆大模型平台中各种尺寸模型定制工具ModelBuilder已预置了最全面最丰富的大模型,支持国内外第三方主流模型,总数量达到79个,是国内拥有大模型数量最多的开发平台。 如有帮助,请多关注TeahLeadKrisChang,10+年的互联网和人工智能从业经验,10年+技术和业务团队管理经验,同济软件工程本科,复旦工程管理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人...

  MQD0xJmbEOnQ   2024年04月19日   44   0   0 Go

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...

  YFCZjJLTjJgW   2024年05月04日   50   0   0 Go

“大模型我们走在最前面,我们需要去勇闯无人区,需要去冒前人没有冒过的风险。”近日,在百度一场内部颁奖活动中,百度创始人、董事长兼首席执行官李彦宏指出,百度一直坚信技术可以改变世界,会一直沿着这条路走下去。 当天,李彦宏在颁奖时,向现场的获奖团队和个人表示祝贺并强调,“你们才代表百度,你们才代表最真实的百度,你们是百度最真实的代表。” 他在讲话中指出,创新并不容易,“十个创新,可能九个最后都是以失败告终的,但我们不会放弃,我们会去做第11个、第12个……我相信终有一天,我们会向世界证明,技术是有价值的。” 回顾过去一年,李彦宏表示,文心一言在去年3月16日首发,历经3.5、4.0版本不断迭...

  MQD0xJmbEOnQ   2024年05月17日   41   0   0 Go

近期,上海合合信息科技股份有限公司发布的文本向量化模型acge_text_embedding在中文文本向量化领域取得了重大突破,荣获MassiveTextEmbeddingBenchmark(MTEB)中文榜单(C-MTEB)第一名的成绩。这一成就标志着该模型将在大模型领域的应用中发挥更加迅速和广泛的影响。 MTEB概述 假设你需要了解如何在家中自制咖啡,可能会在搜索引擎中输入‘家庭咖啡制作方法’。如果没有Embedding模型,传统的引擎会简单地匹配包含关键词的文章,提供一些表面相关的内容而非实用的指南。”团队成员提到,借助Embedding模型,引擎便能更准确地理解用户意图,从而提供...

  MQD0xJmbEOnQ   2024年04月25日   90   0   0 Go

简介 kube-proxy是Kubernetes集群中负责服务发现和负载均衡的组件之一。它是一个网络代理,运行在每个节点上,用于service资源的负载均衡。它有两种模式:iptables和ipvs。 iptables iptables是Linux系统中的一个用户空间实用程序,用于配置内核的网络包过滤和网络地址转换(NAT)规则。它是Linux内核中的netfilter框架的一部分,并负责在网络包进入、转发或离开计算机时进行筛选和处理。其主要功能和用途包括: 防火墙:iptables提供了强大的防火墙功能,可以根据不同的规则来过滤和拒绝不需要的网络包。管理员可以创建自定义的规则集,允许或拒绝...

  YFCZjJLTjJgW   2024年05月17日   53   0   0 Go

目录 一、单元测试基本介绍 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...

  uGYzDadp0Cs7   2024年04月16日   111   0   0 Go

近日,在VSCode、Jetbrains等各大插件市场智能助手评分榜中,百度Comate分别以4.5和4.4位列第一,通义灵码位居第二、第三,CodeGeeX、iFlyCode、aiXcoder、GitHubCopilot等跟随其后。 从外界获悉,百度Comate自发布以来,得到了广大程序员们的好评。许多用户表示,Comate不仅提高了他们的工作效率,还让他们在编程过程中感受到了前所未有的乐趣和成就感。数据统计,百度每日新增代码中已有27%由Comate自动生成,整体采纳率达到46%。 Comate是基于文心大模型的智能代码助手,能够把代码的理解、生成和优化等能力无缝集成到研发流程的各个...

  MQD0xJmbEOnQ   2024年05月17日   62   0   0 Go

本文更新于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-...

  eEFe8ITFAZmP   2024年04月13日   116   0   0 Go

距离golang1.23发布还有两个月不到,按照惯例很快要进入1.23的功能冻结期了。在冻结期间不会再添加新功能,已经添加的功能不出大的意外一般也不会被移除。这正好可以让我们提前尝鲜这些即将到来的新特性。 今天要说的就是1.23中对//go:linkname指令的变更。这个新特性可以说和我的一次失误息息相关。 重要的事情得先写在前面://go:linkname指令官方并不推荐使用,且不保证任何向前或者向后兼容性,因此明智的做法是尽量别用 牢记这一点之后,我们可以接着往下看了。至于为啥和“我”也就是本文的作者有关,我们先看完新版本带来的新变化再说。 linkname指令是做什么的 简单的说,li...

  yZdUbUDB8h5t   2024年05月17日   52   0   0 Go

前言 并发编程和分布式微服务是我们Gopher升职加薪的关键。 毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发。 虽说好上手,但是想和别人拉开差距,提高自己的竞争力,搞懂分布式微服务和并发编程还是灰常重要的,这也是我今年更新文章的重点。 更文计划 我会更新一系列文章,陪你一起打怪升级,升职加薪! 本文的重点是:gozero快速入门,带你了解使用gozero开发项目的整体流程,以及一些技巧。 下一篇的重点是:带你使用gozero从头到尾实现一个经典功能的开发。 后续文章还会陆续更新我们在商业项目开发中积累的项目经验,比如:如何自定义goctl提高效率...

  AAtiLbKiVIAV   2024年04月28日   71   0   0 Go

前言 上一篇文章带你实现了Go-Zero模板定制化,本文将继续分享如何使用GO-ZERO进行业务开发。 通过编写API层,我们能够对外进行接口的暴露,因此学习规范的API层编写姿势是很重要的。 通过本文的分享,你将能够学习到Go-Zero的API语法规范,以及学会实际上手使用。 概述 下文所说的是api是go-zero自研的领域特性语言(下文称api语言或api描述语言),旨在实现人性化的基础描述语言,作为生成HTTP服务最基本的描述语言。 api领域特性语言包含语法版本、info块、结构体声明、服务描述等几大块语法组成,其中结构体和Golang结构体语法几乎一样,只是移除了struct关键字...

  AAtiLbKiVIAV   2024年05月17日   62   0   0 Go

istio是什么 Istio是一个开放源代码的服务网格,它为基于微服务的应用程序提供了一种统一的方式来连接、保护、监控和管理服务。Istio主要解决的是在微服务架构中的服务间通信的复杂性问题,它通过提供服务间的负载均衡、服务到服务的认证、监控以及服务的弹性(例如重试、熔断等)来实现。 sidecar是什么 sidecar是一种设计模式,它将挂在业务容器旁边作为辅助,当业务接受流量和传出流量的时候,都先经过sidecar然后在到达业务容器或者发出。sidecar可以看作是一个代理,或者是一个专门为我一个服务而工作的gateway。这样,服务的熔断、限流、监控、日志等功能都可以在sidecar中实...

  YFCZjJLTjJgW   2024年05月17日   49   0   0 Go

目录 一、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...

  uGYzDadp0Cs7   2024年04月17日   60   0   0 Go

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 代码请看:https://github.com/ahfuzhang/cowmap 有这样一种场景:数据量不多的map,在使用中读极多写极少。为了在这种场景下做极致的优化,我实现了copy-on-write的map:其实现原理为:所有的读都可以不加锁的并发读取,一旦需要写,则copy一份原来的map,在备份上修改,然后通过原子操作把指针切换到新的对象上。 我对比了CowMap(Copy-On-WriteMap)和sync.Map,以及普通map+读写...

  ZvAhkxhPQwyp   2024年04月24日   56   0   0 Go