方法 本质go

Go每日一库之63:ants

## 简介 处理大量并发是 Go 语言的一大优势。语言内置了方便的并发语法,可以非常方便的创建很多个轻量级的 goroutine 并发处理任务。相比于创建多个线程,goroutine 更轻量、资源占用更少、切换速度更快、无线程上下文切换开销更少。但是受限于资源总量,系统中能够创建的 goroutin ......
ants

Go每日一库之65:tunny

## 简介 之前写过一篇文章介绍了`ants`这个 goroutine 池实现。当时在网上查看相关资料的时候,发现了另外一个实现[`tunny`](https://github.com/Jeffail/tunny)。趁着时间相近,正好研究一番。也好比较一下这两个库。那就让我们开始吧。 ## 快速开始 ......
tunny

Go每日一库之66:bubbletea

## 简介 `[bubbletea](https://github.com/charmbracelet/bubbletea)`是一个简单、小巧、可以非常方便地用来编写 TUI(terminal User Interface,控制台界面程序)程序的框架。内置简单的事件处理机制,可以对外部事件做出响应, ......
bubbletea

Go每日一库之68:dateparse

## 简介 不管什么时候,处理时间总是让人头疼的一件事情。因为时间格式太多样化了,再加上时区,夏令时,闰秒这些细枝末节处理起来更是困难。所以在程序中,涉及时间的处理我们一般借助于标准库或第三方提供的时间库。今天要介绍的[`dateparse`](https://github.com/araddon/ ......
dateparse

Go每日一库之31:plot(图表绘制)

## 简介 本文介绍 Go 语言的一个非常强大、好用的绘图库——`[plot](https://github.com/gonum/plot)`。`plot`内置了很多常用的组件,基本满足日常需求。同时,它也提供了定制化的接口,可以实现我们的个性化需求。`plot`主要用于将数据可视化,便于我们观察、 ......
图表 plot

Go每日一库之64:ants(源码赏析)

## 简介 继上一篇[Go 每日一库之 ants](https://go-quiz.github.io/2021/06/03/godailylib/ants),这篇文章我们来一起看看`ants`的源码。 ## `Pool` 通过上篇文章,我们知道`ants`池有两种创建方式: - `p, _ := ......
源码 ants

Go每日一库之67:ozzo-validation

## 简介 [`ozzo-validation`](https://github.com/go-ozzo/ozzo-validation)是一个非常强大的,灵活的数据校验库。与其他基于 struct tag 的数据校验库不同,`ozzo-validation`认为 struct tag 在使用过程中 ......
ozzo-validation validation ozzo

Go每日一库之49:mapstructure

## 简介 [`mapstructure`](https://github.com/mitchellh/mapstructure)用于将通用的`map[string]interface{}`解码到对应的 Go 结构体中,或者执行相反的操作。很多时候,解析来自多种源头的数据流时,我们一般事先并不知道他 ......
mapstructure

Go每日一库之50:jobrunner

## 简介 我们在 Web 开发中时常会遇到这样的需求,执行一个操作之后,需要给用户一定形式的通知。例如,用户下单之后通过邮件发送电子发票,网上购票支付后通过短信发送车次信息。但是这类需求并不需要非常及时,如果放在请求流程中处理,会影响请求的响应时间。这类任务我们一般使用异步的方式来执行。[`job ......
jobrunner

Go每日一库之51:gabs

## 简介 JSON 是一种非常流行的数据交换格式。每种编程语言都有很多操作 JSON 的库,标准库、第三方库都有。Go 语言中标准库内置了 JSON 操作库`encoding/json`。我们之前也介绍过专门用于**查询** JSON 串的库[gjson](https://go-quiz.gith ......
gabs

Go每日一库之52:commonregex

## 简介 有时,我们会遇到一些需要使用字符串的匹配和查找的任务。并且我们知道这种情况下,使用正则表达式是最简洁和优雅的。为了完成某个任务特地去系统地学习正则表达式费时费力,而且一段时间不用又很容易遗忘。下次遇到问题还要再重复这个过程。[`commonregex`](https://github.c ......
commonregex

Go每日一库之53:commonregex

## 简介 有时,我们会遇到一些需要使用字符串的匹配和查找的任务。并且我们知道这种情况下,使用正则表达式是最简洁和优雅的。为了完成某个任务特地去系统地学习正则表达式费时费力,而且一段时间不用又很容易遗忘。下次遇到问题还要再重复这个过程。[`commonregex`](https://github.c ......
commonregex

Go每日一库之55:quicktemplate

## 简介 最近在整理我们项目代码的时候,发现有很多活动的代码在结构和提供的功能上都非常相似。为了方便今后的开发,我花了一点时间编写了一个生成代码框架的工具,最大程度地降低重复劳动。代码本身并不复杂,且与项目代码关联性较大,这里就不展开介绍了。在这个过程中,我发现 Go 标准的模板库`text/te ......
quicktemplate

Go每日一库之69:resty

## 简介 [`resty`](https://github.com/go-resty/resty)是 Go 语言的一个 HTTP client 库。`resty`功能强大,特性丰富。它支持几乎所有的 HTTP 方法(GET/POST/PUT/DELETE/OPTION/HEAD/PATCH等),并 ......
resty

Go每日一库之70:termtables

