FastBuilder 一款让人上瘾的新一代开发神器

先给大家推荐一个好玩的网站MyChatGPT(免梯子,国内直接用,不需要OpenAI账号):https://chat.icoding.ink/

这是一款让人上瘾的新一代开发神器,彻底告别Controller、Service、Dao等传统开发方式。

  1. FastBuilder 将不再区别“前端”与“后端”的概念,一个WEB应用就是一个项目,同时包含前端与后端。
    在使用FastBuilder之前,你须具备一定的JS基础,因为FastBuilder几乎全部使用ES6语法进行项目开发。
  2. FastBuilder 并不是一个图形化编程工具,因为大量的图像化操作会让开发效率下降,因此是以图形化为辅助,重点依然是代码脚本,部分场景采用了专门定制的语法,大大提高开发效率,一切的一切都是为了效率,而不是为了图形化。
  3. 为什么图形化会降低效率?因为在项目开发中,逻辑穿插交错是非常复杂的,我们尝试了两种图像化的方式,一种是底层做了大量的实现,用户简单配置就可以接入实现,但事实上这种方案局限性太窄,不可能适用于真正开发,只能适用于极为简单的需求场景,可定制性几乎没有;另一种方案就是用图形化对基础逻辑抽象封装,下沉到最基础的ifelse以及变量的定义,这种方式的确可以满足几乎所有的业务场景,但用户实际操作会变得非常复杂和繁琐,想要上手需要经过大量的培训,即使是一个经验丰富的程序员上手也需要长达一周的培训,在实际使用中,明明几行代码、一分钟就可以搞定的时候,通常需要用户各种点击鼠标各种配置,往往需要几分钟。

前言

“偷懒"可以说是技术创新非常重要的原因之一,很多技术,框架的革新,本质上就是为了能更好的"偷懒”,FastBuilder在让开发者最大程度“偷懒”的同时,扩展了前端开发者的工作领域且无需额外的学习成本。

什么是FastBuilder?

“FastBuilder” 基于java17 和 vue3 快速开发框架,服务端99.99%以上的功能只需要配置数据模型编写“Fast脚本”就能完成开发,另外剩下的0.01%也可以通过FastBuilder内置的API,一两行代码就可以搞定!不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。实现了服务端研发效率600%-900%的提升,人力成本减少了5倍。

定位

  1. 拒绝CRUD。用尽可能简单的方式,完成尽可能多的需求。通过约定的方式实现统一的标准。告别加班,拒绝重复劳动,远离搬砖。
  2. 开发者全栈化,仅需一名前端程序员就可以独立完成整个项目的开发工作。
  3. 省去编译、部署、发布成本,所写即所得,实时预览最终结果。

特性

  • 快速开发 API 接口。后端不再定义 Controller,Service,Dao,Mybatis,xml,Entity,VO 等对象和方法。
  • 快速对接 API 接口。前端不在定义各种Request方法,不需要再封装各种请求体。
  • 可视化界面,将入参自动封装到可执行的脚本上。
  • 只需编写一行代码即可完成大部分的业务需求开发,使用难度级别(测试 or 运维)也可参与开发。
  • 在线动态编译,无需重启,即时生效,多数据源操作。
  • 远程一键发布到线上环境。
  • 代码提示,SQL 提示,语法提示。
  • 经过多次项目验证,传统业务型开发,服务端效率能够提升 9-10 倍,前后端联调提升效率 2 倍,测试效率 3 倍提升。

传统标准的开发步骤

  • 后端增加一张表
  • 后端创建实体对象,映射这张表
  • 后端创建 API 入参 VO
  • 后端创建 API 出参 VO
  • 后端创建 Controller
  • 后端创建 Service
  • 后端创建 Dao
  • 后端创建 Mapper,xml 或者 JPA
  • 后端进行入参校验
  • 后端反复重启,进行接口自测
  • 后端编写 API 文档
  • 后端完成一个接口开发
  • 前端画出页面
  • 前端阅读 API 文档并封装接口
  • 前端联调
  • 前端进行入参校验
  • 完成一个功能点

FastBuilder开发步骤

  • 创建数据模型
  • 编写“Fast脚本”
  • 画出页面
  • 完成一个功能点

介于FastBuilder与现有的开发步骤差异过大,更多的细节不在这里一一罗列,可以再实际使用中体验到各种细节的改进,比如自动同步数据库数据结构、形参自校验、快速的模型描述语言等。

快速开始

前期准备工作

创建数据库

