live reloading go with air
Golang应用实时重新加载利器: Air工具指南
使用Air实现Go程序实时热重载
一、简介
Live reloading(实时重载)和 Hot-reload(热重载)并非完全同义,它们都与开发过程中的代码更新反馈机制有关,但在实现方式和效果上存在差异。
Live reloading(实时重载)
原理:当监测到代码发生变化后,它会直接刷新整个应用程序页面或重新启动应用。就好比在开发网页时,一旦保存了修改后的代码,浏览器会自动刷新页面,从而展示最新的效果;在开发桌面应用或者移动应用时,应用程序会被重新启动。
效果:因为是整体刷新或重启,这就会使得之前在应用中的操作状态丢失。比如在网页表单里填写了部分内容,页面刷新后,填写的内容就没了;在游戏应用中玩到一半,重新启动应用后就得从头开始。
使用场景:对于那些对状态保存要求不高,或者页面结构、样式、整体逻辑改动较大的情况比较适用。像静态网站开发、样式文件修改等场景,使用实时重载就能快速看到修改后的效果。
Hot-reload(热重载)
原理:当代码改变时,它不会重新启动整个应用程序,而是仅替换发生改变的那部分代码模块。在运行时动 ...
go编程规范
项目目录结构
Go 官网并没有给出一个目录结构的标准模板,但是 golang-standards 倒是给出了一个。
中文readme
在此基础上,我的项目目录结构具体使用如下:【持续更新!!!】
https://github.com/gw-gong/template_project
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465.├── api│ ├── router│ │ ├── service01.go│ │ └── service02.go│ └── rpc│ ├── <service_name>.pb.go│ ├── <service_name>.proto│ └── makefile├── cmd│ ├── service01│ │ └── main.go│ └── service ...
.ini
INI 文件(Initialization file)的出现和发展与计算机早期操作系统及软件的配置需求紧密相关,以下介绍它的由来:
起源背景
在计算机发展早期,软件的配置管理是一项具有挑战性的任务。随着计算机软件功能逐渐增多,需要对各种参数进行设置和调整,例如硬件设备的参数、软件的运行选项等。为了方便用户和开发者对软件进行配置,一种简单、易读的配置文件格式就应运而生,这就是 INI 文件。
诞生与发展
早期操作系统的应用:20 世纪 80 年代,微软的 MS - DOS 和 Windows 3.x 等操作系统广泛使用 INI 文件。在 MS - DOS 时代,许多应用程序需要对硬件设备(如显示器、打印机等)进行配置,INI 文件提供了一种方便的方式来存储这些配置信息。例如,用户可以通过修改 INI 文件来设置显示器的分辨率、颜色模式等。
Windows 系统的推广:Windows 3.x 系统进一步推广了 INI 文件的使用。系统本身和许多应用程序都依赖 INI 文件进行配置。例如,Windows 的系统配置文件system.ini和用户配置文件win.ini,分别存储了系统级 ...
mysql使用笔记
Explain
Extra 内容解释
类型
说明
Using filesort
MySQL 有两种方式可以生成有序的结果:通过排序操作或者使用索引。当 Extra 中出现了 Using filesort 说明使用了前者,但注意虽然 filesort 但并不是一定就是用了磁盘文件来进行排序,也可能是在内存里完成的。当出现排序,可以通过添加合适的索引来改进性能,用索引来为查询结果排序。
Using temporary
用临时表保存中间结果,常用于 GROUP BY 操作中,一般看到它说明查询需要优化了。
Using index
使用索引覆盖的情况
Using index condition
发生索引条件下推(Index Condition Pushdown)的情况
Using where
全表扫描的时候,MySQL 服务层应用 where 条件过滤数据;使用索引访问数据,但是 where 子句中有除了改索引包含的字段之外的条件
Using join buffer
当关联查询使用 Block Nested Loop 算法或者 Batched Key Acce ...
资源
Application
Typora旧版本(免费)
Typora 最后一个免费版本是 0.11.18(Windows、macOS、Linux 系统通用) 。在这个版本之后,Typora 从免费软件转变为采用订阅制的付费软件。
mac:https://typora.cn.uptodown.com/mac/versions
win:https://typora.cn.uptodown.com/windows/versions
Charles
抓包工具
www.charlesproxy.com/
https://juejin.cn/post/6844904182588112904
内网穿透
内网穿透是一种将内网服务暴露到公网的技术,以下为你介绍几种常见的内网穿透工具:
1. frp
特点:frp 是一款高性能的反向代理应用,支持多种协议,如 TCP、UDP、HTTP、HTTPS 等。它的配置较为灵活,能满足不同场景的需求,且开源免费,拥有活跃的社区,遇到问题容易找到解决方案。
使用方式:需要分别配置服务端(公网服务器)和客户端(内网机器)。在服务端配置文件中设置监听端口等信息,在客 ...
技术摘抄
systemd.unit 中文手册 https://www.jinbuguo.com/systemd/systemd.unit.html#
plantUML
B站:https://www.bilibili.com/video/BV1wb4y1d7XP?t=3.7
Gitee: https://gitee.com/lastinglate/PlantUML-Samples
官网—中文文档:https://plantuml.com/zh/
jwt - go
摘抄:https://learnku.com/go/t/52399
身份验证使应用程序知道向应用程序发送请求的人是谁。JSON Web 令牌(JWT)是一种允许身份验证的方法,而无需在系统本身实际存储任何有关用户的任何信息(与基于会话的身份验证相反 )。
在本文中,我们将演示基于 JWT 的身份验证的工作原理,以及如何在 Go 中构建示例应用程序以实现该示例。
如果你已经知道 JWT 的工作原理,并且只想看一下实现,则可以 跳过,或者在 Github 上查看源代码 。
JWT 格式
假设我们有一个名为的用户 user1,他们尝试登录到应用程序或网站。一旦成功,他们将收到一个看起来像这样的令牌:
1eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIxIiwiZXhwIjoxNTQ3OTc0MDgyfQ.2Ye5_w1z3zpD4dSGdRp3s98ZipCNQqmsHRB9vioOx54
这是一个 JWT,由三部分组成(以分隔.):
第一部分是标题 header(eyJhbGciOiJIUzI1NiIsInR5c ...
设计模式(golang)
摘抄:https://github.com/mohuishou/go-design-pattern
课程:极客时间《设计模式之美》
pending…
connection pool
一次 HttpClient 连接池设置不当,引发服务雪崩
gRPC 客户端调用服务端需要连接池吗?
Go 语言使用 grpc 时,是否需要 grpc 连接池?