github gitee go开发 热门开源项目

目录

  • 高性能go开发建议
  • 组件
    • 字符串
    • 数据结构
    • 类型转换
    • Json
    • flag
    • reflect
    • 日期时间
    • Math
    • 异常
    • 开发工具包
    • 调试工具
    • 翻译
    • 对象复制
    • 验证
    • 验证码
    • weChat
    • 支付
    • Excel
    • Word
    • 图像
    • PDF
    • 文件IO
    • runtime
    • OS
    • Devops工具
  • Web框架
    • gin
  • 微服务框架
  • 容器编排
  • 消息队列
  • 测试
  • 日志
  • 远程调用
  • 网络通信
  • 异步并发
  • 数据库 存储
  • 缓存
  • 鉴权
  • 限流
  • 注册中心
  • Api网关
  • 链路跟踪
  • 监控
  • 断路器
  • 配置
  • 重试
  • 分布式调度
  • 静态建站
  • 服务器
  • 爬虫
  • Book教程
  • 参考文档

高性能go开发建议

(1)尽可能的使用:=去初始化声明一个变量(在函数内部)
(2)尽可能的使用字符代替字符串
(3)尽可能的使用切片代替数组
(4)尽可能的使用数组和切片代替映射
(5)如果只想获取切片中某项值,不需要值的索引,尽可能的使用for range去遍历切片,这比必须查询切片中的每个元素要快一些
(6)当数组元素是稀疏的(例如有很多0值或者空值nil),使用映射会降低内存消耗
(7)初始化映射时指定其容量
(8)当定义一个方法时,使用指针类型作为方法的接受者
(9)在代码中使用常量或者标志提取常量的值
(10)尽可能在需要分配大量内存时使用缓存
(11)使用缓存模板

组件

字符串

strings

strings.Split(s, sep) 用于自定义分割符号来对指定字符串进行分割,同样返回 slice。
strings.Join(sl []string, sep string) string //Join() 用于将元素类型为 string 的 slice 使用分割符号来拼接组成一个字符串
strings.Contains(s, "f")
strings.HasPrefix(s, prefix string) bool
strings.HasSuffix(s, suffix string) bool
strings.Index(s, str string) int
strings.LastIndex(s, str string) int
strings.Replace(str, old, new string, n int) string
strings.Count(s, str string) int
strings.Repeat(s, count int) string
strings.TrimSpace(s) 来剔除字符串开头和结尾的空白符号;
如果你想要剔除指定字符,则可以使用 strings.Trim(s, "cut") 来将开头和结尾的 cut 去除掉。该函数的第二个参数可以包含任何字符,
如果你只想剔除开头或者结尾的字符串,则可以使用 TrimLeft() 或者 TrimRight() 来实现。
strings.ToUpper(item)
strings.NewReader(str) 用于生成一个 Reader 并读取字符串中的内容,然后返回指向该 Reader 的指针,从其它类型读取内容的函数还有:
Read()[]byte 中读取内容。
ReadByte()ReadRune() 从字符串中读取下一个 byte 或者 rune

数据结构

gods

切片slice

map
map 默认无序
如果你想为 map 排序,需要将 key(或者 value)拷贝到一个切片,再对切片排序(使用 sort 包,详见第 7.6.6 节),然后可以使用切片的 for-range 方法打印出所有的 key 和 value。

import ("fmt""sort"
)var (barVal = map[string]int{"alpha": 34, "bravo": 56, "charlie": 23,"delta": 87, "echo": 56, "foxtrot": 12,"golf": 34, "hotel": 16, "indio": 87,"juliet": 65, "kili": 43, "lima": 98}
)func main() {fmt.Println("unsorted:")for k, v := range barVal {fmt.Printf("Key: %v, Value: %v / ", k, v)}keys := make([]string, len(barVal))i := 0for k, _ := range barVal {keys[i] = ki++}sort.Strings(keys)fmt.Println()fmt.Println("sorted:")for _, k := range keys {fmt.Printf("Key: %v, Value: %v / ", k, barVal[k])}
}

