摘要: # 简介 使用 Markdown 书写结构化的文档和评论已经相当流行了,Web 服务需要将用户编写的 Markdown 文本转换为 html 以便浏览器渲染,还常常需要对 Markdown 语法进行自定义扩展以实现个性化的功能。 本期要介绍的 [**goldmark **](https://gith 阅读全文
posted @ 2023-09-29 21:16 larkwins 阅读(366) 评论(0) 推荐(0)
摘要: 本文主要介绍Go语言中的`singleflight`包,包括什么是`singleflight`以及如何使用singleflight合并请求解决缓存击穿问题。 [singleflight](https://pkg.go.dev/golang.org/x/sync/singleflight) 目前(Go 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(386) 评论(0) 推荐(0)
摘要: ## 介绍 我们在日常开发中,常常会对JSON进行序列化和反序列化。Golang提供了`encoding/json`包对JSON进行`Marshal/Unmarshal`操作。但是在大规模数据场景下,该包的性能和开销确实会有点不够看。在生产环境下,JSON 序列化和反序列化会被频繁的使用到。在测试中 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(2270) 评论(0) 推荐(1)
摘要: # 一、开源项目简介 # Sagoo IOT SagooIOT是一个基于golang开发的轻量级的物联网平台。支持跨平台的物联网接入及管理方案,平台实现了物联网开发相关的基础功能,基于该功能可以快速的搭建起一整套的IOT相关的业务系统。 # 二、开源协议 使用Apache-2.0开源协议 # 三、界 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(1230) 评论(0) 推荐(1)
摘要: ## 项目链接 > [https://github.com/projectdiscovery/katana](https://github.com/projectdiscovery/katana) ## 项目简介 ![](https://mmbiz.qpic.cn/sz_mmbiz_png/BOAj 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(840) 评论(0) 推荐(0)
摘要: 项目地址:[https://github.com/tsenart/vegeta](https://github.com/tsenart/vegeta) > [https://mp.weixin.qq.com/s/J0PiqTifr_rs_S2CzMRoWg](https://mp.weixin.qq 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(49) 评论(0) 推荐(0)
摘要: # ◆ 一、开源项目简介 ![](https://mmbiz.qpic.cn/sz_mmbiz_png/RQueXibgo0KNH6A281w2suibhkebibiakFZAM97kypujbVw5UfL2Upib97JlricuGvWBzwPHzmQw5GGL1fG7XA4zPY3A/640?w 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(543) 评论(0) 推荐(0)
摘要: 来自公司 sourcegraph 的 [**conc**](https://github.com/sourcegraph/conc)** (**[**https://github.com/sourcegraph/conc**](https://github.com/sourcegraph/conc, 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(368) 评论(0) 推荐(0)
摘要: > fastcache 是一个线程安全并且支持大量数据存储的高性能缓存组件库。 这是官方 `Github` 主页上的项目介绍,和 `fasthttp` 名字一样以 `fast` 打头,作者对项目代码的自信程度可见一斑。此外该库的核心代码非常轻量, 笔者本着学习的目的分析下内部的代码实现。 ## 基准 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(253) 评论(0) 推荐(0)
摘要: 该包的实现是基于标准库os/env包中的相关函数(比如Getenv)来获取系统的环境变量的。获取到环境变量值后,再通过结构体中的tag,将值映射到对应的结构体字段上。 ### 使用示例 下面是将系统的一些环境变量映射到config结构体的示例。如下: 我们可以像以下这样运行该代码: ```shell 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(141) 评论(0) 推荐(0)
摘要: 该库提供了一种简单、高效、可靠的方式来控制Chrome浏览器进行自动化测试和爬取数据。 项目地址:[https://github.com/chromedp/chromedp](https://github.com/chromedp/chromedp) **它可以模拟用户在浏览器中执行各种操作**,* 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(884) 评论(0) 推荐(0)
摘要: filetype(https://github.com/h2non/filetype)是一个 Go 语言的第三方库,可以根据文件的魔数(magic numbers)签名来推断文件的类型和 MIME 类型。它支持多种常见的文件类型,包括图片、视频、音频、文档、压缩包等。它还提供了一些便捷的函数和类型匹 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(415) 评论(0) 推荐(0)
摘要: `goexpr`是一个`golang`实现的通用`表达式引擎(expression engine)`,支持自定义`操作数(operand)`,`操作符(operator)`以及`函数(function)`。 [体验地址](https://git.woa.com/goexpr/goexpr) ## 1 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(692) 评论(0) 推荐(0)
摘要: ## 简介 `Delve` 用来调试 `Go` 语言开发的程序,该工具的目标是为 `Go` 语言提供一个简单、功能齐全的调试工具。 ## 为什么不推荐 gdb - • gdb 对 Go 的调试支持是通过一个 python 脚本文件 `src/runtime/runtime-gdb.py` 扩展的,功 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(345) 评论(0) 推荐(0)
摘要: 在Go语言中,对slice和map是我们最常用的数据结构。比如,计算两个切片的交集、差集;判断切片中的元素是否都满足某个条件的等。我推荐大家使用这个包:`[elliotchance/pie](https://github.com/elliotchance/pie)`。 该包封装了**对切片和map的 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(212) 评论(0) 推荐(0)
摘要: ## 简介 受python提示工具包的启发,在Go中构建强大的交互式提示 ## 一、代码示例 ```go package main import ( "fmt" "github.com/c-bata/go-prompt" ) func completer(d prompt.Document) []p 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(381) 评论(0) 推荐(0)
摘要: **使用Go语言编程时,生成任意内容的二维码是非常方便的,可以使用 go-qrcode 这个库快速生成二维码**。大家可以从 github 上(https://github.com/skip2/go-qrcode)下载并使用这个库。要是下载不下来的挂个代理就可。 上代码 ```go package 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(267) 评论(0) 推荐(0)
摘要: ## 一、User-Agent是什么 User-Agent叫做用户代理,是HTTP协议中请求头中的一个字段值。通过该字段值可以告诉网站服务器用户使用的什么产品发送的http请求。该信息一般发送请求的产品名称、操作系统、版本号等信息。大家熟知的浏览器其实就是所谓的一种用户代理。 通过谷歌的chrome 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(269) 评论(0) 推荐(0)
摘要: 一个轻量级、语义化、对开发者友好的 golang 编码解码、加密解密库。 ## 安装使用 ```go // 使用 github 库 go get -u github.com/golang-module/dongle import ( "github.com/golang-module/dongle" 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(157) 评论(0) 推荐(0)
摘要: 今天给大家推荐的是基于redis的Go版本的分布式锁工具:[redsync]()。该工具也是redis官网上推荐的。redsync 基于redis的高可用、高性能、防死锁、防误删的分布式锁实现,具有高性能、高可用、防死锁、防误删的特点。 ## 一、分布式锁基础知识 **什么是分布式锁** 锁,在编程 阅读全文
posted @ 2023-09-29 21:07 larkwins 阅读(905) 评论(0) 推荐(0)