随笔分类 -  [01]Golang

摘要:一、简介 在上一篇文章 go-kratos学习02 (https://www.cnblogs.com/jiujuan/p/16331967.html)中,详细介绍了用 kratos 编写项目代码的步骤。这篇就在上篇基础上,再结合 Go 数据库操作库 gorm 一步一步来实现一个简单的增删改查操作。 阅读全文
posted @ 2022-06-02 16:47 九卷 阅读(4098) 评论(1) 推荐(2) 编辑
摘要:在上一篇 kratos quickstart 文章(https://www.cnblogs.com/jiujuan/p/16322725.html)中,我们直接用 kratos new 命令生成了一个项目。 这一篇来看看 kratos API 的定义和使用。 一、kratos 中 API 简介 1. 阅读全文
posted @ 2022-06-01 01:31 九卷 阅读(6250) 评论(0) 推荐(3) 编辑
摘要:先来感受下用 kratos 快速创建项目 一、环境准备 1.1 安装依赖软件 protoc protoc-gen-go 安装 protoc: 到 protobuf release 页面,选择适合自己操作系统的文件包。 或者文档 也可以看 grpc.io 官方安装文档: https://grpc.io 阅读全文
posted @ 2022-05-29 22:07 九卷 阅读(4426) 评论(0) 推荐(1) 编辑
摘要:一、进程 先来了解一下操作系统的进程: 操作系统对正在运行程序的抽象,这个就是进程(process)。 比如运行一个 web 浏览器,一个 text 文本,都是运行的一个一个进程。 有的人说:进程是程序运行资源的集合。进程是系统资源分配的最小单位等等。 从静态的角度来说,进程确实是运行程序的各种资源 阅读全文
posted @ 2022-04-26 02:49 九卷 阅读(1505) 评论(0) 推荐(5) 编辑
摘要:google 出品的依赖注入库 wire:https://github.com/google/wire 什么是依赖注入 依赖注入 ,英文全名是 dependency injection,简写为 DI。 百科解释: 依赖注入是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而 阅读全文
posted @ 2022-04-12 19:49 九卷 阅读(6609) 评论(0) 推荐(0) 编辑
摘要:什么是 channel 管道 它是一个数据管道,可以往里面写数据,从里面读数据。 channel 是 goroutine 之间数据通信桥梁,而且是线程安全的。 channel 遵循先进先出原则。 写入,读出数据都会加锁。 channel 可以分为 3 种类型: 只读 channel,单向 chann 阅读全文
posted @ 2022-03-16 21:31 九卷 阅读(20411) 评论(6) 推荐(1) 编辑
摘要:Gin 简介 Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If yo 阅读全文
posted @ 2022-03-06 21:16 九卷 阅读(2281) 评论(2) 推荐(0) 编辑
摘要:uber-go guide,uber的go语言编码规范 感谢翻译者和原作们 本文转自:https://github.com/xxjwxc/uber_go_guide_cn (特此感谢作者的翻译,感谢他们的辛苦付出) 原英文:https://github.com/uber-go/guide,uber- 阅读全文
posted @ 2021-11-17 16:35 九卷 阅读(633) 评论(0) 推荐(0) 编辑
摘要:介绍 logrus 它是一个结构化、插件化的日志记录库。完全兼容 golang 标准库中的日志模块。它还内置了 2 种日志输出格式 JSONFormatter 和 TextFormatter,来定义输出的日志格式。 github地址:https://github.com/sirupsen/logru 阅读全文
posted @ 2021-11-12 02:53 九卷 阅读(10268) 评论(0) 推荐(1) 编辑
摘要:golang常用库:cli命令行/应用程序生成工具-cobra使用 一、Cobra 介绍 我前面有一篇文章介绍了配置文件解析库 Viper 的使用,这篇介绍 Cobra 的使用,你猜的没错,这 2 个库都是同一个作者 spf13,他开发了很多与 golang 相关的库,他目前在 google 领导着 阅读全文
posted @ 2021-10-30 23:19 九卷 阅读(6975) 评论(0) 推荐(0) 编辑
摘要:为什么会有服务注册中心 为什么会有服务注册中心? 在 client-server 服务-请求模式中,客户端发送请求到服务端,完成一次服务请求。这时候,开发也比较简单,写服务端代码就可以完成这种模式了。 但是,随着业务的发展,功能会越来越多,对外提供的服务也会随之增多。 服务越来越多,怎么才能对众多服 阅读全文
posted @ 2021-08-01 17:50 九卷 阅读(2003) 评论(0) 推荐(0) 编辑
摘要:前面 2 篇 golang 性能优化分析系列文章: golang 性能优化分析工具 pprof (上) golang 性能优化分析工具 pprof (下) 一、基准测试 benchmark 简介 在 golang 中,可以通过 benchmark 基准测试来测试代码性能。基准测试主要是通过测试 cp 阅读全文
posted @ 2021-04-01 02:53 九卷 阅读(4118) 评论(0) 推荐(1) 编辑
摘要:golang 性能优化分析工具 pprof(上)篇-基础使用介绍 四、web 服务(http server)的分析 net/http/pprof 4.1 代码例子 1 go version go1.13.9 把上面的程序例子稍微改动下,命名为 demohttp.go: package main im 阅读全文
posted @ 2021-03-30 18:25 九卷 阅读(6744) 评论(0) 推荐(0) 编辑
摘要:golang 性能优化分析工具 pprof (上) - 基础使用介绍 golang 性能优化分析工具 pprof (下) - web 服务分析 一、golang 程序性能调优 在 golang 程序中,有哪些内容需要调试优化? 一般常规内容: cpu:程序对cpu的使用情况 - 使用时长,占比等 内 阅读全文
posted @ 2021-03-29 12:25 九卷 阅读(17412) 评论(0) 推荐(3) 编辑
摘要:简介 golang 里的 http 标准库,发起 http 请求时,写法比较繁琐。所以智慧又“偷懒的”程序员们,发挥自己的创造力,写出了一些好用的第三方库,这里介绍其中的一个 http 库:go-resty go-resty 特性 go-resty 有很多特性: 发起 GET, POST, PUT, 阅读全文
posted @ 2021-03-26 18:15 九卷 阅读(15603) 评论(0) 推荐(0) 编辑
摘要:IO 操作的基本分类 在计算机中,处理文件和网络通讯等,都需要进行 IO 操作,IO 即是 input/ouput,计算机的输入输出操作。 Go语言中的 IO 操作封装在如下几个包中: io 为 IO 原语提供基本的接口 io/ioutil 封装一些实用的 I/O 函数 fmt 实现了 I/O 的格 阅读全文
posted @ 2020-11-12 19:16 九卷 阅读(1266) 评论(0) 推荐(0) 编辑
摘要:一、Linux系统内存 在说明golang内存分配之前,先了解下Linux系统内存相关的基础知识,有助于理解golang内存分配原理。 1.1 虚拟内存技术 在早期内存管理中,如果程序太大,超过了空闲内存容量,就没有办法把全部程序装入到内存,这时怎么办? 在许多年前,人们采用了一种叫做覆盖技术,这样 阅读全文
posted @ 2020-11-03 21:04 九卷 阅读(3220) 评论(0) 推荐(1) 编辑
摘要:一、TCMalloc TCMalloc简介 为啥要介绍 TCMalloc? 因为golang的内存分配算法绝大部分都是来自 TCMalloc,golang只改动了其中的一小部分。所以要理解golang内存分配算法,就要先了解下TCMalloc,为后面分析golang内存做一做功课。 tcmalloc 阅读全文
posted @ 2020-10-24 15:06 九卷 阅读(11840) 评论(0) 推荐(2) 编辑
摘要:golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库/管理工具-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 golang常用库:字段参数验证库-validator使用 一、背景 在平常开发中,特别是在web应用开发中,为 阅读全文
posted @ 2020-10-15 23:42 九卷 阅读(49035) 评论(6) 推荐(6) 编辑
摘要:golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库/管理工具-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 golang常用库:字段参数验证库-validator使用 一、viper简介 viper 配置管理解析库,是由 阅读全文
posted @ 2020-10-11 22:49 九卷 阅读(13721) 评论(0) 推荐(2) 编辑