堆包
container/heap

双向链表
container/list

类型转换

strconv
strconv包提供了字符串和数字之间的转换功能,可以方便地进行类型转换。

strconv.Itoa(int(bytesLength / 1024)) //将int转换为字符串
strconv.Atoi(s string) (i int, err error) //将字符串转换为int

cast: 不需要panic!在Go语言中进行类型转换易如反掌且安全。

collection: “Collection”为处理数据数组提供了一个流畅、方便的封装。你可以使用“Collect()”方法将一个map或者数组轻松地转换成一个Collection。然后,你可以使用Collection提供的强大而优雅的API来处理数据。

Json

json包
提供了JSON格式的编解码功能,可以方便地处理JSON数据。

type User struct{Name string `json:"name"`Age int `json:"age"`
}
user := {"zhangsan", 20}
// 实体转json
jsonStr, err = json.Marshal(user);
fmt.Printf("%s\n", jsonStr);myUser := User{}
// json转实体
myUser, err = json.Unmarshal(&jsonStr);
fmt.Printf("%v\n", myUser);

gjson: 非常好用的json解析工具库

json-to-go 给你一个json结构的数据,能够将代码转换为对应的结构体,直接在代码中使用,这简直太方便~

flag

flag包提供了解析命令行参数的功能,可以方便地获取用户输入的参数。

cobra: 是一个功能强大的命令行工具库,我们用它来实现内部的命令行工具

reflect

reflect包提供了反射的功能,可以在程序运行时动态地获取和修改对象的信息。

日期时间

time
time包提供了时间相关的函数,包括获取当前时间、时间格式化、时间操作等功能。

time.Now()
time.Sleep(1 * time.Second)

now 时间工具库

Math

Decimal
decimal 精度计算

异常

errors:更强大的异常堆栈

开发工具包

env: 这个库可以将我们的 环境变量 转换为一个 struct

dig: 一个依赖注入库
所有的对象都是单例。有一个统一的地方管理对象。使用时直接传递对象当做参数进来即可(容器会自动注入)。

sql2gorm: 用于将 sql 语句转换为 golang 的 struct

gowatch: 热编译工具

优雅的重启Http服务

revive: golang 代码质量检测工具

starcharts: Plot your repository stars over time.

lux: Fast and simple video download library and CLI tool written in Go

sponge_examples: Some examples of using sponge to develop go projects.

utils: 基于Go Mod的Golang常用开发工具包utils,包括字符串处理、日期转换、类型转换、切片处理、压缩、加密等

调试工具

perf: 代理工具,支持内存,cpu,堆栈查看,并支持火焰图

go-torch: 快捷定位程序问题

gops: A tool to list and diagnose Go processes currently running on your system

vagrant 开发环境管理工具,单机搭建可移植工具的利器。支持多种虚拟机后端。类似于docker

nomad 轻量级容器调度工具 可以非常方便的管理容器和传统应用,相比 k8s 来说,简单不要太多.

vault 敏感信息和密钥管理工具

weaver 高度可配置化的 http 转发工具,基于 etcd 配置。

supervisor 进程监控工具

foreman 基于procFile进程管理工具. 相比 supervisor 更加简单。

whistle 基于 http,https,websocket 的调试代理工具,配置功能丰富。在线教育的 nohost web 调试工具,基于此开发.

CloudXNS-DDNS 动态域名

翻译

go-pinyin: 汉字转拼音

对象复制

copier: 一个数据复制的库,与 Java 中的 BeanUtils.copy() 类似;可以将两个字段相同但对象不同的 struct 进行数据复制,也支持深拷贝。

验证

govalidator: 使用简单规则验证Go语言的请求数据。受Laravel请求验证启发。

