解析 Golang 测试(11)- 模糊测试

Go 1.18 开始提供了 fuzzing 能力的支持,testing 包在我们常见的 T, B 之外新增了 F 的类型,用于支持模糊测试。 那到底什么是模糊测试?Golang 提供了什么样的支持?作为开发者我们在什么场景下可以用呢? 今天我们继续【解析 Golang 测试】系列,带大家一起了解一下...

标签: 测试
发表于:2022-9-2 / 阅读(840) / 评论(0) 分类 Go语言
解析 Golang 测试(10)- 什么是好的单测

前面 9 讲我们谈论了很多工具层面的问题,什么是 mock,fake,stub,断言工具有哪些,官方提供了哪些支持等等。有了这些,我们写单测时会更加方便。但并不一定能写出好的单测。甚至可以说,二者的关联极小。 试想一下,回到中学时代,你给一个学生非常全面的文具,课本,教科书,他就一定能学习好么?并不...

标签: 测试
发表于:2022-9-2 / 阅读(86) / 评论(0) 分类 Go语言
解析 Golang 测试(9)- 一篇文章搞懂 testify

眨眼间,我们的【解析 Golang 测试】系列已经到第九篇了,一开始写的时候只是想补齐自己对于测试的方法论和工具的理解,一两篇文章也就够了,越写到后来发现越有意思,便一直更新下来。

标签: 测试
发表于:2022-9-2 / 阅读(97) / 评论(0) 分类 Go语言
解析 Golang 测试(8)- gomonkey 实战

今天继续我们的【解析 Golang 测试】之旅,经过前面的文章,相信大家对于单测的概念,原生支持,以及常见的 fake,mock 方案都有了一定了解。还不熟悉的同学建议回顾一下我们此前的文章。

标签: 测试
发表于:2022-9-2 / 阅读(82) / 评论(0) 分类 Go语言
解析 Golang 测试(7)- 如何针对 Redis 进行 Fake 测试

上一篇中,我们学习了 SQLite 和 go-mysql-server 这两种作为 MySQL Fake 的方式,这样可以让我们早单测阶段就暴露 SQL 语句可能的问题。

标签: 测试
发表于:2022-9-2 / 阅读(87) / 评论(0) 分类 Go语言
解析 Golang 测试(6)- 如何针对 MySQL 进行 Fake 测试

前面我们了解了什么是 Fake 和 Mock,并学习了对 sql 进行 Mock 的经典driver 库 sqlmock ,今天我们则是来看一看,针对 MySQL 我们有什么 Fake 的选项。

标签: 测试
发表于:2022-9-2 / 阅读(84) / 评论(0) 分类 Go语言
解析 Golang 测试(5)- MySQL 经典 mock driver—— sqlmock

时至今日,国内互联网绝大多数公司都在使用 MySQL 作为持久化存储,使用频率非常高。 上一篇文章中我们已经对 Fake,Mock,Stub 的概念做了区分 解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake,不清楚的同学建议先阅读一下再看这一篇。

标签: 测试
发表于:2022-9-2 / 阅读(84) / 评论(0) 分类 Go语言
解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake

今天继续我们的【解析Golang测试】第四篇,对此前文章感兴趣的同学可以点击进入: 解析 Golang 测试(1)- 原生支持 解析 Golang 测试(2)- gomock 解析 Golang 测试(3)- goconvey 实战 日常开发测试中,我们经常遇到各种【替代对象】的叫法...

标签: 测试
发表于:2022-9-2 / 阅读(82) / 评论(0) 分类 Go语言
解析 Golang 测试(3)- goconvey 实战

今天我们继续 Golang 测试之旅,在此前的文章中我们介绍了 Golang 标准库对测试的原生支持,以及经典的 golang/gomock。而我们今天的主角则是另一个经典的开源库:goconvey。 goconvey 是一套单元测试框架,比原生的go testing 好用很多。goconvey提供...

标签: 测试
发表于:2022-9-2 / 阅读(87) / 评论(0) 分类 Go语言
解析 Golang 测试(2)- gomock

上一篇文章 解析 Golang 测试 - 原生支持(1)中,我们了解了 Golang 官方 testing 库提供的支持。 今天我们一起看一下官方提供的一个 mock 工具:gomock