## 简介 今天学个简单点的,[`termtables`](github.com/scylladb/termtables)处理表格形式数据的输出。适用于随时随地的输出一些状态或统计数据,便于观察和调试。是一个很小巧的工具库。我在学习[`dateparse`](https://go-quiz.gith ......
termtables

Go每日一库之54:quicktemplate(增强模板库)

## 简介 最近在整理我们项目代码的时候,发现有很多活动的代码在结构和提供的功能上都非常相似。为了方便今后的开发,我花了一点时间编写了一个生成代码框架的工具,最大程度地降低重复劳动。代码本身并不复杂,且与项目代码关联性较大,这里就不展开介绍了。在这个过程中,我发现 Go 标准的模板库`text/te ......
quicktemplate 模板

go go代码中调用python脚本

目录go go代码中调用python脚本写个简单的py脚本再写个go的脚本 go go代码中调用python脚本 有的官方文档只提供了java和python的sdk,而我们需要用他们封装的服务,只能调用python或java的接口,接下来演示怎么调用python 写个简单的py脚本 import s ......
脚本 代码 python go

一篇解答数据增量同步全难点!数据同步最好的方法推荐

数据增量同步,数据同步难点,数据库同步性能优化 ,高性能数据同步,数据同步策略,数据同步工具,数据库备份与恢复,数据同步方案 ......
数据 增量 难点 最好 方法

Go每日一库之28:validator

简介 今天我们来介绍一个非常实用的库——validator。validator用于对数据进行校验。在 Web 开发中,对用户传过来的数据我们都需要进行严格校验,防止用户的恶意请求。例如日期格式,用户年龄,性别等必须是正常的值,不能随意设置。 快速使用 先安装: $ go get gopkg.in/g ......
validator

在Go中如何实现并发

Go语言的并发机制是其强大和流行的一个关键特性之一。Go使用协程(goroutines)和通道(channels)来实现并发编程,这使得编写高效且可维护的并发代码变得相对容易。下面是Go的并发机制的详细介绍: 协程(Goroutines): 协程是Go中的轻量级线程,由Go运行时管理。与传统线程相比 ......

Go每日一库之28:validator

简介 今天我们来介绍一个非常实用的库——validator。validator用于对数据进行校验。在 Web 开发中,对用户传过来的数据我们都需要进行严格校验,防止用户的恶意请求。例如日期格式,用户年龄,性别等必须是正常的值,不能随意设置。 快速使用 先安装: $ go get gopkg.in/g ......
validator

Modbus动态链接库供多语言使用 | Go

Modbus协议控制动态链接库 应用场景 基于各门语言都有各自的modbus协议库,且良莠不齐,而且在具体的框架下可能存在版本依赖问题, 而且对modbus协议存在比较多的细节处理,可以查看modbus slave、或者modbus poll中相关的配置可知, 数据类型对应读写寄存器个数、大小端的处 ......
链接 动态 Modbus Go

Linux centos7内核升级 简单快速的方法

Linux是支持多版本内核共存的,无非是系统启动的时候应用哪个版本内核而已。 关于内核: Linux 内核分两种:官方内核(通常是内核开发人员用)和各大 Linux 发行版内核(一般用户常用)。 关于Linux内核版本号:例如:[root@centos7 ~]# uname -r3.10.0-112 ......
简单快速 内核 centos7 方法 centos

thinkPHP框架在nginx环境中提示404错误的几种情况与解决方法

一、未设置伪静态 解决方法:在项目public目录下新建文件,命名为nginx.htaccess,文件内容如下: location / { index index.html index.htm index.php; autoindex off; if (!-e $request_filename) ......
框架 thinkPHP 错误 情况 环境

定位元素 (字符串)和方法 做分离

# 导包 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium. ......
字符串 字符 元素 方法

Go每日一库之27:govaluate

简介 今天我们介绍一个比较好玩的库govaluate。govaluate与 JavaScript 中的eval功能类似,用于计算任意表达式的值。此类功能函数在 JavaScript/Python 等动态语言中比较常见。govaluate让 Go 这个编译型语言也有了这个能力! 快速使用 先安装: $ ......
govaluate

ubuntu下安装nodejs方法

先下载nodejs的bin包,假如包的文件名叫node-v18.18.0-linux-x64 然后执行命令设置环境变量 export NODE_HOME=/opt/nodejs/node-v18.18.0-linux-x64/bin export PATH=$NODE_HOME:$PATH 激活修改 ......
方法 ubuntu nodejs

pair<int,int> 有序对使用方法

pair<int, int> 是 C++ 标准库中的一个模板类,用于存储两个值的有序对。它的第一个值的类型是 int,第二个值的类型也是 int。 可以将整个 pair<int , int> 理解为一个有序对数据类型,所以它也只能接受有序对数据类型为了简化代码,可以使用 typedef 或 defi ......
使用方法 int 方法 pair lt

MySQL索引详解一二级索引的区别与选择方法(mysql 一二级索引)

MySQL索引详解:一二级索引的区别与选择方法 索引是数据库中非常重要的一部分,可以提高查询速度,优化查询效率,降低系统负载。MySQL中的索引分为一级索引和二级索引,本文将详细解释它们的区别和如何选择正确的索引。 一级索引 一级索引也称为聚集索引,是MySQL表格中的默认索引。它的最大特点是能够快 ......
一二级 索引 方法 MySQL mysql