Write the Code. Change the World.

9月 06

做项目。一般都会选择框架。很少会直接从 0 开始撸的。之所以选择框架,是因为框架既帮你做好了架构,又准备好了很多工具,还定制了一些规范。适合快速稳定的做项目。一般一个语言对应的开源框架会比较多,选一个或两个应用到项目中就可以了。准备进入 go 领域,也得选一个框架。初步了解了 gin 和 goframe。这里还是选择 goframe。gin 还是太轻了,项目中需要的一些工具不够多和完善。

官网: https://goframe.org/

安装升级

这里想做一个接口服务项目。仅仅提供接口给到前端使用就好。现在大多业务场景都是前后端分离的。比如app、小程序、管理后台这些。app,小程序是必须分离。管理后台也可以不分离,但分离起来更好写更爽。

按照官网文档,先安装好 gf。当前最新版本是 2.5.2。

创建项目。

gf init goSimpleAdmin

cd goSimpleAdmin

# 查看版本信息
gf -v

GoFrame CLI Tool v2.5.2, https://goframe.org
GoFrame Version: v2.3.1 in current go.mod
CLI Installed At: /Users/vini123/go/bin/gf
CLI Built Detail:
  Go Version:  go1.20.6
  GF Version:  v2.5.2
  Git Commit:  2023-08-18 09:57:25 cf299273c499aafb5d19829809dfb6b8ef280c12
  Build Time:  2023-08-18 16:23:18

发现 goframe 版本是 2.3.1。可以对刚创建的项目进行升级。在升级前,先做好版本控制。

git init -b main
git add .
git commit -m 'goframe initialize'

使用 gf up 对项目进行升级。

继续阅读

9月 06

既然 go 的迁移、seeder 等不好用,还是用 laravel 来搞吧。

开始

composer create-project laravel/laravel youme.com --prefer-dist

这样就创建了一个最新的 laravel 项目,项目文件在 youme.com 里。在本地,做了 host 映射。通过 youme.com 就可以打开。

上边就是默认的。

创建 git 版本控制,提交。

git init -b main
git add .
git commit -m 'laravel initialize'

继续阅读

9月 06

使用 goframe 遇到的一些情况

  • 因为 laravel 有 artisan,migrate 等工具。无论用 go 的哪个框架(目前至少了解过 gen 和 goframe),都没有类似比价好用的 cli 工具。 goframe 虽然有 gen,但还是没 laravel 的好用,并且没有数据库迁移,seeder。因为 laravel 熟,可以使用 laravel 来写数据迁移和 seeder。用 goframe 来写项目。在使用 gf gen dao 的时候很有用。 再说一下 gf gen dao 也是真好用。

  • 默认的 validate,错误直接以 200 状态码返回。无论什么返回,都会包上一层。这个有点不太好。一般项目,我只关心成功和失败。失败比如 401 无权限,403 拒绝请求,429 请求频率太高等等。有明确的状态吗,用户也好理解,也不用在返回实体部分包裹一层 code data 啥的。

  • 数据库表的认知。在 laravel 项目中,数据库表名都是复数的,个人也感觉复数更容易描述表的意义。 goframe 这边习惯用单数。还有时间字段。laravel 习惯用 created_at,updated_at。而 goframe 这边习惯 create_at 和 update_at。 这些习惯克服一下不是啥难事。

  • gf gen ctrl 的方式可以更方便的去处理路由(使得整个项目规范起来,命名,调用等等)。laravel 新建路由组,比如 api,比如 web,比如 console 等等。通过 gf gen ctrl 以及 goframe 的路由,也能方便轻松实现。