标签: 测试
发表于:2022-9-2 / 阅读(82) / 评论(0) 分类 Go语言
解析 Golang 测试(1)- 原生支持

开篇 我们在开发需求时,常常需要关注四个方面: 是否和需求匹配; 代码是否足够健壮,安全; 性能是否达标; 是否具备足够的扩展性,利于后期迭代维护。

标签: 测试
发表于:2022-9-2 / 阅读(83) / 评论(0) 分类 Go语言
Linux grep 实战用法

接着之前的 [awk 实战用法],我们继续 Linux 常见命令系列,回顾一下 grep 的常见用法。想了解详细规则的同学可以参照 官方文档。这里我们重点放在快速入门,以及日常会用到的一些用法。

标签: grep
发表于:2022-9-2 / 阅读(79) / 评论(0) 分类 Linux命令
linux awk 实战用法

近期有一个新闻很有意思,80岁的计算机领域泰斗 Brian Kernighan 大神,也就是我们常说的 K & R 中的 K,依然在为 awk 贡献代码增加了对 Unicode 的支持,详细的背景和采访请看原文。

标签: awk
发表于:2022-9-2 / 阅读(81) / 评论(0) 分类 Linux命令
Golang 业务开发怎么做 code review

今天我们来聊聊 code review,解构一下作为一个业务开发者怎样 review 代码才是最有效的。相信大家都或多或少帮同事 review 代码,这个度的把握其实是门学问,需要我们深入思考。这一点并不容易。

发表于:2022-8-31 / 阅读(94) / 评论(0) 分类 编程
goquery使用