govalidator: 一个用于字符串、结构体和集合的验证器和过滤器包,基于validator.js。

ozzo-validation: 提供可配置和可扩展的数据验证功能

验证码

aj-captcha-go: AJ-Captcha行为验证码的Go实现包

base64Captcha: 图像验证码

weChat

wechat: WeChat SDK for Go (微信SDK:简单、易用)

wechat-go: go version wechat web api and message framework for building wechat robot

微信开发

支付

gopay: 微信、支付宝、通联支付、拉卡拉、PayPal、Apple 的Go版本SDK。【极简、易用的聚合支付SDK】

Excel

excelize: 读取和写入XLAM / XLSM / XLSX / XLTM / XLTX文件。它支持读取和写入Microsoft Excel™ 2007及以上版本生成的电子表格文档。该库通过高度兼容性支持复杂的组件,并提供流式API,以从具有大量数据的工作表中生成或读取数据。此库需要 Go 版本1.16或更高版本。您可以使用go的内置文档工具查看完整文档,或在线查看 go.dev 和文档参考。

Word

unioffice: 文档 (docx) [Word] 读/写/编辑 格式化 图片 表格 Word 转 PDF (docx to pdf) 电子表格 (xlsx) [Excel] 读/写/编辑

图像

imaging: Package imaging 提供了基本的图像处理功能(如调整大小、旋转、裁剪、亮度/对比度调整等)。

gg: gg是一个使用纯Go语言渲染2D图形的库。

PDF

gopdf: gopdf是一个用Go语言编写的生成PDF文档的简单库。

gofpdf: gofpdf是一个实现了基于高级支持文本、绘图和图像的PDF文档生成器。

文件IO

io包
提供了读写数据的基本工具,大部分标准库中输入输出相关的包均依赖于此包。

filename := filePath + ".txt"
body, err := ioutil.ReadFile(filename)
if err != nil {return nil, err
}

bufio包
在 io 包的基础上提供更高级的读写缓冲

runtime

提供了与运行时系统进行交互的接口

OS

os包提供了与操作系统交互的函数,包括文件操作、进程管理、环境变量等功能

Devops工具

Yearning: A most popular sql audit platform for mysql

gitea: Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD

Web框架

gin

gin中文文档

gin: gin是一款轻量级的Web框架,具有高性能和易用性的特点,可以快速开发Web应用。

gin-vue-admin: 基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器,chatGPT自动查表等开发必备功能。

go-gin-api: 基于 Gin 进行模块化设计的 API 框架,封装了常用功能,使用简单,致力于进行快速的业务研发。比如,支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、gormgen 代码生成工具、graphql 查询语言、errno 统一定义错误码、gRPC 的使用、cron 定时任务 等等。

ferry: 基于Gin + Vue + Element UI前后端分离的工单系统

go-admin: go-admin是基于golang快速搭建可视化数据管理后台的框架

go-admin: 基于Gin + Vue + Element UI & Arco Design & Ant Design 的前后端分离权限管理系统脚手架(包含了:多租户的支持,基础用户管理功能,jwt鉴权,代码生成器,RBAC资源控制,表单构建,定时任务等)3分钟构建自己的中后台项目;项目文档》:https://www.go-admin.pro V2 Demo: https://vue2.go-admin.dev V3 Demo: https://vue3.go-admin.dev Antd 订阅版:https://antd.go-admin.pro

gf
gf: GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.

beego
beego: beego是一款全功能的Web框架,具有MVC架构、ORM、路由、缓存、Session等功能。

iris
iris: The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio 🚀

echo
echo: echo是一款高性能的Web框架,具有路由、中间件、模板等功能,适合构建RESTful API。

revel: A high productivity, full-stack web framework for the Go language.

微服务框架

go-zero: go-zero是一个集成了各种工程实践的web和rpc框架。

Go kit - A toolkit for microservices

Istio

jupiter: Governance-oriented Microservice Framework.