这里使用Docker来安装MYSQL

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root \
    -v /home/mysql/data:/var/lib/mysql \
    -p 3306:3306 \
    -d mysql:8.0.18 \
    --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max_connections=4096

创建完MYSQL后,创建一个库,比如“example_db”,之后的介绍都会在“example_db”库中进行。

docker exec -i mysql sh -c 'exec mysql -uroot -proot -P 3306 -h 127.0.0.1 -e "CREATE DATABASE `example_db`;"'
安装FastBuilder

这里的FastBuilder是安装在开发服务器中,并非客户机,因此客户机不需要额外安装任何工具,只需要有一个浏览器即可。
安装FastBuilder的时候,配置好刚才创建的数据库, 如下:

docker run --name=fast-builder \
    -p 8080:8080 -p 8888:8888 \
    -e MYSQL_HOST=172.17.0.1:3306 \
    -e MYSQL_DB_NAME=example_db \
    -e MYSQL_USERNAME=root \
    -e MYSQL_PASSWORD=root \
    -d guoshengkai/fast-builder:latest

此时访问开发端口:http://localhost:8888, 看到以下页面即为安装成功:
预览页面

首次启时会拉取相应的前端依赖,动稍等片刻,即可通过访问 http://localhost:8080 看到实时预览页面:
wecome

首次部署后,会自动创建一个“example”模块,通过开发者界面可以看到:

  • 一个模块由apisviewsasstesmodelsconfig.js构成;
  • 一个项目由多个模块和一个fast-builder.config.js构成;

通过欢迎页面,我们可以看到fast-builder.config.js是整个项目的核心配置文件,现在我们试着修改他的主页。

  • views中创建一个MyPage.vue文件(修改完记得Ctrl+S)
    MyPage

  • 在config.js中,添加这个页面的路由为my-page,并给他指定标题为 我的页面(修改完记得Ctrl+S)
    Config

  • 修改fast-builder.config.js的默认路由为example模块下的my-page(修改完记得Ctrl+S)
    fastbuild.conf

  • 此时访问8080端口,默认路由将变为你刚刚创建的页面:
    hello

开发工作

创建一个模型

models中创建Persion模型:

Persion('my_persion', '人员'){
    string persionName('persion_name', '人员姓名');
    int persionSex('persion_sex', '人员年龄');
}

为了提高效率简化繁琐的操作步骤,在这里我们使用了一种自定义语法来创建模型,暂且叫他“Model Describe Script”,简称“MDS”。
这种语法比编写Java实体、d.ts、建表语句或者图形化的操作方式效率更高。我们的目的是提高开发效率、减少开发成本,怎么高效就怎么做,而非所谓的“为了去代码化而去代码化”,相信大家已经看出来了。

创建一个接口

apis中新建一个PersionApi.js

export default {
    addAndListPersions: {
        description: '添加一个人员,并且列出所有的人员列表',
        execute() { 
            // 添加一个人员
            const persion = new Model.Persion();
            persion.persionName = '张三';
            persion.persionSex = 1;
            Dao.PersionDao.insert(persion);

            // 列出所有的人员列表
            return Dao.PersionDao.list(Where.emptyWhere());
        }
    }
}

这里的接口遵循ES6语法规范,可以通过JS的方式快速开发业务,并且不用担心安全问题,它实际上运行在服务器中而非在浏览器中运行,它和vue页面交互的过程实际上是经过封装的ajax的交互过程。

页面调用接口

修改MyPage.vue,调用上面的接口方法:

<template>
    <div>
        <h1 v-for="persion in persionList" v-text="persion.persionName + ':' + persion.persionSex"></h1>
    </div>
</template>

<script>
export default {
    name: 'MyPage',
    data() {
        return {
            persionList: []
        }
    },
    mounted(){
        this.$api.PersionApi.addAndListPersions().then(result => {
            this.persionList = result
        })
    }
}
</script>
<style lang="less" scoped>
</style>

此时,查看8080端口,每次刷新页面后,页面中都会增加一个“张三”
MyPage-Api

