PHP、Java等其他语言转Go时选择GoFly快速快速开发框架指南

概要

经过一年多的发展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/ 欢迎大家进入哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148228.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

科研绘图系列:R语言ggplot2画热图(heatmap)

文章目录 介绍加载R包导入数据数据预处理画图导出数据系统信息介绍 热图(Heatmap)是一种数据可视化技术,它通过颜色的变化来表示数据的大小或者密度。热图通常用于展示两个变量之间的关系,或者在二维空间上展示数据的分布情况。以下是热图可以表示的一些内容: 数据分布:…

「C++系列」动态内存

【人工智能教程】,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站:【人工智能教程】 文章目录 一、动态内存1. 使用new和delete①分配单个对象②分配对象数组 2. …

python全栈学习记录(十七)logging、json与pickle、time与datatime、random

logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging logging模块用来记录日志信息。 import logging # 进行基本的日志配置 logging.basicConfig( fi…

图文深入理解SQL语句的执行过程

List item 本文将深入介绍SQL语句的执行过程。 一.在RDBMS(关系型DB)中,看似很简单的一条已写入DB内存的SQL语句执行过程却非常复杂,也就是说,你执行了一条诸如select count(*) where id 001 from table_name的非常简…

[WMCTF2020]Make PHP Great Again 2.01

又是php代码审计,开始吧. 这不用审吧,啊喂. 意思就是我们要利用require_once()函数和传入的file的value去读取flag的内容.,貌似呢require_once()已经被用过一次了,直接读取还不行,看一下下面的知识点. require_once() require…

WebLogic 漏洞复现

1、后台弱⼝令GetShell 默认账号密码:weblogic/Oracle123 weblogic常⽤弱⼝令:https://cirt.net/passwords?criteriaweblogic 这⾥注意, 单个账号错误密码5次之后就会⾃动锁定。 http://47.121.212.195:7001/console 2、登录后台后&#…

恒生科指八连涨,汽车股强势

9月20日电 周五,港股三大股指集体收涨。恒生指数涨1.36%报18258.57点,连续第六个交易日上涨;恒生科技指数涨1.43%报3703.84点,连续第八个交易日上涨,创逾两个月来新高;恒生中国企业指数涨1.21%报6381.5点&a…

项目扩展五:交互式:command-line interface版本的实现

项目扩展五:command-line interface版本的实现 一、CLI交互的设计1.为何要设计这个CLI交互2.具体设计1.启动服务2.选择信道3.选择虚拟机4.正式业务注意:1.消费者与生产者跟信道的关系2.消息处理回调函数的问题3.消息确认的问题 5.其他功能1.打印功能2.查…

STM32精确控制步进电机

目的:学习使用STM32电机驱动器步进电机,进行电机运动精确控制。 测试环境: MCU主控芯片STM32F103RCT6 ;A4988步进电机驱动器模块;微型2相4线步进电机10mm丝杆滑台,金属丝杆安装有滑块。 10mm二相四线微型…

机器学习之非监督学习(二)异常检测(基于高斯概率密度)

机器学习之非监督学习(二)异常检测(基于高斯概率密度) 0. 文章传送1.案例引入2.高斯正态分布3.异常检测算法4.异常检测 vs 监督学习5.算法优化6.代码实现 0. 文章传送 机器学习之监督学习(一)线性回归、多…

C语言中数组和字符串的联系

一、C语言中,数组和字符串 1、C语言中,定义一个数组后,数组名保存的是这个数组的首地址。类似一个指向数组第一个元素的指针,但是这个指针不能重新指向。2、字符串在C语言中是通过字符数组来实现的,也就是说字符串还是…

【小沐学CAD】3ds Max常见操作汇总

文章目录 1、简介2、二次开发2.1 C 和 3ds Max C SDK2.2 NET 和 3ds Max .NET API2.3 3ds Max 中的 Python 脚本2.4 3ds Max 中的 MAXScript 脚本 3、快捷键3.1 3Dmax键快捷键命令——按字母排序3.2 3dmax快捷键命令——数字键3.3 3dmax功能键快捷键命令3.4 3Dmax常用快捷键——…

Elasticsearch 完整格式的 URL 进行分词,有什么好的解决方案吗?

1、问题描述 我想对完整格式的 url 进行分词,请问有什么好的解决方案吗? 比如:https://www.abc.com/any/path?param_1some&param-2other#title 看了官方的分词器,感觉没啥合适的? 预处理的话,又不知道该怎么处理…

Unity对象池的高级写法 (Plus优化版)

唐老师关于对物体分类的OOD的写法确实十分好,代码也耦合度也低,但是我有个简单的写法同样能实现一样的效果,所以我就充分发挥了一下主观能动性 相较于基本功能,这一版做出了如下改动 1.限制了对象池最大数量,多出来的…

C++11 可变的模板参数

前言 本期我们接着继续介绍C11的新特性,本期我们介绍的这个新特性是很多人都感觉抽象的语法!它就是可变的模板参数! 目录 前言 一、可变的模板参数 1.1可变的参数列表 1.2可变的参数包 1.3可变参数包的解析 • 递归展开解析 • 逗号…

微服务Docker相关指令

1、拉取容器到镜像仓库 docker pull xxx //拉取指令到 镜像仓库 例如 docker pull mysql 、docker pull nginx docker images //查看镜像仓库 2、删除资源 2.1、删除镜像仓库中的资源 docker rmi mysql:latest //删除方式一:格式 docker rmi 要…

【解密 Kotlin 扩展函数】扩展函数的创建(十六)

导读大纲 1.1 为第三方的类添加方法: 扩展函数 1.1 为第三方的类添加方法: 扩展函数 Kotlin 的主题之一是与现有代码的平滑集成 即使是纯 Kotlin 项目,也是构建在 Java 库之上的 如 JDK、Android 框架和其他第三方框架 而当你将 Kotlin 集成到 Java 项目中时 你还要处理尚未或不…

python爬虫:将知乎专栏文章转为pdf

欢迎关注本人的知乎主页~ 实现思路 用户输入专栏ID: 代码首先提示用户输入一个知乎专栏的ID,默认值为 c_1747690982282477569。输入的ID用于构建API请求的URL。 发送HTTP请求: 使用 requests.get() 向知乎API发送GET请求,获取指定…

【QGIS入门实战精品教程】6.1:QGIS根据属性条件查询数据(SQL表达式)

文章目录 一、字段过滤二、高级过滤(表达式)一、字段过滤 对于单个字段的查询,可以采用字段过滤,例如,从县区数据中,根据NAME字段,查找出县级市玉门市。操作为:右键县区→打开属性表: 点击左下角,选择name字段。 输入玉门市,回车,选择查找除的属性表记录,此时图斑…

【Linux】入门【更详细,带实操】

Linux全套讲解系列,参考视频-B站韩顺平,本文的讲解更为详细 目录 1、课程内容 2、应用领域 3、概述 4、 Linux和Unix 5、VMware15.5和CentOS7.6安装 6、网络连接三种方式 7、虚拟机克隆 8、虚拟机快照 9、虚拟机迁移删除 10、vmtools 11、目录…