随笔分类 - Go
摘要:前言 从接触 Golang 到现在, 感觉到的很深的一点是, go 的代码无论是大佬还是菜鸟写出的代码, 都有着大体统一的 格式/流程, 这也是 Go 被开发者喜爱的一个原因, 但是还有一些, 比如变量的命名方式等, 可以称之为 风格 的东西, 却不尽相同, 我在开发中, 其实也希望有一个相对权威的
阅读全文
摘要:## 原始需求 只是一个很简单的需求, 使用golang的exec运行一个命令然后获取实时结果, 命令是 ``` bash trivy image --download-db-only ``` 正常的打印应该是 ``` bash 2023-08-08T17:06:02.929+0800 INFO N
阅读全文
摘要:title: ebpf运行流程以及Demo编写 date: 2023-04-03 updated: 2023-04-03 comments: true toc: true excerpt: ebpf是比较新的技术, 未来有无限可能 tags: Golang Linux categories: 编程
阅读全文
摘要:前言 ECDHE 我之前是听都没听过, 但是新业务需要对前后端通信进行加密, 经过大佬推荐才知道有这个东西, 经过几天的学习和踩坑😇, 才大致明白其流程和使用方式. 过程坎坷, 好在最后还是成功运用到了业务中, 大大提高了业务的安全性. 👍 这里记录一下本人对 ECDHE 的理解和注意要点 EC
阅读全文
摘要:前言 pprof 是 golang 自带的非常好用的性能分析工具, 可以分析 CPU/内存占用等, 本篇来简单记录一下基本使用 pprof 的基本信息可见: pprof/README.md at main · google/pprof (github.com) web 版 针对长时间运行而不中断的项
阅读全文
摘要:前言 mongo 作为出名的 nosql 数据库, 随着版本的迭代, 被越来越多的开发者所接受, DB-Engines Ranking - popularity ranking of database management systems 而我们今天来初探一下 mongo 的触发器功能, 并编写一个
阅读全文
摘要:前言 对于一个团队来讲, 维持一样的代码风格非常重要. 而现代的开发工具, 都提供了很好的支持, 这里简单记录一下 VsCode 的一些设置 VsCode 安装 Go 插件 在 VsCode 中安装插件: Go - Visual Studio Marketplace 该插件使用tools/gopls
阅读全文
摘要:前言 从接触 Golang 到现在, 感觉到的很深的一点是, go 的代码无论是大佬还是菜鸟写出的代码, 都有着大体统一的 格式/流程, 这也是 Go 被开发者喜爱的一个原因, 但是还有一些, 比如变量的命名方式等, 可以称之为 风格 的东西, 却不尽相同, 我在开发中, 其实也希望有一个相对权威的
阅读全文
摘要:前言 Tips: go 的 mongo 模块, 有两个, 一个是 go-mgo/mgo: The MongoDB driver for Go. UNMAINTAINED - SEE BELOW (github.com) 一个是 mongodb/mongo-go-driver: The Go driv
阅读全文
摘要:前言 从接触 Golang 到现在, 感觉到的很深的一点是, go 的代码无论是大佬还是菜鸟写出的代码, 都有着大体统一的 格式/流程, 这也是 Go 被开发者喜爱的一个原因, 但是还有一些, 比如变量的命名方式等, 可以称之为 风格 的东西, 却不尽相同, 我在开发中, 其实也希望有一个相对权威的
阅读全文
摘要:概述 go 的 select 语句是专门为了 channel 发送和接收消息而诞生的专用语句(不要和 switch 搞混了), 在语句的运行期间, 该 goroutine 是阻塞的. select 在 golang 的语言层提供了I/O 多路复用, 可以同时检测多个 channel I/O 多路复用
阅读全文
摘要:一般的内存分配 一般而言, 内存都会被程序分为以下几个逻辑块 全局区: 存放全局变量 栈区: 存放函数中的基础类类型变量 堆区: 动态分配的内存, 比如 go 的切片 常量区: 存放常量数据 程序代码区: 存放程序本身的代码 go 内存分配思想 go 内置了运行时的编程语言(runtime), 所谓
阅读全文
摘要:前言 sync的常用包好像都快讲完了, 最近几天进度很快啊, 希望能多多保持. sync.WaitGroup是为了解决任务编排而出现的, 主要就是解决并发-等待问题, 因此在真正编写过程中也很常用, 本篇大致讲解其内部实现的方式 Demo 简单介绍一下用法 func main() { wg := s
阅读全文
摘要:前言 起因是在编写某个模块时, 考虑到slice良好的伸缩性, 便使用slice来存储大量的数据, 业务是slice的数据会慢慢的弹出减少, 理想状态下内存占用会越来越少, 结果发现, 占用的内存并不会返还, 于是查了一下, 好家伙 😵💫, 坑还不少, 索性这里记录一下坑吧 slice sli
阅读全文
摘要:前言 最近真高产啊, 果然有压力就有动力了, 不知道能保持多久, 真是痛并快乐着 什么是 Channel channel常用来作为多个协程直接通信, 在真正编写代码中使用频率非常高, 他就是一个管道, 先进先出, 那么, 作为程序员, 有必要了解channel的实现原理 数据结构 那么, 和往常一样
阅读全文
摘要:普通的 map 普通的map并不是并发安全的, 但是在 go 的1.6之前不会报错, 但是会出现问题, 1.6之后会直接报错.例如以下代码: package main import ( "fmt" "time" ) func main() { m := map[string]int{"age": 1
阅读全文
摘要:前言 go 语言的锁, 一说大家都知道, 一个是互斥锁Mutex, 一个是读写互斥锁RWMutex, 用起来很简单, 但是要想在技术上更进一步, 还是需要了解其原理 基础知识 进程同步 既然是锁, 就意味着在加锁之后, 其他goroutine获取锁, 就需要等待, 这里就需要了解操作系统的进程同步机
阅读全文
摘要:前言 本文介绍 golang 中 map 的实现方式, 希望对读者和我有所帮助 结构 map是 go 语言中的基础的数据结构, 在寻找指定key时, 复杂度是O(1), 在某些场景能发挥很大的作用 golang 的 map 是 hashmap, 实现方式是数组+链表, 并且使用拉链法来取消 hash
阅读全文
摘要:前言 稍微记录一下问题点吧, 文章会不断的优化更新 有些比较大的知识点, 比如锁原理啥的, 会单独拎出来写一篇, 这里只是大概 Go 语言的基础数据类型占用大小 | 类型 | 大小(字节) | | | | | Int8 | 1 | | Int16 | 2 | | Int32 | 4 | | Int6
阅读全文
摘要:title: go语言的context date: 2021-10-16 updated: 2021-10-16 comments: true toc: true excerpt: go语言的context听说是必考题... tags: Golang categories: 编程 前言 听说是面试必
阅读全文
