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

news2024/9/19 23:34:05

概要

经过一年多的发展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.coloradmin.cn/o/2147280.html

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

相关文章

模版进阶(template)

1.非类型模版参数 模版参数分类类型形参与非类型形参。 ① 类型形参:出现在在模板参数列表中,跟在class或者typename之类的参数类型名称。 ② 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当…

Java键盘输入语句

编程输入语句 1.介绍:在编程中,需要接受用户输入的数据,就可以使用键盘输入语句来获取。 2.步骤: 1)导入该类的所在包,java.util.* 2)创建该类对象(声明变量) 3)调用里面的功能 3…

[2025]医院健康陪诊系统(源码+定制+服务)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

计算机毕业设计 奖学金评定管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

MySQL ------- 索引(B树B+树)

阿华代码,不是逆风,就是我疯,希望本文内容能帮到你!你们的点赞收藏是我前进最大的动力!! 目录 一:索引的特点 二:索引适用的场景 三:MySQL中索引操作 1:…

LTE SSS辅同步信号检测(相关法)

本文介绍一下SSS检测原理,本文采用联合检测算法,用复杂度来换取性能,适合工程上使用,SSS信号的产生往期已经介绍过了,这里就不介绍了。 1 SSS两个序列采用Interleaved结构而没有采用Localized集中式的原因是他比集中式可以获得更大的频率分集和干扰随机化效果。 2 根据3…

Python 从入门到实战22(类的定义、使用)

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了面向对象简单介绍相关知识。今天我们将学习一…

828华为云征文 | 深度评测,华为云Flexus X实例在Sysbench性能测试中的亮眼表现

前言 本文章评测了华为云Flexus X实例在Sysbench性能测试中的亮眼表现。Flexus X凭借其新一代处理器和智能算力技术,在CPU、内存、磁盘I/O及网络性能上均展现出了卓越的能力。通过Sysbench的详尽测试,Flexus X实例在多核计算能力、内存吞吐量、磁盘响应速…

CSS传统布局方法(补充)——WEB开发系列37

开发技术不断演进,布局方式也经历了多个阶段的变革。从最初的基于表格布局到 CSS 的浮动布局,再到今天的弹性盒(Flexbox)与 CSS Grid 网格布局,每一种布局方式都有其独特的背景和解决特定问题的优势。 一、CSS Grid 出…

neo4j安装启动教程+对应的jdk配置

参考这位博主的视频教程:neo4j社区windows版下载 一、官网下载neo4j的安装包 (1)官网下载页面 (2)上一步 【download】之后,会自动下载,如果没有,点击【here】 这里可以看到一行字…

IDEA Project不显示/缺失文件

问题:侧边栏project 模式下缺少部分文件 先点close project 打开项目所在目录,删除目录下的.idea文件夹 重新open project打开这个项目即可解决

stm32单片机个人学习笔记4(GPIO输入)

前言 本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 STM32入门教程-2023版 细…

JavaDS —— 图

图的概念 图是由顶点集合以及顶点之间的关系组成的一种数据结构:G (V,E) 其中 V 表示的是顶点集合 : V { x | x 属于某个数据对象集} 是有穷非空集合 E 叫做边的集合 : E {(x, y) | x, y 属于 V} 或者 …

深度长文:揭开C/C++三目运算符的全部秘密,助你写出更优雅的代码(下)

在上篇文章中,我们深入探讨了三目运算符的基础语法、与if-else的对比以及使用中的常见误区。通过这些知识,你已经掌握了如何在代码中使用三目运算符来简化条件判断。 然而,三目运算符在C和C中的应用并不仅限于简单的条件选择。接下来&#x…

尚品汇-秒杀下单实现-页面轮询查询订单状态(五十三)

目录: (1)整合秒杀业务 (2)秒杀下单 (3)秒杀下单监听 (4)页面轮询接口 (1)整合秒杀业务 秒杀的主要目的就是获取一个下单资格,拥…

《深度学习》—— 神经网络模型对手写数字的识别

神经网络模型对手写数字的识别 import torch from torch import nn # 导入神经网络模块 from torch.utils.data import DataLoader # 数据包管理工具,打包数据, from torchvision import datasets # 封装了很多与图像相关的模型,数据集 from torchvi…

codetop字符串刷题,刷穿地心!!不再畏惧!!暴打面试官!!

主要供自己回顾与复习,题源codetop标签字符串近半年,会不断更新 1.有效的括号字符串2.括号生成3.最长单词4.字符串转换整数(atoi)5.整数转罗马数字6.罗马数字转整数7.比较版本号8.最长公共前缀9.面试题17.15.最长单词10.验证IP地址11.面试题01.06.字符串…

介绍一下常用的激活函数?

常用的激活函数 Sigmoid函数Tanh函数ReLU函数Leaky ReLU函数Softmax函数 Sigmoid函数 特点: 将任意实数映射到(0,1)区间内,输出值可以作为概率来解释。 函数平滑且易于求导,但其导数在两端趋近于0,即存在梯度消失问题。 输出值不…

CWFED:自然灾害检测数据集(猫脸码客 第192期)

Cyclone Wildfire Flood Earthquake Database 在自然灾害频发的今天,准确、及时地获取并分析相关数据对于灾害预防、预警及响应至关重要。为此,Cyclone Wildfire Flood Earthquake Database(以下简称CWFE Database)应运而生&…

计算机毕业设计 农场投入品运营管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…