简介 goquery为Go语言带来了类似于jQuery的语法和一组特性。它基于Go的net / html包和CSS Selector库cascadia。由于net / html解析器返回节点,而不是功能齐全的DOM树,因此jQuery的有状态操作函数(如height(),css(),detach()...

标签: goquery
发表于:2022-8-5 / 阅读(217) / 评论(0) 分类 Go语言
bleve初探(四)bleve支持的查询

Term 词条查询是最简单的查询。它在所提供的术语的索引中执行完全匹配。 Match 匹配查询,就像一个词条查询,但首先分析输入文本。试图使用该字段被索引时使用的相同分析器。 匹配查询可以选择性地执行模糊匹配。如果模糊性参数设置为非零整数,则分析的文本将与指定的模糊水平相匹配。另外,可以使用pref...

发表于:2022-8-4 / 阅读(144) / 评论(0) 分类 Go语言
Bleve代码阅读(二)——Index Mapping

Bleve是Golang实现的一个全文检索库,类似Lucene之于Java。在这里通过阅读其代码,来学习如何使用及定制检索功能。也是为了通过阅读代码,学习在具体环境下Golang的一些使用方式。代码的路径在github上https://github.com/blevesearch/bleve。 In...

发表于:2022-8-1 / 阅读(133) / 评论(0) 分类 Go语言
Bleve的NewIndexMapping解析

背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。

发表于:2022-8-1 / 阅读(142) / 评论(0) 分类 Go语言
linux常用工具指令

本文先介绍常用的 Linux 工具包,第二部分介绍我个人在平常使用Linux时,用到的一些指令和技巧,其中不包括特别基础的,大多为“用了可以省时省力,不使用也能有别的方法绕过”的技巧。 第二部分持续整理中,8月10日前整理好... 文中的指令,大部分在 Linux 和 MacOS 上都可用,少部分在...

发表于:2022-7-29 / 阅读(166) / 评论(0) 分类 Linux命令
linux极简小知识

Ctrl+l 清除屏幕显示的内容 由于太孤陋寡闻,看到一个快速清屏的操作,查了下发现, Ctrl+l 在终端下是快速清屏的快捷键。 Ctrl + l 快速清屏,比输入 clear 命令清屏方便快捷多了。 Ctrl + l (l 为 L 键)。 除此之外,还有 history -c 命令,用...

标签: Linux 命令
发表于:2022-7-26 / 阅读(189) / 评论(0) 分类 Linux命令
程序员写好技术文章的几点小技巧

去年成为了内网技术分享平台的年度作者,受邀写一篇关于“如何写好文章”的文章。我本身并不喜欢写字,去年写的几篇文章,涉及的话题自带流量,所以阅读量多了一些,谈不上有多擅长。不过我还是分享一下我自己写文章时用到的一些小技巧吧,希望对大家有帮助。 一 最重要的是内容 和所有人强调的一样,好文章最重要的是...

标签: 技术文章
发表于:2022-7-20 / 阅读(168) / 评论(0) 分类 写作生活
如何写好一篇技术文章

结合自身写作经历以及本次训练营直播分享的内容,谈一谈写作技巧以及程序员如何写好一篇技术文章。 写作训练营回顾 2020 年 12 月 26 日下午,我参加了一个写作训练营的直播,活动内容如下: 该训练营是以直播的方式开展,四位嘉宾给大家分享 IT 技术写作技巧、如何写出让人称赞的技术文章和技术写作...

标签: 技术文章
发表于:2022-7-20 / 阅读(147) / 评论(0) 分类 写作生活
关于如何挣钱的35条建议

这篇《关于如何挣钱的35条建议》,是波波从《How to Get Rich : Every Episode》[附录1]这篇长文(超过3.6万英文单词)翻译整理而来。波波非常认同原文作者Naval关于挣钱和财富的理念,有种强烈的得道恨晚的感觉~要是早十年就懂这些道理就好了,所以专门花时间翻译整理,并且...

标签: 赚钱
发表于:2022-7-20 / 阅读(160) / 评论(0) 分类 写作生活
为什么Go 常量只支持基本数据类型

今天给大家分享的一个提案,已经在 Go 社区讨论了整整 9 年(2013~2022),它与我们的日常编程密切相关。 今天就由煎鱼和大家一起深入学习和了解提案《proposal: spec: allow constants of arbitrary data structure type^[1]^》吧...

标签: go
发表于:2022-7-20 / 阅读(157) / 评论(0) 分类 Go语言
五分钟给你的 gRPC 服务加上 HTTP 接口

gRPC 服务要加 HTTP 接口? go-zero 给大家带来极简的 RESTful 和 gRPC 服务开发体验的同时,社区又给我们提出了新的期望: 我想只写一次代码 既要 gRPC 接口 也要 HTTP 接口

标签: go go-zero
发表于:2022-7-20 / 阅读(170) / 评论(0) 分类 Go语言
这是一篇测试cherry-markdown的文章

Cherry Markdown Editor 介绍 Cherry Markdown Editor 是一款 Javascript Markdown 编辑器,具有开箱即用、轻量简洁、易于扩展等特点. 它可以运行在浏览器或服务端(NodeJs). 开箱即用 开发者可以使用非常简单的方式调用并实例化Cher...

标签: 前端
发表于:2022-7-18 / 阅读(154) / 评论(0) 分类 前端开发
Leaf—Segment分布式ID生成系统(Golang实现版本)

简介:今天直接开门见山,先来介绍一下我今天所带来的东西。没错,看标题想必大家已经想到了 —— Leaf-segment数据库获取 ID 方案。这个方案已经喜闻乐见了,美团早就进行了开源,不过他是由 java 来实现的,所以最近为了学习这一方面知识,我用 go 自己实现了一下,目前自己验证是没有发现...

发表于:2022-7-9 / 阅读(250) / 评论(0) 分类 Go语言
React组件的State

组件 state 必须能代表一个组件UI呈现的完整状态集,即组件的任何UI改变都可以从 state 的变化中反映出来;同时, state 还必须代表一个组件UI呈现的最小状态集,即 state 中的所有状态都用于反映组件UI的变化,没有任何多余的状态,也不应该存在通过其他状态计算而来的中间状态。 ...

发表于:2022-6-30 / 阅读(295) / 评论(0) 分类 WEB相关
golang 复制对象的正确做法

golang 复制对象的正确做法 需求   实际运用中,传参是一对象指针,现在如何最简便地复制一对象? 实现   坑:&* 先拿到值再指针?

发表于:2022-6-29 / 阅读(154) / 评论(0) 分类 Go语言
基于DDD的golang实践案例

Check the github repo for the updated code: https://github.com/victorsteven/food-app-server 领域驱动设计模式算是比较热门的话题了。 领域驱动设计(DDD)是一种软件开发方法,通过将实现与不断演变的模型相连接...

发表于:2022-5-31 / 阅读(514) / 评论(0) 分类 Go语言