到此,简单的介绍完毕,大家先自行熟悉探索,上手并不难,详细的文档过段时间补充。
该项目尚未开源,我不确定以何种方式何种协议开源,但有兴趣的个人开发者可以通过邮箱719348277@qq.com联系到我,加入开发组或提交建议和bug。
开源的项目:
https://github.com/onlyGuo/nginx-conf-analysis (这是一个mavel依赖库,用于解析nginx.conf配置)
https://github.com/onlyGuo/nginx-gui (一个在线的Nginx图形化管理工具,这个版本已不维护,后期将开源2.0版本)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WTL9.1-ReadMe-中英文对照版 Windows Template Library - WTL Version 9.1 (build 5270) 2015-09-27 Windows模板库 - WTL Version 9.1 (build 5270) 2015-09-27 (水平有限,不足之处,欢迎指正交流:[email protected]) ________________________________________ Copyright © 2015 Microsoft Corporation, WTL Team. All rights reserved. 微软公司WTL小组2015注册版权所有,Copyright © 2015。 This file is a part of the Windows Template Library. 该文档是WTL的一部分。 The use and distribution terms for this software are covered by the Microsoft Public License (http://opensource.org/licenses/MS-PL) which can be found in the file MS-PL.txt at the root folder. WTL的使用和分发受微软公共授权协议约束 (http://opensource.org/licenses/MS-PL),具体内容可以查看本发布根目录下的MS-PL.txt文件。 ________________________________________ Welcome to the Windows Template Library, version 9.1. This document contains the following topics: 欢迎使用Windows模板库WTL 9.1。该文档包含以下项目: • Introduction • WTL介绍 • Features and Installation • 功能和安装 • Packing List • 压缩包中的文件列表 • Class Overview • 类简介 • ATL/WTL AppWizard • ATL/WTL应用程序向导 • Support for Windows CE • Windows CE支持 • Support for Visual C++ Express • Visual C++ Express支持 • Notes • 说明 • Changes Between WTL 9.1 and 9.0 • WTL 9.1对9.0 的改变 • Changes Between WTL 9.0 and 8.0 • WTL 9.0对8.0的改变 • Changes Between WTL 8.0 and 7.5 • WTL 8.0对7.5的改变 • Changes Between WTL 7.5 and 7.1 • WTL 7.5对7.1的改变 • Changes Between WTL 7.1 and 7.0 • WTL 7.1对7.0的改变 • Changes Between WTL 7.0 and 3.1 • WTL 7.0对3.1的改变 • Changes Between WTL 3.1 and 3.0 • WTL 3.1对3.0的改变 Introduction WTL介绍 Windows Template Library, or WTL, is a set of classes that extend ATL to support more complex user interfaces for either applications or various UI components, while maintaining the big advantage of ATL - small and fast code. WTL classes were designed to be the best and the easiest way to implement rich Win32 based UI for ATL based applications, servers, components, and controls. WTL(Windows Template Library)是一种ATL扩展类库,它能为应用程序及各种控件提供更复杂的用户界面支持,同时保持ATL简洁快速的优点。WTL类库被设计为ATL实现广泛Win32用户界面的最简最优方式,支持各种应用程序、服务程序、组件和控件。 WTL provides support for implementing many user interface elements, from frame and popup windows, to MDI, standard and common controls, common dialogs, property sheets and pages, GDI objects, UI updating, scrollable windows, splitter windows, command bars, etc. The WTL classes are mostly templated and use minimal instance data and inline functions. They were not designed as a framework, so they do not force a particular application model, and can accommodate any. The classes do not use hooks or thread local storage, so they have no restrictions that those techniques impose. They also have no inter-dependencies and can be freely mixed with straight SDK code. In summary, WTL delivers very small and efficient code, very close in size and speed to SDK programs, while presenting a more logical, object oriented model to a programmer. WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较多内联函数。它们并非设计为一个框架,所以并不强制使用特殊应用模式,可以适应各种场合。这些类并未使用hooks(钩子程序)或线程本地存储技术,所以没有植入技术改进的限制。它们也不存在内部依赖性,可以自由地和SDK代码一起混合使用。总之,WTL提供最小最高效的代码,非常接近SDK的体积和速度,同时为程序员提供更强逻辑性和面向对象的特性。 Features and Installation 功能和安装 This is the eigth public release of WTL, after WTL 3.0, 3.1, 7.0, 7.1, 7.5, 8.0, and 9.0. This version is released under the Microsoft Public License, enabling developers from the WTL community to contribute to the library. WTL9.1是在3.0、3.1、7.0、7.1、7.5、8.0和9.0之后的第8个公开发布版本。这个版本基于微软公共授权协议,可以从WTL社区获取公共发布的WTL库进行授权开发。 WTL classes can be used with either VC++ 6.0, VC++ .NET 2002 or 2003, VC++ 2005 or 2008 or 2010 or 2012 or 2013 or 2015, or EVC++ 4.0 or 3.0. AppWizard for Visual Studio is included. WTL类库可以在下列开发环境中使用,VC++ 6.0,VC++ .NET 2002、2003,VC++ 2005、2008、2010、2012、2013、2015,以及EVC++ 3.0、4.0。WTL类库为Visual Studio提供应用程序向导组件。 The WTL classes are provided in header files located in the include directory. The only header files that must be included is atlapp.h, while others can be used when needed. The name of the file doesn't mean that you have to create an application, just that atlapp.h contains base definitions required for WTL projects. WTL类库以存放于include目录中的头文件的方式提供。只有atlapp.h是必须包含的头文件,其余头文件可按需包含引用。该文件的名称并非意味着你必须创建一个应用程序,atlapp.h只是包含了WTL所需的基本定义项目。 To install WTL, just copy the whole directory structure, or unpack the archive file, to the location of your choice. Please be sure to add the WTL\include directory to the list of include directories in VC++, so that the compiler can find them when you include them in your projects. 安装WTL,只需拷贝整个目录内容或解压所需文件到你所选定的路径。请务必在VC++环境中添加WTL的include包含目录,好让编译器能够找到你工程中的包含文件。 Setup programs for the AppWizard are provided. After executing the setup script, ATL/WTL AppWizard will appear in the list of AppWizards when you select File.New.Project in VC++ IDE. The file AppWiz\setup.js is the setup script for all supported versions of Visual Studio, while AppWizards for Windows CE have separate scripts for VS2005 and VS2008 SmartDevice projects. WTL安装包中提供了应用程序向导的安装程序。通过运行安装脚本,在VC++集成开发环境中从“文件|新建|工程”菜单新建项目时,在应用程序向导列表中将会出现ATL或WTL选项。AppWiz\setup.js文件是支持所有版本的Visual Studio的安装脚本。另外,WTL为支持Windows CE下VS2005、VS2008智能设备工程的应用程序向导,提供了单独的安装脚本。 To manually install AppWizard for VC++ .NET 2002/2003, copy all WTLAppWiz.* files from AppWiz\Files to VC++ .NET projects directory, %VC7DIR%\Vc7\vcprojects, where %VC7DIR% is the directory where VC++ .NET 2002/2003 is installed. After that, open WTLAppWiz.vsz and modify the like that contains ABSOLUTE_PATH to contain %WTLDIR%\AppWiz\Files, where %WTLDIR% is the directory where WTL files are. 要为VC++ .NET 2002/2003手工安装应用程序向导,可从AppWiz\Files目录拷贝所有WTLAppWiz.*文件到VC++ .NET工程目录%VC7DIR%\Vc7\vcprojects,%VC7DIR%是VC++ .NET 2002/2003的安装目录。然后,打开WTLAppWiz.vsz文件修改ABSOLUTE_PATH指向%WTLDIR%\AppWiz\Files,%WTLDIR%是WTL文件的存放目录。 Platform support and requirements: 支持和请求的平台: Compiler/IDE/ATL: 编译器、集成开发环境、ATL: Visual C++ 6.0 (ATL 3.0) Visual C++.NET 2002 (ATL 7.0) Visual C++.NET 2003 (ATL 7.1) Visual C++ 2005 (ATL 8.0) Visual C++ 2008 (ATL 9.0) Visual C++ 2010 (ATL 10.0) Visual C++ 2012 (ATL 11.0) Visual C++ 2013 (ATL 12.0) Visual C++ 2015 (ATL 14.0) SDK (optional): SDK(可选): Any Platform SDK from January 2000 release up to the latest Windows SDK 支持2000年1月及之后发布的所有平台下的Windows SDK。 Windows CE development: Windows CE开发: eMbedded Visual C++ 3.0 - Pocket PC, Pocket PC 2002 eMbedded Visual C++ 4.0 - STANDARDSDK_410, Pocket PC 2003, Smartphone 2003, STANDARDSDK_500, Pocket PC 2003 SE, Smartphone 2003 SE Visual C++ 2005 - Pocket PC 2003 SE, Smartphone 2003 SE, STANDARDSDK_500, Windows Mobile 5.0 (Pocket PC and Smartphone), Windows Mobile 6.0 (Standard and Professional) Visual C++ 2008 - Pocket PC 2003 SE, Smartphone 2003 SE, STANDARDSDK_500, Windows Mobile 5.0 (Pocket PC and Smartphone), Windows Mobile 6.0 (Standard and Professional)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值