Neovim配置相关

#为什么用 Neovim

Goland项目开多了之后编辑起来太卡了,严重影响了开发效率,所以只能换编辑器。同时 Neovim 可以允许你远程操作,有时候救急会很重要。

neovim笔记

#移动

1
2
3
4
5
6
7
8
9
10
# 下移半页
ctrl d
# 上移半页
ctrl u
# 移动光标到中心
zz
# 向上移动屏幕
ctrl e
# 向下移动屏幕
ctrl y

#编辑

1
2
3
4
5
# 撤销
u
# 恢复撤销
ctrl r
# 剪切

#调试

#断点

#其它

1
2
3
4
5
6
7
8
# 挂起nvim
:sus
:suspend
# 从挂起中恢复
$ fd
# 窗口交换
# 与下一个
ctrl + w + x

golang图片处理

#前言

不得不感慨,前端的发展迅速以至于我觉得在前端样式下一小段 css 的事情,服务端实现起来无比复杂,甚至无法实现。
所以其实图片编辑的操作一直以来都是由前端或者客户端完成的。但,任何客户端的用户行为其实都是不可信的,对于一个图像裁剪,如果接入审核流又会过于繁重。服务端处理在一定程度上能够解决这个问题,如果这个场景其实不会特别频繁的话。

clang-format使用记录

#前言

在团队协作上,代码的统一格式会让协作变得简单。
公司推荐用clang-format格式化proto文件,但格式化后的文档可读性很差,甚至“公司除了我没人在用”。

一番折腾,解决,记录之。

Mysql笔记

  • 服务器会为诸如 ALTER TABLE 之类的语句使用表锁,而忽略存储引擎的锁机制

#InnoDB 物理结构

Each space in InnoDB is assigned a 32-bit integer space ID, which is used in many different places to refer to the space.
InnoDB always has a “system space”, which is always assigned the space ID of 0.

Each page within a space is assigned a 32-bit integer page number, often called “offset”
page 0 is located at file offset 0, page 1 at file offset 16384

  • 页是最基础的 InnoDB 的概念,一般为 16kb。
  • 页一般由一个38 byteFIL header和一个8 byteFIL trailer组成。
  • FSP_HDR 和 XDES 是两种特殊的页,用来管理数据页。它们的区别在于,FSP_HDR 是第一个“管理页”,包含一些单独的信息。
  • 一个 FSP_HDR 或 XDES 会管理和它们连续分配的 16384 个页,256MB,或者叫 16 个 extent(16 块)。
  • FSP_HDR 和 XDES 由FIL headerFIL trailerFSP header和 256 个extent descriptorsXDES Entry)组成。

page

  • 一个XDES Entry管理64个页。

#参考链接

Rust笔记

1
2
3
4
5
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
rustup component add rust-analyzer
  • break 可以单独使用,也可以带一个返回值,有些类似 return
  • loop 是一个表达式,因此可以返回一个值

字节提供的rust镜像:https://rsproxy.cn/#getStarted

这种定义在 impl 中且没有 self 的函数被称之为关联函数: 因为它没有 self,不能用 f.read() 的形式调用,因此它是一个函数而不是方法,它又在 impl 中,与结构体紧密关联,因此称为关联函数。

但是这种写法限制了 Screen 实例的 Vec<T> 中的每个元素必须是 Button 类型或者全是 SelectBox 类型。如果只需要同质(相同类型)集合,更倾向于采用泛型+特征约束这种写法,因其实现更清晰,且性能更好(特征对象,需要在运行时从 vtable 动态查找需要调用的方法)。