Write the Code. Change the World.

分类目录
11月 23

无论是在前端语言,还是后端语言,中间件的实现是一个很好的设计。比如 vue 中的拦截器,又比如 laravel 中的中间件。都是好东西。go 中也有中间件的实现,iris 中也有对应的封装。

举一个比较现实的例子。post 请求发送数据,以及返回的数据,通过控制台,在 network 中可以看的到(抓包也可以)。如果你在请求之前,先进行加密了。发送的数据就不知道了吗(用户看的见是什么,却不知道代表着什么)。

用户不知道,服务端同样不知道,因为前端数据进行了加密(前端数据加密没有保证,至少保证了眼睛看到的,至于有精力深究,终究会还原回来)。这个时候,服务端就需要对数据进行解密。解密好了后,服务端会进行对应的处理,然后返回数据给前端。返回的数据,如果不加密,用户也是会看的到数据代表的啥。所以,在返回数据之前,服务端需要对数据也进行加密。

加解密可以有 aes 这些。这里不是重点,重点的是这个环节要处理的事情。因为加解密对现实的逻辑并没有实在的用处。这个时候,中间件的作用就体现出来了。中间件分前置中间件和后置中间件。
继续阅读

11月 23

文件相关快捷键:
CTRL+E,打开最近浏览过的文件。
CTRL+SHIFT+E,打开最近更改的文件。
CTRL+N,可以快速打开struct结构体。
CTRL+SHIFT+N,可以快速打开文件。

代码格式化:
CTRL+ALT+T,可以把代码包在一个块内,例如if{…}else{…}。
CTRL+ALT+L,格式化代码。
CTRL+空格,代码提示。
CTRL+/,单行注释。CTRL+SHIFT+/,进行多行注释。
CTRL+B,快速打开光标处的结构体或方法(跳转到定义处)。
CTRL+“+/-”,可以将当前方法进行展开或折叠。
继续阅读

11月 23

Goland 官网: https://www.jetbrains.com/go/download/

goland 是 收费的。下边的破解行为仅供学习参考。

操作一波

下载 goland 2020.2.x,里边包含破补丁(提取码是 xydq) :

https://pan.baidu.com/s/1yW7cDfje4j1gBWwpG5JoXw

如果你已经下载了 goland 2020.2.x,只下载破解码即可。

记住,破解补丁 zip 文件不需要解压,不需要解压,不需要解压。

下载 goland 2020.2.x 破解补丁(提取码是 znbr):
https://pan.baidu.com/s/1nRJsdDLrss_E6a6ayHq_jw
继续阅读

11月 20

go 本地开发的时候,都需要执行 go run xxx。如果每次修改代码,都需要执行这个,会很繁琐。下边,用 air 工具就可以解决这个问题,修改逻辑后,会自动进行启动。

go get -u github.com/cosmtrek/air

# 查看版本
air -v

# 在项目目录下,执行 air 即可
air
11月 20

开发的时候,需要经常查阅官方文档。使用 godoc 工具,就可以在本地查看使用了。

操作一波

 godoc -http=:6060

如果提示 godoc 不存在。那是因为在 go 1.13 版本后,默认移除了,需要手动安装。

go get golang.org/x/tools/cmd/godoc

安装好了后,再运行上边命令就可以了。

标准库以及加载过的第三方库的文档: http://localhost:6060/pkg

Go 的主要文档,如发布日志、Effective Go 等: http://localhost:6060/doc

11月 19

上一篇,iris mvc 之路由中搞定了路由的映射。下边就好好规划下分组。因为有的时候,一个服务不仅仅有网站,还会有接口。通常,这两边的路由是分开规划的。

操作一波

依照 laravel 的习惯,我们在项目目录下,新建 routes 文件夹,然后里边新建两个 go 文件。

mkdir routes

# 用来处理 web 站点的
touch routes/web.go

# 用来处理接口的
touch routes/api.go

依照 iris mvc 之路由(一) 的逻辑。 main.go 修改如下。
继续阅读

11月 19

一个完整的框架,有很多部分组成。而路由,是很重要,也是比较接近用户行为的一环。今天,就尝试一下 iris 的路由的使用。

操作一波

从 zero 开始操作一波。

# favor 眷顾
mkdir favor

cd favor

go mod init favor

touch main.go

我们开始往 main.go 里边注入代码。
继续阅读

11月 18

iris web框架支持请求数据、模型、持久数据和以最快的速度执行的绑定。

mvc 包使用

在 iris 框架中,封装了 mvc 包作为对 mvc 架构的支持,方便开发者遵循 mvc 的开发原则进行开发。 iris框架支持请求数据、模型、持久数据分层处理,并支持各层级模块代码绑定执行。 MVC即:model、view、controller 三个部分,分别代表数据层、视图层、控制层。控制器层负责完成页面逻辑、实体层负责完成数据准备与数据操作、视图层负责展现 UI 效果。 在 iris 框架中,用一张图表示前端请求、服务端处理请求、服务端返回数据到前端的请求过程图,描述如下:
继续阅读