小公司后端架构、代码、流程吐槽
自从入职以来越来越难顶小公司的后端架构、代码结构
前提
任何的架构、代码,都离不开业务,用户量,所以需要提前说明一下
就我一个后端开发,需要负责日常开发、运维、架构方案设计
两年多经验,可能一些东西考虑的不是很周全,只根据当下的认知吐槽,可能下个月觉得现在幼稚
后台用户量不过万,物联网行业
简单吐槽一下
...
Viper:强大的Go配置解析库
1 介绍
Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。目前Star 26.6k, 它支持以下特性:
设置默认值
从JSON、TOML、YAML、HCL、envfile和Java properties格式的配置文件读取配置信息
实时监控和重新读取配置文件(可选)
从环境变量中读取
从远程配 ...
线上问题排查——磁盘满
现象
群里反馈管理后台登录不上了,我一访问,整个界面空白,没有提示,打开 F12,发现控制台提示 js、css 等静态资源报 net::ERR_HTTP2_PROTOCOL_ERROR,客户端可以下载到服务端资源,第一次碰到这个,StackOverflow 走起
net::ERR_HTTP2_PROTOCOL_ERROR 是关于什么的?
可能出现的问题非常多,包括磁盘满、nginx 配置问题 ...
go学习笔记——Kratos框架
官方文档
https://go-kratos.dev/en/docs/getting-started/start/
1.安装Go
参考:mac安装go1.20
2.安装Kratos框架
kratos依赖protobuf grpc等框架,需要先进行安装
brew install grpc
brew install protobuf
brew install protoc-gen-go
brew install protoc-gen-go-grpc
验证
protoc --version
libprotoc 3.21.9
...
我用 GitHub 9.8k 的 Go 语言 2D 游戏引擎写了个游戏
前言
hi,大家好,这里是白泽。今天给大家分享一个 GitHub 🌟9.8k 的 Go 语言 2D 游戏引擎。
https://github.com/hajimehoshi/ebiten
引擎的贡献者依旧在积极维护,是一个兼具学习 & 娱乐的项目!
为此我也用这个引擎写了一个生存游戏: avoid-the-enemies【如下图】:https://github.com/BaiZe1998/avoid-the-enemies
当然 ...
Go-Zero微服务快速入门和最佳实践(一)
前言
并发编程和分布式微服务是我们Gopher升职加薪的关键。
毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发。
虽说好上手,但是想和别人拉开差距,提高自己的竞争力,搞懂分布式微服务和并发编程还是灰常重要的,这也是我今年更新文章的重点。
更文计划
我会更新一系列文章, ...
Go 项目依赖注入wire工具最佳实践介绍与使用
目录一、引入二、控制反转与依赖注入三、为什么需要依赖注入工具3.1 示例3.2 依赖注入写法与非依赖注入写法四、wire 工具介绍与安装4.1 wire 基本介绍4.2 安装五、Wire 的基本使用5.1 前置代码准备5.2 使用 Wire 工具生成代码六、Wire 核心技术5.1 抽象语法树分析5.2 模板编程七、Wire 的核心概念7.1 两个核心概念7.2 Wire ...
理解 go mod init 命令
go mod init 命令是 Go 1.11 中引入的 Go 模块系统的基本组成部分。它用于创建或初始化 Go 模块,是管理 Go 项目中依赖关系和版本的一种方法。下面是关于 go mod init 的全部内容:
1.初始化 Go 模块
go mod init 命令的主要用途是初始化项目中的 Go 模块。
Go 模块是指与版本相关联的 Go 包的集合。定义了项目的依赖和版 ...
fyne - 谁说用Go不能开发应用界面
fyne项目介绍
fyne 是一个纯 Golang 的跨平台 GUI 库,跨平台库说实话,是有很多选择的,Flutter、Electron、QT等。fyne 绝对不是一个很大众的选择。但是在我,一名后端程序员尝试使用 Electron实现一个简单的番茄时钟,痛苦地在使用 js 如何在渲染进程和主进程之间传递信息,如何在客户端退到后台的时候继续进行倒计时,vu ...
Go 之烧脑的接口
基本定义
Go 官方对于接口的定义是一句话:An interface type is defined as a set of method signatures. 翻译过来就是,一个接口定义了一组方法的集合。这和 Java 和 PHP 的接口类似,定义一组方法而不定义方法的具体实现。但是与 Java 和 PHP 迥然不同的地方在于 Go 不需要显式的声明 implements 关键词来继承接口 ...
记一次go应用在k8s pod已用内存告警不准确分析
版权说明: 本文章版权归本人及博客园共同所有,转载请在文章前标明原文出处( https://www.cnblogs.com/mikevictor07/p/17968696.html ),以下内容为个人理解,仅供参考。
一、背景
起因:自监控应用凌晨告警:Pod 内存使用率大于80%(规格为1c1G)。内存缓慢增长,持续到早上内存使用率停止在81%左右。
疑点: ...
Go标准库:Go template用法详解
本文只介绍template的语法和用法,关于template包的函数、方法、template的结构和原理,见:深入剖析Go template。
入门示例
以下为test.html文件的内容,里面使用了一个template语法{{.}}。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Go Web</titl ...
go 中如何实现定时任务
定时任务简介
定时任务是指按照预定的时间间隔或特定时间点自动执行的计划任务或操作。这些任务通常用于自动化重复性的工作,以减轻人工操作的负担,提高效率。在计算机编程和应用程序开发中,定时任务是一种常见的编程模式,用于周期性地执行某些操作、处理数据或触发事件。
以下是一些关于定时任务的重要概念:
时间间隔 ...
Go命令大全:全面解析与实践
本文详尽地探讨了Go语言的内建命令集,包括但不限于go build、go run、go get等。文章首先列举了所有常用的Go命令,并用表格形式简洁地解释了它们的功能。随后,我们逐一深入讲解了每个命令的使用说明、应用场景,以及实际操作中可能遇到的输出结果。
关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。 ...
Go泛型全面讲解:一篇讲清泛型的全部
@目录序言1. 一切从函数的形参和实参说起2. Go的泛型3. 类型形参、类型实参、类型约束和泛型类型3.1 其他的泛型类型3.2 类型形参的互相套用3.3 几种语法错误3.4 特殊的泛型类型3.5 泛型类型的套娃3.6 类型约束的两种选择3.7 匿名结构体不支持泛型4. 泛型receiver4.1 基于泛型的队列4.2 动态判断变量的类型5. 泛型函数5.2 既 ...
探索 GO 项目依赖包管理与Go Module常规操作
探索 GO 项目依赖包管理与Go Module常规操作
目录探索 GO 项目依赖包管理与Go Module常规操作一.Go 构建模式的演变1.1 GOPATH (初版)1.1.1 go get1.2 vendor 机制(中版)1.3 Go Module(最新版)二.创建Go Module2.1 创建步骤2.2 简单举列三.深入理解 Go Module 构建模式3.1 Go Module 的语义导入版本机制3.2 Go Module ...
Go 多版本管理工具
Go 多版本管理工具
目录Go 多版本管理工具一、go get 命令1.1 使用方法:二、Goenv三、GVM (Go Version Manager)四、voidint/g4.1 安装4.2 冲突4.3 使用
在平时开发中,本地新旧项目并行开发的过程中,你大概率会遇到一个令人头疼的问题,如何同时使用两个不同版本的 Golang Runtime 进行开发呢?
一、go get 命令
这种方法 ...
Go开始:Go基本元素介绍
本文深入探讨了Go编程语言中的核心概念,包括标识符、关键字、具名函数、具名值、定义类型、类型别名、包和模块管理,以及代码块和断行。这些元素是构成Go程序的基础,也是编写高质量代码的关键。
关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经 ...
github.com/json-iterator/go 详细教程
最近接触到了 github.com/json-iterator/go , 是由滴滴开源的第三方json编码库,它同时提供Go和Java两个版本。
文中大量内容来自 github 上的 wiki 文档,有兴趣的朋友可以直接点击 Home 跳转到官方文档查阅。
本文加了些自己的思考以及相关的详细学习例子,废话不多说了,冲!!!
1、基础介绍
json-iterator提供简洁的A ...
1.go语言vscode集成开发环境搭建
目录本篇概要集成开发环境工具(ide)Goland或IntelliJ IDEAVisual Studio Code其他集成开发环境Visual Studio Code的go语言开发环境搭建Visual Studio Code安装go编译环境安装配置go环境变量安装go语言插件使用golang编程本篇小结下篇预告
本篇概要
搭建go语言环境,除了要搭建go语言的编译环境,还要搭建go语言的集成开发 ...