概要
经过一年多的发展GoFly快速开发框架已被一千多家科技企业或开发者用于项目开发,他的简单易学得到其他语言转Go首选框架。且企业版的发展为GoFly社区提供资金,这使得GoFly快速框架得到良好的发展,GoFly技术团队加大投入反哺科技企业和开发者,目前GoFly快速开发框架已经做到开发效率不输PHP语言甚至更快;得益于Go语言特性GoFly框架经过使用者反馈及团队不断测试更新修复,框架完全能保证构建高效、可靠、安全的应用。这些基础能力上gofly框架也不断得到使用企业或开发者认可,在此影响上更多朋友在使用GoFly框架,最近我们客服沟通中有一部分朋友是由其他语言转Go的,他们想先了解一下GoFly框架,我们客服微信很难通过文字回复把框架说清楚。我们之前一直忙于框架开发完善没有时间来整理一个能让其他语言转Go的朋友快速了解GoFly框架指南,本篇文章就给转Go朋友全面了解GoFly快速开发框架做个说明。
大部分java转过来的朋友最关心的是框架简单易用,GoFly框架就是在Go简单语法上通过框架规范让开发再次简单,所以我们框架就是要开发变得最简单、提高开发效率、降低开发及运维成本。
“降本增效”是我们框架追求目标,但是我们降本不是降低性能/软件质量,而是保证软件质量降低成本。这样是大家选择Go语言的初衷吧。
使用技术栈
框架采用前后端分离,前后端分离设计可以在管理后台开发时让前端技术员加入,这样可以协同开发提高开发效率、并且能开发出界面交互很好后台。
后端技术:
- 开发语言:Golang
- 基础框架:Gin
- 数据库,开发时:mysql(推荐)、mariadb、tidb,安装后可迁移:pgsql、SQL-Server、sqlite、oracle、clickhouse、dm数据库进行开发。
- ORM:框架orm借鉴php的orm风格,使用了简单易用的链接池设计,保证了ORM安全性、性能、稳定基础提供开发时效率。
- 框架设计:框架分两层,分别为控制层和服务层,其中控制层负责控制是否调用服务层(该层在开发中框架可自动维护,特殊情况才需要手动添加或删除),服务层我们把它称为接口层,用于表现业务接口(框架全部以接口形式为客户端提供数据通讯,所以后端核心在与接口)。
后端框架目录结构:
├── app # 应用目录
│ ├── admin # 后台管理应用模块(安装saas时存在、不安装则删除)
│ ├── business # 业务端应用模块
│ ├── common # 公共应用模块
│ └── controller.go # 应用控制器
├── devsource # 开发静态资源(安装界面、代码生成模板)
├── resource # 静态资源及配置文件(发布应用带上)
├── runtime # 运行时文件(项目运行时自己生成)
├── utils # 框架核心代码及工具包
├── go.mod # 依赖包管理工具
├── go.sum
├── main.go # main函数
├── runner.conf # fresh热编译配置文件
└── README.md # 项目介绍
在框架中我们开发业务代码都在app目录下;utils是框架核心代码,在开发时utils目录核心代码不要去修改。app下controller.go是模块控制器,它控制app目录子目录模块是否启用,启用时在controller.go的import添加即可。
app下的admin、business等模块都可以自定义请求路由中间件/路由钩子,对模块做统一处理。
后端部署文件
框架后端代码我们需要编译成二进制文件放到服务器上,部署时仅需把打包生成的二进制文件和resource目录拷贝到服务部署目录即可(只需两个哦)。
前端技术:
- 框架:vue3
- 构建工具:vite
- 前端语言:TypeScript
- UI框架:Arco Design
- 图表:echarts
目录结构:
├── config #vite.config配置目录
├── public #logo和静态配置文件
├── src
│ ├── api # 请求接口
│ ├── assets # 静态资源
│ └── style 全局样式
│ ├── components # 通用业务组件
│ ├── config # 全局配置(包含echarts主题)
│ └── settings.json # 配置文件
│ ├── directives # 指令集(如需,可自行补充)
│ ├── hooks # 全局hooks
│ ├── layout # 布局
│ ├── locale # 国际化语言包
│ ├── router # 路由配置
│ ├── store # 状态管理中心
│ ├── types # Typescript 类型
│ └── utils # 工具库
│ ├── views # 页面模板
│ └── App.vue # 视图入口
│ └── main.ts # 入口文件
├── README.md
├── package.json
└── tsconfig.json
前端部署就按vue 通用build命令打包即可,前端没有特殊处理,可按照前端开发习惯进行开发。如需把后台部署在Go后端接口同一域名,则把打包好前端代码拷贝到上面部署后端拷贝的resourcewe文件夹下的webbusiness或者webadmin,根域名就放在static目录下,需要其他目录可自行在后端router中添加。
框架优势
框架不仅仅是自身设计简单易用来提高开发效率,还提供代码生成工具、代码插件市场。处理开发工具社区还提供技术交流,可以帮助开发过程中遇到问题求助途径,并且企业版社区技术团队提供微信一对一技术支持。还有框架开发工具中提供了一个项目分包功能,在您开发项目遇到人员紧张时可以把功能分成几个发布需求到社区,社区已经我200+个云员工兼职,你的包会分给合适开发者开发,而且分包任务得到社区的监督,确保你的分包需求开发质量有保障。
代码生成工具
1.根据数据表结构生成代码
代码生成工具可生产组件丰富前端代码,满足所有常见表单组件和列表显示组件。
2.直接生成模版代码的工具
除了通过数据库表结构生成代码,我们还为没有数据表的业务生成模板代码,业务可在生成好的代码基础上开发,减少复制粘贴基础代码和创建目录文件时间。生成好后直接更加生成后代码位置提示目录找到模板,编写代码即可,这样开发人员不用关系框架代码结构要求;新手可在不熟悉框架情况下快速进入开发状态。
代码仓(代码插件市场)
代码仓库分为公共仓和企业私有仓,让企业和个人开发者都参与到社区代码仓库代码贡献来,个人开发者或者企业都可以开发代码包上传到公共仓,有了代码仓企业或个人在开发项目可以直接使用现成代码参与到生产过程,大大减少开发项目时的人力投入,这样就解决了企业有项目时大量招人,项目完成又要裁员的用工难题。代码仓好提供了“需求发布”功能,这个功能是为了解决代码仓库没有现成代码,需求其他社区开发者现开发代码,这也相当企业通过社区找到开发人员一起参与到项目开发(无需招聘和裁员流程),这样企业高效、快速找的合适及能力人才为企业项目服务。
公共仓是社区和社区全部开发者共同开发代码仓的资源发布到代码仓上,社区全部开发者共享全社区开发者们代码成果,在快速开发项目时根据需求到代码仓库找,找到符合的代码直接安装(无需复制粘贴修改即可使用)。
私有仓是企业内部把开发好的项目打包上传到企业自建的私有代码仓,企业可以快速复用以往的项目代码,私有仓也方便企业统一管理已开发好的项目代码,新人入职也可以快速、便捷获得企业代码资源。
小结
GoFly快速开发框架一直寻找能快速开发项目,减少开发成本方法,我们一直追寻每一个能提高开发效率和降低成本方法。每个办法我们都反复测试保证它真的能到达这个目的,以上是我们寻找到目前最优组合,也经过200+企业或开发者一同完善一同验证结果。系统新朋友也可以和我们一同为“降本增效”这一目标一起把GoFly快速开发框架做好,我们可以一同完善框架基础,一起开发代码仓插件,丰富我们代码市场。
GoFly全栈开发社区:https://goflys.cn/ 欢迎大家进入哦!