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/144158.html

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

相关文章

268页PPT大型集团智慧工厂信息化顶层架构设计(2024版)

智能制造装备是高端制造业的关键,通过整合智能传感、控制、AI等技术,具备了信息感知、分析规划等智能化功能,能显著提升加工质量、效率和降低成本。该装备是先进制造、信息、智能技术的深度融合。其原理主要包括物联网集成、大数据分析与人工…

Windows Server2016多用户登录破解

使用场景 很多时候,公司开发和测试运维会同时登录同一台windows服务器进行查询、更新、维护等操作,本文就来介绍一下Windows2016配置多人远程桌面登录实现,感兴趣的可以了解一下。 操作流程 (1)首先桌面需要安装远程…

详解x86汇编指令:test edx, edx

前言 有不少新手在学习汇编指令的时候可能会被网上一些人误导(很显然我就被误导了),认为test与cmp指令相同,都是在比较两个值是否相同的,那么来看这两个指令: test edx,edx jne 0040BCA3jne 指令为不等于0…

18.DHT11编程案例

温湿度传感器 产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通 空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗…

技术美术百人计划 | 《4.1 Bloom算法》笔记

1. Bloom算法介绍 1.1. Bloom效果 实际拍摄照片与游戏画面Bloom效果对比,Bloom模拟了真实世界图片的效果 Bloom流程图 1.2. 前置知识:HDR和LDR,高斯模糊 1.2.1. HDR和LDR LDR颜色范围太少,精度不够,往往会存在颜色精…

Prometheus 上手指南

文章目录 Prometheus 相关概念Prometheus 的特点Prometheus 架构数据模型 Datemode使用场景 指标类型 Metric type适用场景 作业和实例 Jobs and instances使用场景 Prometheus 安装Prometheus 配置prometheusalertmanager Grafana 可视化Grafana 安装Grafana 配置选项Grafana …

微信小程序开发第五课

一 vant-app # https://vant-contrib.gitee.io/vant-weapp/#/home1.1 集成步骤 # 0 必须使用专门为小程序提供的npm包,通常好多包用不了,比如第三方包用了dom,小程序没有 https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.h…

MATLAB画图,曲线图如何绘制美观,曲线图10种美化方法

曲线图是比较常用的图形,本文以二维曲线图为例,展示曲线的图的不同美化方法,如图1所示,是一个标准的曲线图,横坐标为x,纵坐标为y, 图1 标准曲线图 调整方法1 首先可以通过改变线的颜色,不同…

使用API有效率地管理Dynadot域名,为域名进行隐私保护设置

前言 Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮箱&…

js中的 赋值 浅拷贝 和 深拷贝 详细解读

js数据类型主要分基本数据类型和引用数据类型。前者包括Number,String等,后者主要是Object,因此以下会针对不同的数据类型来分析,需要的朋友可以参考一下 基本数据类型(Primary Data Types): String(字符串) Number&…

【4】AT32F437 OpenHarmony轻量系统移植教程(1)

开源地址:https://gitee.com/AT32437_OpenHarmony 1.学习本文档的意义 1.学习移植OpenHarmony轻量系统到AT32全系列mcu上,本文档移植的具体型号为AT32F437ZMT7 2.学习OpenHarmony轻量系统开发 2.移植前的准备工作 1.移植之前必须要先熟悉AT-START-F…

C:字符串函数(完)-学习笔记

目录 前言: 1、strstr 1.1 strstr的使用 4.2 strstr的模拟实现 5、strtok 5.1 strtok函数的介绍 5.2 strtok函数的使用 6、strerror 前言: 这篇文章将介绍strstr函数,strtok函数,strerror函数 1、strstr 1.1 strstr的使用…

Android JetPack系列之——Navigation

[转] 由于Android的开源性,在开始的几年呈现出了百家齐放的盛况,层出不穷的API和以及官方的API各自大放异彩,在丰富了android生态的同时也带来了一个很严重的问题,即android 的碎片化和规范化的问题。碎片化主要集中于国内的各大…

MYSQL解说

MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛用于网站和应用程序的后端数据存储。 MySQL的基础知识: 1. 数据库和表 数据库(Database):存储数据的逻辑容器。表(Table&…

MT8370|MTK8370(Genio 510 )安卓核心板参数介绍

MTK Genio 510 (MT8370)安卓核心板是一款极为先进的高性能平台,专为满足边缘处理、先进多媒体功能及全面的连接需求而设计,适用于多种人工智能(AI)和物联网(IoT)应用场景。它具备多个高分辨率摄像头支持和可联网触摸屏显示,适用于使用多任务高…

使用PyTorch检测和验证多GPU环境的Python脚本

使用PyTorch检测和验证多GPU环境的Python脚本 在深度学习和机器学习中,GPU的计算能力对模型训练和推理的速度有着极大的影响。随着多GPU系统的普及,如何确保多GPU能被正确识别并使用,是一个非常关键的问题。本文将为大家介绍一段简洁的Pytho…

怎么理解机器学习与数据融合的集成?

在科技进步的浪潮中,数据的重要性日益成为共识。但数据本身,若不经过有效的整合与分析,其价值便难以充分发挥。本文将探讨如何通过集成数据融合与机器学习,提升预测和决策的准确性。将海量数据转化为富含洞察力的信息,…

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Ng…

算法打卡 Day34(贪心算法)-分发饼干 + 摆动序列 + 最大子序和

文章目录 理论基础Leetcode 455-分发饼干题目描述解题思路类似题目2410-运动员和训练师的最大匹配数 Leetcode 376-摆动序列题目描述解题思路 Leetcode 53-最大子序和题目描述解题思路 理论基础 贪心算法的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心算…

【WPF】02 按钮控件圆角配置及状态切换

按钮圆角 先从工具箱里拖进来一个Button控件&#xff0c;然后对这个按钮进行美化。 首先在 xaml 里按钮控件部分 添加如下代码&#xff1a; <Button x:Name"btnLogin" Content"登录" HorizontalAlignment"Center" Margin"0,399,0,0&q…