dapr: Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

DI依赖注入
yoyogo: YoyoGo is a simple, light and fast , dependency injection based micro-service framework written in Go. Support Nacos ,Consoul ,Etcd ,Eureka ,kubernetes.

容器编排

k8s kubernetes: Production-Grade Container Scheduling and Management

消息队列

队列
nsq: A realtime distributed messaging platform

asynq: 分布式任务队列 保证至少执行一次任务 重试失败的任务 在工作进程崩溃时自动恢复任务 加权优先级队列 严格优先级队列

Machinery异步队列

IM聊天
go-chat: go-chat.使用Go基于WebSocket开发的web聊天应用。单聊,群聊。文字,图片,语音,视频消息,屏幕共享,剪切板图片,基于WebRTC的P2P语音通话,视频聊天。

go-chat-web: 使用React基于WebSocket的聊天程序,普通文本消息,文件,图片,视频消息,语音消息,视频通话,屏幕共享等。

im_service: golang im server

chat: Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots

测试

testing

func Test(t *testing.T) {
}

monkey 单元测试

gomonkey 是一个 mock 打桩工具,当我们写单元测试时,需要对一些非接口函数进行 mock 会比较困难,这时就需要用到它了

gotests: 自动生成测试用例工具

testify: A toolkit with common assertions and mocks that plays nicely with the standard library

mock: GoMock is a mocking framework for the Go programming language.

sharingan: Sharingan(写轮眼)是一个基于golang的流量录制回放工具,适合项目重构、回归测试等。

日志

fmt

fmt.Println(v)func fmt.Fprintln(w io.Writer, a ...invalid type) (n int, err error)
fmt.Fprintln(w, "hello, world")

log包
提供了日志记录的功能,可以方便地记录程序运行时的信息。

logrus
logrus_mail 邮件通知hooks
zap

远程调用

RPC
grpc-go: The Go language implementation of gRPC. HTTP/2 based RPC

rpcx: Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it’s better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱! build for cloud!

tinyrpc: Fast, stable, mini RPC framework based on protocol buffer

http client
req: 简单而强大:简单易用,提供丰富的客户端级和请求级设置,所有设置均为直观的链式方法。

resty: GET、POST、PUT、DELETE、HEAD、PATCH、OPTIONS等简单且可链式调用的设置和请求方法

fasthttp

mux: Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍

sessions: Package gorilla/sessions provides cookie and filesystem sessions and infrastructure for custom session backends.

websocket
websocket: websocket提供了WebSocket协议的支持,可以实现实时通信的功能。

Restful和gprc相互转换

网络通信

goproxy: Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。

go-sniffer: 可扩展的抓包工具,可以开发自定义协议的工具包 抓包截取项目中的数据库请求并解析成相应的语句。

ngrok 反向代理工具,快捷开放内网端口供外部使用。

cfssl: 配置化生成证书 从根证书,到业务侧证书一键生成.

acme.sh: 免费的证书获取工具 基于 acme 协议,从 letsencrypt 生成免费的证书,有效期 1 年,可自动续期。

Mqtt通信

balancer: 负载均衡 A go library that implements load balancing algorithms. Fast, stable mini layer 7 load balancer.

net/http

func IndexHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprintln(w, "hello, world. http: %s", r.URL.Path)
}func main() {http.HandleFunc("/", IndexHandler)http.ListenAndServe(":8080", nil)
}

ping
ping: 检测节点连通性,ping包,及其丢包率

useragent
useragent: HTTP User Agent parser for the Go programming language.

异步并发

tunny
goworker
async

sync 异步
sync/atomic 原子操作

// 原子操作版加函数
func atomicAdd() {atomic.AddInt64(&sumCount, 1)wg.Done()
}

sync.WaitGroup

