GoFrame 框架介绍
GoFrame是一款模块化、高性能、企业级的Go基础开发框架。GoFrame不是一款WEB/RPC框架,而是一款通用性的基础开发框架,是Golang标准库的一个增强扩展…
GoFrame 快速开始
Hello World 视频地址:https://www.bilibili.com/video/BV15R4y1G7hq/ 包含以下内容: 安装GoFrame …
GoFrame 框架设计-模块化设计
本章节我们先讲一讲在软件设计中,模块化的一些设计和复用原则,然后再介绍GoFrame框架的模块化设计,以便于大家更好地了解GoFrame框架模块化设计的思想。 一、什么是模…
GoFrame 框架设计-统一框架设计
软件行业和建筑行业比较像,如果说我们的产品是一栋高楼大厦,那么程序代码就是建筑高楼的砖坯(我们每天的工作就像是在不停”搬砖”)。如果说软件架构是高屋建瓴,那…
GoFrame 工程开发设计-工程目录设计
框架的工程设计没有采用复杂的设计思路,而是采用了务实、稳健和成熟的工程设计,以快速解决业务痛点、降低开发维护成本为第一考量。 一、工程目录结构 GoFrame业务项目基本目录结…
GoFrame 工程开发设计-对象封装设计
一、Golang包设计 Golang开发语言并没有完整实现OOP特性,因此我们只能采用包封装的方式来践行”高内聚,低耦合”的功能设计。在进行代码分层管理…
GoFrame 工程开发设计-结构化编程设计
一、基本介绍 结构化编程,简单来理解,就是通过定义结构体传递和返回参数。 我们建议在必要的场景下使用结构化定义来管理输出/输出,尤其是在controller和service…
GoFrame DAO对象封装设计-痛点及改进
关于DAO数据访问对象设计其实是关于GoFrame框架工程化实践中比较重要一块设计。 DAO设计结合GoFrame的ORM组件性能和易用性都很强,可以极大提高开…
GoFrame 工程开发设计-数据模型与业务模型
一、数据模型 数据模型又叫做实体模型,主要是来自于底层持久化数据库的数据结构,例如:MySQL、Redis、MongoDB、Kafka等等。这部分数据结构是由第三方…
GoFrame 框架设计-全链路跟踪设计
可观测性是很重要的,目前已经有比较不错的OpenTelemetry标准,各个第三方组件以及厂商都按照这套标准库来暴露和对接观测数据将会更加简便。我们本次聊到的,是链路跟踪,它是…
GoFrame 框架设计-全错误堆栈设计
一、项目错误处理痛点 我们在业务项目中,经常会遇到以下痛点。 1、缺少统一错误处理方案,代码中随处可见的日志打桩 为了方便接口出错时定位问题,代码中随处可见的日志打桩,并将其看做是…
GoFrame 框架设计-接口化与泛型设计
一、基本介绍 接口化是更高层次的抽象。框架组件的设计尽可能使用了接口化,而不是尽可能提供具体实现。接口化设计的最大的好处,是允许使用者自定义实现,来替换组件底层的接口层,以实现很强…
GoFrame 框架设计-Context 业务流程共享变量
Context指的是标准库的context.Context,是一个接口对象,常用于异步IO控制以及上下文流程变量的传递。本文将要介绍的,是如何使用Context传递…
GoFrame 项目部署-独立部署
使用GoFrame开发的应用程序可以独立地部署到服务器上,设置为后台守护进程运行即可。这种模式常用在简单的API服务项目中。 服务器我们推荐使用*nix服务器系列(包括:…
GoFrame 项目部署-代理部署
代理部署即前置一层第三方的WebServer服务器处理所有的请求,将部分请求(往往是动态处理请求)有选择性地转交给后端的Golang应用程序执行,后端部署的Golang应用程序…
GoFrame 项目部署-容器部署
容器部署即使用docker化部署golang应用程序,这是在云服务时代最流行的部署方式,也是最推荐的部署方式。 在以下我们的示例中,统一使用 main作为项目名称。…
GoFrame 开发工具-工具安装
该命令仅针对于预编译二进制下载安装。如果通过go install命名安装的工具的话,不需要手动再使用install命令安装gf工具。 使用方式 项目地址:ht…
GoFrame 开发工具-版本查看
使用方式 gf -v gf version 用以查看当前gf命令行工具编译时的版本信息。 使用示例 $ gf version GoFrame C…
GoFrame 开发工具-项目创建
从v2版本开始,项目的创建不再依赖远端获取,仓库模板已经通过资源管理的方式内置到了工具二进制文件中,因此项目创建速度非常迅速。 使用方式 $ gf init -h USAGE …
GoFrame 开发工具-交叉编译
使用方式 $ gf build -h USAGE gf build ARGUMENT [OPTION] ARGUMENT FILE building file path OPTIO…