Go 语言之 zap 日志库简单使用
默认的 Go log
log:https://pkg.go.dev/log
package main
import (
"log"
"os"
)
func init() {
log.SetPrefix("LOG: ") // 设置前缀
f, er
Go Redis 管道和事务之 go-redis
Go Redis 管道和事务官方文档介绍
Redis pipelines(管道) 允许一次性发送多个命令来提高性能,go-redis支持同样的操作, 你可以使用go-redis一次性发送多个命令到服务器,并一次读取返回结果,而不是一个个命令的操作。
Go语言之 go-redis 基本使用
Redis 介绍
Redis:https://redis.io/
Redis 中文网:https://www.redis.net.cn/
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的ke
1. 跳出/执行下一次循环。
{标签名}:
for true {
...
for true {
...
break/continue {标签名} //默认不加标签,则跳出最近一层循环。加了标签可以跳出标签定义处所在循环
}
}
2. map的使用注
Go 语言之在 gin 框架中使用 zap 日志库
gin 框架默认使用的是自带的日志
gin.Default()的源码 Logger(), Recovery()
func Default() *Engine {
debugPrintWARNINGDefault()
engine := New
Go 语言之自定义 zap 日志
zap 日志:https://github.com/uber-go/zap
一、日志写入文件
zap.NewProduction、zap.NewDevelopment 是预设配置好的。
zap.New 可自定义配置
zap.New源码
这是构造Logger最灵活的
1. 引言
接口是一种定义了软件组件之间交互规范的重要概念,其促进了代码的解耦、模块化和可扩展性,提供了多态性和抽象的能力,简化了依赖管理和替换,方便进行单元测试和集成测试。这些特性使得接口成为构建可靠、可维护和可扩展的软件系统的关键工具之一。
在现代编程语言中,接口是不可或缺的一个重要特性。本文
Go 语言之 Shutdown 关机和fvbock/endless 重启
Shutdown 源码
// Shutdown gracefully shuts down the server without interrupting any
// active connections. Shutdow
Go 语言之 Viper 的使用
Viper 介绍
Viper:https://github.com/spf13/viper
安装
go get github.com/spf13/viper
Viper 是什么?
Viper 是一个针对 Go 应用程序的完整配置解决方案,包括12-Factor
1. 引言
在并发编程中,多个协程同时访问和修改共享数据时,如果没有使用适当的机制来防止并发问题,这个时候可能导致不确定的结果、数据不一致性、逻辑错误等严重后果。
而原子操作是解决并发编程中共享数据访问问题的一种常见机制。因此接下来的文章内容将深入介绍原子操作的原理、用法以及在解决并发问题中的应
一、约定大于配置
泰思勒定律也被称为复杂度守恒定律。该定律指出每一个过程都有其固有的复杂性,存在一个临界点,超过了这个点过程就不能再简化了,你只能将固有的复杂性从一个地方移动到另外一个地方。
根据这个定律,在做系统设计时,默认会给用户一个“套餐”,这个套餐会满足多数人的需求。实在不满足需求再特殊配
1. 引言
函数是编程中不可或缺的组成部分,无论是在Go语言还是其他编程语言中,函数都扮演着重要的角色。函数能够将一系列的操作封装在一起,使得代码更加模块化、可重用和易于维护。
在本文中,我们将详细介绍Go语言中函数的概念和使用方法,包括函数的定义、参数和返回值、调用方式、可变参数、函数作为参数和
1. 引言
良好设计的函数具有清晰的职责和逻辑结构,提供准确的命名和适当的参数控制。它们促进代码复用、支持团队协作,降低维护成本,并提供可测试的代码基础。通过遵循最佳实践,我们能够编写出高质量、可读性强的代码,从而提高开发效率和软件质量。下面我们将一一描述函数设计时能够遵循的最佳实践。
2. 遵循
一、简单演示
与C指针类似
1)指针变量存的是一个地址,地址指向的空间存的才是值
2)获取指针类型所指向的值,使用 *
二、使用细节
1)值类型,都有对应的指针类型,形式为*数据类型,比如int的对应指针就是*int
2)值类型包括:基本数据类型int系列,float
一、变量的声明方式(三种)
1、var a int = num
2、var a = num
3、a := num
二、字符类型使用细节
*Golang的字符使用UTF-8.
英文 -1 字节;汉字-3个字节
1、字符常量用单引号括起来。
eg: var c1 byte=
前言
最近做的项目对安全性要求比较高,特别强调:系统不能涉及MD5、SHA1、RSA1024、DES高风险算法。
那用什么嘞?甲方:建议用国产密码算法SM4。
擅长敏捷开发(CV大法)的我,先去GitHub找了开源项目、又去网络上找了一些教程,但是或多或少都有些问题:
比如golang.org
1. 引言
无论是在Go语言还是其他编程语言中,匿名函数都扮演着重要的角色。在本文中,我们将详细介绍Go语言中匿名函数的概念和使用方法,同时也提供一些考虑因素,从而帮助在匿名函数和命名函数间做出选择。
2. 基本定义
匿名函数是一种没有函数名的函数。它是在代码中直接定义的函数,没有被分配一个显式的
Kubernetes 概述
当下,我们很多项目于都在Cloud Native(云原生)的上面,这种方法旨在使组织能够确保可用性并快速响应和适应变化,云原生其实就是一组本质上支持在不同云环境(公共云、私有云或混合云)上大规模构建、运行和管理应用程序的实践和技术。
云原生离不开两个概念:容器和微服务,
原文在这里。
原文发布于2023年2月8日
在构建Go二进制文件时,Go编译器会进行优化,以尽可能生成性能最佳的二进制文件。例如,常量传播可以在编译时对常量表达式进行求值,避免了运行时的计算开销;逃逸分析可以避免对局部作用域对象进行堆分配,从而减少了垃圾回收的负担;内联则将简单函数的代码体复制
序
前面介绍了k8s组件和对象的一些基本概念,了解了k8s具体是做什么的以及架构,那么接下来我们开始介绍怎么去安装k8s,这里我们以windows为例,其他平台可以参考Kubernetes官方文档,其实安装方式都是类似的。
先决条件
要在系统中安装 Kubernetes,以下是一些需要特别注意的先