var wg sync.WaitGroupfunc runTask(id int) {// 推出一个减去1defer wg.Done()fmt.Printf("task %d start..\n", id)time.Sleep(2 * time.Second)fmt.Printf("task %d complete\n", id)
}func asyncRun() {for i := 0; i < 10; i++ {go runTask(i + 1)// 没启动一个go routine 就+1wg.Add(1)}
}func main() {asyncRun()wg.Wait()
}

channel
channel包
Golang中的一种并发通信机制,可以实现协程之间的数据传递和同步。

context
context包
提供了上下文管理的功能,可以方便地控制并发协程的执行。

数据库 存储

gorm
gorm: 一个功能齐全的 Golang 对象关系映射库

database/sql
sql包提供了数据库操作的接口,可以方便地连接和操作数据库。)

sqlx: 手写sql

mysql
mysql包提供了MySQL数据库的支持,可以方便地进行MySQL数据库的操作。
xorm 对象关系映射库

redis
redis包
提供了Redis数据库的支持,可以方便地进行Redis数据库的操作。
redis/go-redis: Redis Go client

redigo

codis: Proxy based Redis cluster solution supporting pipeline and scaling dynamically

redis-tools: A collection of redis tools, including distributed lock, cas, casEx, cad

kafka
sarama

es
elastic: 这也是一个非常成熟的 elasticsearch 库。

qax-os/ElasticHD: Elasticsearch 可视化DashBoard, 支持Es监控、实时搜索,Index template快捷替换修改,索引列表信息查看, SQL converts to DSL等

mongo
mongo-go-driver

etcd
etcd: Distributed reliable key-value store for the most critical data of a distributed system

分布式存储
tidb: TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Try AI-powered Chat2Query free at : https://tidbcloud.com/free-trial

kv 存储
lotusdb: Fast k/v storage compatible with lsm tree and b+tree, optimization of badger and bbolt.

gin-cloud-storage: 使用Go语言开发的云存储网盘项目

缓存

go-cache 是一个类似于 Java 中的 Guava cache ,线程安全,使用简单;不需要 分布式缓存 的简单场景可以考虑。

鉴权

iam: 企业级的 Go 语言实战项目:认证和授权系统(带配套课程)

权限控制

jwt: 一个完整的JSON Web Token (JWT)实现。该库支持解析和验证,以及生成和签名JWT。

oauth2: goauth2的后继者。通用OAuth 2.0包,提供JWT、Google APIs、Compute Engine和App Engine支持。

限流

ratelimit
http限流

注册中心

Consul

Api网关

api网关

链路跟踪

jaeger

监控

prometheus

断路器

circuitbreaker: Circuit Breakers in Go

配置

configor 是一个配置文件读取库,支持 YAML /JSON/TOML 等格式。

viper: 兼容 json,toml,yaml,hcl 等格式的日志库

重试

retry: ♻️ The most advanced interruptible mechanism to perform actions repetitively until successful.

分布式调度

cron: a cron library for go

gocron: Easy and fluent Go cron scheduling

cronsun

gocron

静态建站

hugo
hugo: The world’s fastest framework for building websites.

服务器

zinx: A lightweight concurrent server framework based on Golang.(基于Golang轻量级TCP并发服务器框架).
leaf: A game server framework in Go (golang)

livego 直播服务器

爬虫

goquery: A little like that j-thing, only in Go.

Book教程

Go 语言切片的实现原理

golang-developer-roadmap

build-web-application-with-golang

7天用Go从零实现Web框架Gee教程

Go语言高级编程

awesome-go: A curated list of awesome Go frameworks, libraries and software

GolangFamily

Uber Go 语言编码规范中文版

go-awesome: Go 语言优秀资源整理,为项目落地加速

learning_tools: Go 学习、Go 进阶、Go 实用工具类、Go DDD 项目落地、Go-kit 、Go-Micro 、Go 推送平台、微服务实践

参考文档

Wechat-ggGitHub/Awesome-GitHub-Repo: 收集整理 GitHub 上高质量、有趣的开源项目。

