首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go技术栈
高级葡萄Ya
创建于2021-05-15
订阅专栏
golang基础知识和进阶知识
等 108 人订阅
共90篇文章
创建于2021-05-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
理解了 GOPATH 和 GOROOT才能找出问题根源
前言 近期在win 系统上重新搭建 Golang 的开发环境,但是在使用 go install 安装依赖包后却没有效果,比如在安装 kratos 后,执行 kratos -v 命令时报错 kratos
Go 中的互斥锁和读写锁
互斥锁 互斥锁是并发程序对共享资源进行访问控制的主要方式。Go中 sync 包提供了 Mutex 结构体来控制互斥。sync.Mutex 类型只有2个方法 Lock:用于锁定当前的互斥量 Unlock
使用 Go 实现一个共享库
Don't Repeat Yourself 不要重复自己,这是软件开发的一个基本原则,目的就是减少重复。但是在系统中不同的部分,可能会有不同的业务逻辑,若使用相同的功能来解决不同上下文中的问题,那应该
Go中没有枚举那就自己实现
枚举是一系列相同类型的常量的组合。枚举强大的功能被广泛的使用。然而,Go 中的枚举和其他编程语言的枚举有很多大区别。Go 没有像其他语言有 enum 关键字来标识枚举。但是我们可以使用 iota 来实
使用 Golang 构建服务
如果不使用其他的框架,自己使用 Golang 搭建一个服务需要做哪些操作呢?搭建一个服务不仅要监听服务,还要对启动的服务或者进程进行监控,还需要保持服务一直运行等工作。本文主要实践下完成构建一个服务的
Go Context 模块
前言 在写 Golang 项目时发现 context 模块几乎是无处不在,但在使用和理解的时候还是对其的理解总是模糊不清。context 在维护程序性能起到至关重要的作用。 作用 一个顾客进入饭店并进
调研Call 工具包简单使用依赖注入功能
工具包 Call 是 Golang 的一个简单依赖注入第三方库。它将所有的方法和参数都保存在一个映射中,然后就可以随时调用和使用。 可以写些简单的 demo 实践一下,首先需要先安装 又一个函数有一些
Go Channel 的基本运用和原理分析
Go 在 goroutine 的通信经常会提及的设计思想是:不要通过共享内存的方式进行通信,而应该通过通信的方式共享内存。这和 Java 语言不通,Java 中多个线程传递数据的方式一般都是通过共享内
pre-commit hook 规范 Golang 项目开发
在进行 NodeJs 开发时经常会使用 TsLint 或 EsLint ,进行代码格式化,设置规则标记不规范的代码,或自动修复一些结构或风格问题。但是 Golang 项目目前没有比较合适的工具可以充当
Go 中数组和切片的性能对比
数组和切片 在 Go 中集合有固定大小的数据集,如数组;也有动态大小的数据集,如 Slice 切片。 通过基准测试验证数组和切片的性能差异
Go中尽量让 main.go 文件小点
golang 项目的入口是 main.go 的 main 函数。一个服务只有一个 main 函数。整个 main.go 可以认为是单例模式实现,其中可以启动一堆其他的 goroutine。作为项目的主
轻松学会 Golang 单元测试和基准测试
前言 多人协作的项目里,要保证代码的质量,自然离不开单元测试。开发完一个功能后肯定要对所写的代码进行测试,测试没有问题之后再合并到代码库供他人使用。如果强行合并到代码库可能会影响其他人开发,被上线的话
Go中 反射
开发时经常会遇到字符串与结构体之间的转换。使用比较多的用法就是通过反射的方法将一个 JSON 字符串转换为 struct 结构体。 反射 Go 是静态编译类语言,对于变量类型,函数方法传递的参数的类型
使用 channel 控制并发数量
协程 goroutine 是轻量级线程,调度由 Go 运行时进行管理的。Go 语言的并发控制主要使用关键字 go 开启协程 goroutine。Go 协程(Goroutine)之间通过信道(chann
重试机制让 Go 代码更可靠
场景 服务依赖第三方服务或者其他服务,但有时第三方服务偶发性出现问题并且会快速的恢复,而我们的系统可能因为这些偶发性出现问题。所以无法保证以来服务的可靠性,但是我们可以通过其他的方式来保证我们的服务是
Go 并发模型 GMP
单进程时,CPU一次只能处理一个进程,导致所有的任务都是串行的,出现进程阻塞的话就会使得其他都得等待。后来操作系统开始支持多进程并发,进程阻塞时就会切换其他等待的进程,有效利用CPU 。 进程拥有很多
学习 JWT 并在 Go 项目中应用
什么是 JWT JWT (JSON Web Token) 是一个开放标准。各服务之间认证方式主要通过生成 JSON 对象。所以该 JSON 对象是一种数字签名,是可以被验证和信任的。 JWT 组成 J
Go 中正确使用依赖注入
依赖注入 依赖注入可以降低代码的耦合度。某功能依赖另一个实现,但是与该实现无任何责任。它只接收该实现并使用该实现,可以通过依赖注入方式进行解耦。比如以下例子,UserService 依赖很多模块。 S
Go 的 RPC 简单入门
现大型项目都会采用微服务的形式,其中还会包含服务注册、治理、监控等一套完整体系的功能。在 Go SDK 中,内置 net/rpc 包可以快速实现 RPC 功能。net/rpc 包提供了通过网络访问服务
Go 指针的使用
什么是指针 程序运行时数据是存放在内存中的。计算机中将内存抽象为一系列具有连续编号的存储空间,每个存储在内存中的数据都有一个编号,这个编号就是内存地址。通过内存地址就能找到存储在内存中的数据。在Gol
下一页