Write the Code. Change the World.

11月 24

了解了 iris 相关的路由,中间件,mvc 后,尝试手动从零开始构造一个完整的项目架构。当然,还有很多问题还没开始研究,比如数据库,ORM, Response 等。那也不妨碍前边的部分。

操作一波

先构造空项目

# 项目放在 favor 文件夹下
mkdir favor

cd favor

go mod init

git init

git add .

git commit -m 'go initialize'

这样就这样,初始化了一个 go 项目。到此,一个真正的 go 文件都没有。后边开始创建。

阅读全文 >>

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月 22

打开一次网址,访问次数就加一次。如果同一操作端连续打开,就不应该计算进去的。这就涉及到一个鉴别。已经有第三方包处理这种场景了,我们安装使用它就好了。

github: https://github.com/awssat/laravel-visits

doc: https://awssat.com/opensource/laravel-visits/3_installation.html#configurations

操作一波

composer require awssat/laravel-visits

php artisan vendor:publish --provider="Awssat\Visits\VisitsServiceProvider" --tag=config

安装 laravel-visits 包,并生成配置文件。这里我们使用 redis 来作为数据处理工具。在 config/database.php 中添加配置:

阅读全文 >>

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 里边注入代码。

阅读全文 >>