go 语言工具包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/62651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jvm 新生代的区域划分

虚拟机将内存分为一块较大的 Eden 空间和两块较小的 Survivor 空间&#xff0c;每次分配内存只使用 Eden 和其中一块 Survivor。发生垃圾收集时&#xff0c;将 Eden 和 Survivor 中仍然存活的对象一次性复制到另外一块 Survivor 空间上&#xff0c;然后直接清理掉 Eden 和已用过…

【1day】iRDM4000智慧站房管理员密码重置漏洞学习

目录 一、漏洞描述 二、资产测绘 三、漏洞复现 四、漏洞修复 一、漏洞描述 iRDM4000智慧站房是一种用于在线监管、诊断和配置子站的智能设备。它被广泛应用于电力、能源、交通等领域,用于实时监控和管理分布式站房设备。iRDM4000智慧站房在线监管、诊断与配置子站存在管理…

【学习笔记】计算机视觉对比学习综述

计算机视觉对比学习综述 前言百花齐放InstDiscInvaSpreadCPCCMC CV双雄MoCoSimCLRMoCo v2SimCLR v2SwAV 不用负样本BYOLSimSiam TransformerMoCo v3DINO 总结参考链接 前言 本篇对比学习综述内容来自于沐神对比学习串讲视频以及其中所提到的论文和博客&#xff0c;对应的链接详…

Scikit-Learn 和深度学习怎么选择

大家好&#xff0c;今天我们要聊聊一个机器学习的话题&#xff1a;Scikit-Learn 和深度学习&#xff0c;到底哪一个更适合解决你的问题&#xff1f;我们先来看看这两种技术的异同点&#xff0c;然后再讲讲如何在实际问题中做出选择。 1. Scikit-Learn 与深度学习&#xff1a;谁…

java+springboot+mysql校园跑腿管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的校园跑腿管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;用户管理&#xff08;充值&#xff09;&#xff1b;任…

mybatiplus代码生成器

目录 1.pom文件引入 2.引入模板引擎 3.注意 新版本&#xff0c;老版本配置和用法都不太一样&#xff0c;此处暂不展示&#xff1b;另外也可以尝试一下MyBatis-Flex 总之mybatisplus有的或者收费的&#xff0c;它都有MyBatis-Flex 是什么 - MyBatis-Flex 官方网站 1.pom文件…

C++面试题(叁)---操作系统篇

目录 操作系统篇 1 Linux中查看进程运行状态的指令、查看内存使用情况的指令、 tar解压文件的参数。 2 文件权限怎么修改 3 说说常用的Linux命令 4 说说如何以root权限运行某个程序。 5 说说软链接和硬链接的区别。 6 说说静态库和动态库怎么制作及如何使用&#xff0c;区…

自动化实时在线静电监控系统的构成

自动化实时在线静电监控系统是一种帮助企业监测和管理静电问题的技术解决方案。静电在许多工业和商业环境中都是一个潜在的风险和生产问题。通过使用这样的监控系统&#xff0c;企业可以及时发现并采取对策来预防或减轻可能的静电问题。 该系统通常由以下组成部分构成&#xf…

三、定长内存池

三、定长内存池 我们知道申请内存使用的是malloc&#xff0c;malloc其实就是一个通用的大众货&#xff0c;什么场景下都可以使用&#xff0c;而什么场景下都可以用就意味着什么场景下都不会有很高的性能&#xff0c;下面我们就先来设计一个定长内存池作为一个开胃菜&#xff0…

Golang 中的 crypto/ecdh 包详解

什么是 ECDH 算法&#xff1f; ECDH&#xff08;Elliptic Curve Diffie-Hellman&#xff09;算法是一种基于椭圆曲线的密钥交换协议&#xff0c;用于安全地协商共享密钥&#xff08;Secret Key&#xff09;&#xff0c;步骤如下&#xff1a; 1. 选择椭圆曲线&#xff1a;ECDH…

linux字符串处理

目录 1. C 截取字符串,截取两个子串中间的字符串linux串口AT指令 2. 获取该字符串后面的字符串用 strstr() 函数查找需要提取的特定字符串&#xff0c;然后通过指针运算获取该字符串后面的字符串用 strtok() 函数分割字符串&#xff0c;找到需要提取的特定字符串后&#xff0c;…

HTML/CSS盒子模型

盒子&#xff1a;页面中的所有的元素&#xff08;标签&#xff09;&#xff0c;都可以看做一个盒子&#xff0c;由盒子将页面中的元素包含在一个矩形区域内&#xff0c;通过盒子的视角更加方便的进行页面布局 盒子模型的组成&#xff1a; 内容区域&#xff08;content&#xff…

简单使用_matlab生成数据帧

文章目录 生成数据帧参考 生成数据帧 代码如下&#xff0c;代码很简单&#xff0c;有几点要注意&#xff0c; 较高版本的MATLAB中支持0x的写法使用bitand进行位运算使用strcat函数进行字符串拼接时&#xff0c;如果需要插入空格&#xff0c;要使用双引号 cmd_ay(1) 0x33; …

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS DMIPS&#xff08;Dhrystone Million Instructions Per Second&#xff09;&#xff1a; DMIPS用于衡量计算机系统的整体指令执行性能&#xff0c;通常关注整数操作。它基于Dhrystone基准测试来计算&#xff0c;该测试主要包含整数运…

Android 进阶——图形显示系统之VSync和 Choreographer的创建详解(一)

引言 前一篇文章Android 进阶——图形显示系统之底层图像显示原理小结(一)介绍了关于Android 图形显示系统的基础理论,相信你对于Android的图形显示系统中图形界面渲染刷新机制有了更深的了解,接下来进一步讲解VSync和Choreography的联系和作用。 一、VSync 信号的产生概…

需求管理系统大盘点,谁能问鼎行业王者宝座?

“需求管理系统有哪些&#xff1f;这些品牌引领行业新风潮&#xff1a;Zoho Projects、SAP SuccessFactors、Oracle NetSuite、Microsoft Dynamics 365、Infor CloudSuite、JDA Software。” 需求管理系统是一种专门用于收集、分析和跟踪客户需求的工具&#xff0c;可以帮助企业…

总线:特性、分类、性能指标、系统总线的结构、总线仲裁、总线定时、总线标准

总线&#xff08;Bus&#xff09;&#xff0c;是一组为各功能部件之间进行信息传送的公共线路。 总线的特性&#xff1a; 机械特性&#xff08;物理特性&#xff09;&#xff1a;尺寸、形状、引脚数、排列顺序。电气特性&#xff1a;每根信号线上的信号传输方向、表示信号有效…

交换机 路由器的常见指令

常用的指令 交换机和路由器是网络中最常见的设备之一&#xff0c;它们都有一些常用的指令。下面是它们的常用指令和解释&#xff1a; 交换机常用指令 show interfaces&#xff1a;显示交换机上的所有接口信息&#xff0c;包括状态、速率、错误信息等。show mac-address-tabl…

deepspeed学习资料

记录一些deepspeed学习过程中的好文章 【进行中】1、DeepSpeed使用指南(简略版)_Reza.的博客-CSDN博客 - 含deepspeed的安装方法 - 含 zero config的不同配置&#xff0c;stage1、stage2、stage3的配置和解释

Go实现LogAgent:海量日志收集系统【上篇——LogAgent实现】

Go实现LogAgent 项目架构图&#xff1a; 0 项目背景与方案选择 背景 当公司发展的越来越大&#xff0c;业务越来越复杂时&#xff0c;每个业务系统都有自己的日志。此时我们就应该将不同业务线的日志进行实时收集&#xff0c;存储到一个日志收集中心&#xff0c;最后再通过…