低代码: 系统开发准备之确定一般开发流程,需求分析,复杂度分析,标准开发流程

news2024/12/25 9:26:22

概述

  • 低代码系统开发之前,我们首先要进行一些准备
  • 我们首先知道我们软件开发的一般流程
  • 同时,我们还要知道,我们整个系统平台的需求如何
  • 之后,我们要基于需求进行设计,包含UI设计与系统架构设计

一般开发流程

  • 系统开发一般要经过如下几个步骤,低代码系统平台也不例外
  • 我们来看下软件开发的生命周期 (SDLC)

1 )需求分析

  • 需求调研
  • 技术架构讨论

2 )软件设计

  • 技术架构设计
  • 原型/UX/UI 设计

3 )研发

  • 业务系统详细设计
  • 业务系统开发
  • 单元测试
  • 增加CI构建文件和镜像构建文件DockerFile
  • 提交代码到代码仓GitLab

4 )测试和预生产测试

4.1 测试环境

  • 创建应用,创建配置
  • 配置CICD流程,填写仓库地址,用户名密码等
  • 触发CI构建镜像,CD自动发布应用到测试环境
  • 测试环境应用测试
  • 代码迭代,问题修复后再测试
  • 测试通过,转预生产

4.2 预生产测试

  • 预生产测试
  • 迭代回归
  • 生产上线

5 )生产部署

  • 上线流程申请
  • 配置修改以及确认
  • 上线准备 (应用, 设备, 人员, 网络等)

6 )运营

  • 服务用户
  • 持续测试
  • 技术支持

需求分析

这里,我们拆分来说

1 )B端需求

1.1 用户

  • 用户的登录和注册
    • 获取验证码
    • 成功后获取用户信息并跳转到首页
    • 在首页顶部导航中展示用户名称
  • 用户角色:
    • 普通用户: 查看,分享
    • 运营人员: 发布作品,查看统计
    • 管理员: 下线作品,公开模板,设置模板状态为Hot等

1.2 首页

  • 模板列表和详情
    • 列表可以翻页,搜索,单项模板可以进入详情
    • 详情中展示模板缩略图,有二维码预览, 下载模板图片,使用模板按钮

1.3 个人中心

  • 我的作品和模板
    • 作品是已经做好的作品,发布后的作品
    • 模板是具有特殊属性的作品
    • 可以创建,保存,发布,获取作品列表和详情
    • 分享到 H5 (这里可以创建渠道,比如微信,QQ等不同的渠道) 可以通过新域名来展示作品
      • 可以在分享的时候创建和删除渠道,方便用户
  • 作品数据信息
    • PV、UV
    • 分渠道统计数据
  • 消息中心
    • 用于管理一些关于自己的消息通知
    • 比如:系统消息,他人点赞使用了你的作品
  • 回收站
    • 一个简单的表格,列出自己删除的项目,每个项目给一个“恢复”功能。
  • 个人信息管理
    • 信息修改

2 )编辑器需求

  • 这个编辑器是在B端需求中单独拆分出来的,因为其设计的复杂性,这里单独拿出来说

  • 编辑器页面顶部有预览和设置,保存,发布功能

  • 编辑器主题分左中右, 原型如下

  • 预览和设置功能

  • 设置基本信息功能

    • 可修改封面图、标题和副标题。
    • 这些基本信息,也会体现到页面分享时。
    • 所以,当编辑基本信息时,预览界面要显示成分享的样子。
  • 保存功能

    • 点击“保存”按钮,保存当前内容到服务端。
    • 每隔几秒自动保存到服务端(现在的 web 编辑工具,都是实时自动保存的)
    • 关闭时未保存的提示
  • 发布功能

    • 点击发布按钮,即可将该作品发布为 h5 界面,状态也变为“已发布”
    • 发布成功之后,弹出该界面
  • 设置渠道

    • 渠道,就是一个唯一的标识,放在 url 上,让该渠道的 url 和其他的 url 区分开来,好做区分统计。
    • 例如,一个作品发布为 h5 的 url 是 xxx/index.html ,但是这个 h5 要作为广告投放在不同的地方(微信,头条,支付宝等)
    • 活动结束后,运营人员不仅要看这个 h5 总的统计数据,还要看不同地方的数据,以区分哪里投放效果好
    • 这是运营的基本需求,解决方案就是渠道
    • 我们创建一个“微信”的渠道,让它对应的 url 是 xxx/index.html?channel=aaa
    • 再创建一个“支付宝”的渠道,让它对应的 url 是 xxx/index.html?channel=bbb
    • 渠道名是中文的,便于标识记录,渠道号就是一个 url 参数,参数名是 channel ,参数值是 uuid 形式,不可重复
    • 这样,如果要投放在不同的地方,我们就创建多个渠道,把渠道对应的唯一链接投放过去,这样就可以根据 channel 参数来区分统计了
    • 功能描述
      • 初次发布时,只有一个“默认”渠道
      • 可以输入渠道名称,添加新的渠道。渠道名称不能和已有的重复
      • 渠道号都是 uuid 就直接自动生成了
      • 可以删除已有的渠道
      • 但如果此时只剩下一个渠道了,则不能继续删除,即至少保留一个渠道
    • 注意:重新发布时,渠道不能丢失,而且链接不能变,分渠道统计数,可以在作品统计页查看
  • 发布为模板

    • 模板就不需要渠道了,只有链接即可
    • tag 列表由后台管理维护,即:官方 tag
    • 公开的模板可以被别人看到,私有的只能自己看到
    • 注意:重新发布时,tag 和公开设置不能丢失
  • 编辑器组件面板

    • 组件面板里放所有的组件,点击每个组件,即可将组件放在画布里。

  • 画布

    • 画布展示当前作品的内容,都是以一个一个组件的形式。
    • 选中的组件,也就是点击组件即可选中,只能一次选中一个组件,选中的组件要高亮显示。
  • 新建/删除组件功能

    • 点击组件面板中的组件,可添加到画布中。
    • 选中组件后,键盘删除键,即可删除组件。
  • 复制/粘贴

    • 选中一个组件,ctrl + c 可复制该组件,ctrl + v 可以粘贴到画布中
    • 组件属性、内容和复制的组件一样
  • 修改内容功能

    • 针对文本组件、标题组件,双击后可编辑内容
  • 调整大小功能

    • 针对图形、图片组件,选中后可拖拽四周的触手,来调整大小
    • 拖拽定位
    • 选中组件后,可拖拽调整位置
  • 右键菜单功能

    • 复制
    • 粘贴(仅当复制过组件之后,才可用)
    • 删除
    • 隐藏
    • 锁定/解锁
  • 图层面板

    • 图层即画布中的组件,数据源是一样的,只不过此处用列表的形式列出来
  • 选中关联功能

    • 画布中选中组件时,对应的图层也会被选中
    • 同理,选中图层时,对应的画布中的组件,也要被选中
  • 删除关联功能

    • 画布中删除组件时,对应的图层也会被删除。(同理于新增组件,也会增加图层)
    • 选中图层,键盘删除键可删除,同时也要删除画布中的组件
  • 图层隐藏/可见功能

    • 点击“眼睛”图标可隐藏该图层,再点击可再次显示
    • 隐藏的图层,在画布中也不可见。预览、发布时,组件也要隐藏。
  • 锁定

    • 点击“锁”图标可锁定图层,再次点击可解锁。
    • 锁定的图层,只能选中、复制,不能修改任何内容、属性,不能拖拽、修改大小。
    • 即,在画布中不能操作,属性面板也不能操作。
  • 图层重命名功能

    • 双击图层,图层名称变为输入框,可修改图层名称
  • 右键菜单

    • 参考画布的右键菜单,相同
  • 属性面板

    • 背景属性:如果当前没有任何组件被选中,则属性面板显示“背景设置”,可设置:
      • 背景颜色
      • 背景图片
  • 组件属性

    • 当选中某个组件时,属性面板会自动切换到该组件的属性设置
    • 而且,每种组件的属性都不一样,例如文本组件
    • 每个组件的详细属性,还需在设计组件时定义
  • 功能菜单功能

    • 撤销/重做:对于画布操作的撤销和重做,常见功能,不再赘述
    • 放大/缩小:放大缩小画布的比例

3 )业务组件库需求

  • 编辑器 和 h5 页面其实整个就是一系列元素构成的,这些元素的自然应该抽象成组件
  • 同时满足各个环境的使用,包含B端,C端(包含手机端)
  • 业务组件库大多数都是展示型组件,其实就是把对应的 template 加上属性(大部分是 css 属性)展示出来
  • 少有的组件会有一些行为,比如音频播放等,而且这些组件会在多个不同的端进行展示,所以业务组件库就是从简的原则
  • 必须避免和编辑器编辑流程的耦合,难点在于这些组件属性在编辑器中的编辑
  • 组件分类:基础组件 + 高级组件

3.1 )基础组件

  • 组件:文本, 图片(用户主动上传的图片,支持 gif),形状
  • 通用属性
    • 尺寸:
      • 长度 - 输入数字(同下面5项)
      • 宽度
      • 左边距
      • 右边距
      • 上边距
      • 下边距
    • 边框:
      • 边框类型 - 无 | 实线 | 破折线 | 点状线 下拉菜单
      • 边框颜色 - 颜色选择
      • 边框宽度 - 滑动选择
      • 边框圆角 - 滑动选择
    • 阴影与透明度
      • 透明度 - 滑动选择 100 - 0 倒排
      • 阴影 - 滑动选择
    • 位置
      • X 坐标 - 输入数字
      • Y 坐标 - 输入数字
    • 事件功能
      • 事件类型 - 无 | 跳转 URL 下拉菜单
      • url 地址 - 输入框
  • 特有属性
    • 文本
      • 文字内容 - 多行输入框
      • 字号 - 输入数字
      • 字体 - 宋体 | 黑体 | 楷体 | 仿宋 …下拉菜单
      • 加粗 - 特殊 checkbox
      • 斜体 - 同上
      • 下划线 - 同上
      • 行高 - slider
      • 对齐 - 左 | 中 | 右 radio group
      • 文字颜色 - 颜色选择
      • 背景颜色 - 颜色选择
    • 图片:上传图片 - 上传以及编辑控件
    • 形状:背景颜色 - 颜色选择

3.2 )高级组件

  • 日期显示
  • 特有属性
    • 样式 - 下拉菜单 1 | 2
    • 时间 - 默认为当前日期 日期选择器
    • 字体颜色 - 颜色选择器

4 )管理后台需求

  • 首页 dashboard: 统计全局使用信息,如:PV, UV, 模板总数,发布总数, 活跃用户,每月新增等关键数据
  • 用户管理:用户列表,用户操作(CRUD, 账号禁用,冻结),用户搜索
  • 作品管理:作品列表,作品操作(发布/下线),作品搜索
  • 模板管理:模板列表,模板搜索,模板操作(排序,CRUD, 设置标签: NEW/HOT)
  • 渠道管理:用于分享和数据统计时的渠道
    • 用于单独进行渠道管理的功能
    • 可以增删查改
  • 数据管理:数据监控相关

复杂度分析

  • 交互的复杂性
  • 数据结构和状态的复杂性
  • 多项目互相依赖的复杂性
  • 针对不同项目(web 还是 library)怎样完成打包
  • 性能优化: 大型项目的要点, 省的流量就是公司的真金白银
  • 第三方库的调研,使用以及二次开发

制定标准流程

  • 制定 git flow 流程
  • 标准 lint 工具
  • 单元测试
  • 代码提交的 commit 信息
  • PR review - 工程师之间互相交流和学习的重要步骤
  • CI/CD - 持续集成和部署

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

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

相关文章

2024年【北京市安全员-B证】考试题库及北京市安全员-B证考试技巧

题库来源:安全生产模拟考试一点通公众号小程序 北京市安全员-B证考试题库根据新北京市安全员-B证考试大纲要求,安全生产模拟考试一点通将北京市安全员-B证模拟考试试题进行汇编,组成一套北京市安全员-B证全真模拟考试试题,学员可…

拉削基础知识——拉床的类型及特点

拉床是所有机械加工工具中最简单的一种,由拉削工具、夹具、驱动装置和支撑架组成。拉削加工可获得较高的尺寸精度和较小的表面粗糙度,生产率较高,适用于大批量生产。拉床按其结构主要分为卧式和立式。应用领域和功能可分为液压拉床、自动拉床…

【香菇带你学Mysql】Mysql数据库主备搭建【建议收藏】

文章目录 1. 概述1.1 为什么要搭建主备架构数据库?1.2 常见的Mysql数据库主备架构 2. Mysql 数据库主备搭建原理3. Mysql数据库主备搭建实操3.1 环境准备3.2 主库操作3.3 从库操作3.4 主从同步验证 4. 总结5. 参考文档 大家可能听过一个段子,当电脑遇到问…

java 关键字

Java的关键字是语言中保留的标识符,它们具有特定的含义和用途,并且不能用作变量名、方法名或类名等。Java 17(最新的LTS版本之一)中有53个关键字。 下面是每个关键字的含义及其实例 1. 控制结构关键字 这些关键字用于控制程序流…

第十六节、实装攻击判定

一、实现原理 人物三段式攻击的剑气增加一帧伤害即可 二、步骤 创建玩家下面的子物体 1、多边形碰撞体 给第一段攻击添加多边形碰撞体 2、帧触发 在这一帧添加动画,是触发器由失活状态转为使用状态 在这一帧勾选物体状态 3、计算攻击伤害 每一个挂载代码&…

大型语言模型微调的规模效应研究

人工智能咨询培训老师叶梓 转载标明出处 为了解锁大模型在特定下游应用中的全部潜力,通常需要通过微调(finetuning)来适配任务。尽管微调已成为一种常规做法,但关于不同微调方法的归纳偏差,尤其是规模特性的理解仍然有…

CRC16循环冗余校验

代码&#xff1a; #include<stdio.h> #include <stdint.h>#define uchar unsigned char #define uint unsigned int static const uint8_t auchCRCHi[] { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x0…

33.x86游戏实战-喊话CALL

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

CTFHUB—XSS—DOM反射

开启题目 输入以下语句测试一下&#xff0c;发现页面没有弹出窗口显示“flag” <script>alert("flag")</script> 查看页面源代码&#xff0c; 尝试闭合标签 使用下面代码闭合&#xff0c;然后发现闭合成功了 </script><script>alert("…

【Python机器学习】利用AdaBoost元算法提高分类性能——基于AdaBoost的分类

一旦拥有了多个弱分类以及其对应的alpha值&#xff0c;进行测试就变得非常容易了。现在&#xff0c;要将弱分类器的训练过程从程序中抽出来&#xff0c;然后应用在某个具体的实例上。每个弱分类器的结果以其对应的alpha值作为权重。所有这些弱分类器的结果加权求和就得到了最后…

ElementUI元件库在Axure中使用

一、ElementUI元件库介绍 ElementUI 是一套为开发者、UI/UX设计师和产品经理准备的基于Vue 2.0的桌面端组件库。它以其优雅的设计和丰富的组件&#xff0c;极大地提升了Web应用的开发效率与用户体验。ElementUI的组件设计精致且符合现代UI规范&#xff0c;包括按钮、表单、弹窗…

判断用户是否在pwa环境中打开运行?(已安装的 PWA 与未安装的 PWA 网站之间有什么区别?)

前言&#xff1a; &#x1f449;vue3tsvite项目中使用vite-plugin-pwa搭建 PWA 项目&#xff0c;以及如何处理pwa安装图标的显示隐藏 &#x1f449;pwa在iframe下能否显示&#xff0c;以及在iframe下相关问题解析 如何判断用户是否在pwa环境中运行? 根据pwa配置的display-mo…

Captive Portal验证原理

物联网开发系列&#xff1a;物联网开发之旅① WiFi to Ethernet: 树莓派共享无线连接至有线网口&#xff0c;自动通过Captive Poartal验证物联网开发番外篇之 Captive Portal验证原理 文章目录 工作原理技术细节登录页面的实现自动化登录 登录界面的原理主要涉及到Web认证&…

想用matlab画一个3Y轴x-y图,如何实现??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Windows 7和Windows10系统如何关闭重复进入Windows启动管理器的现象?

目录 背景: 方法一:使用命令提示符关闭Windows管理器 方法二:通过系统属性来关闭WIndows启动管理器 两种方法的总结: 背景: Windows 启动管理器&#xff08;Windows Boot Manager&#xff09;是 Windows 操作系统中的一个关键组件&#xff0c;它负责在系统启动时管理和引导…

千字解读《2024年前瞻中国AI大模型场景应用趋势蓝皮书》!直击大模型应用五大挑战:最大痛点在于技术面临“卡脖子”风险

7月30日&#xff0c;由前瞻产业研究院携手华为云、首钢基金、深圳上市公司协会联合发起&#xff0c;深圳市政府指导的“深圳产业会客厅——2024人工智能产业对接活动”圆满举办。 会上&#xff0c;前瞻产业研究院院长徐文强以“中国AI发展的必然与挑战”为题&#xff0c;深度剖…

《python语言程序设计》2018版第6章第25(反素数逆向拼写素数)是指一个将其逆向拼写,我不懂反素数公式看不懂。放弃了。

首先使用之前的确认素数的函数is_prime来进行素数的识别 我在网上看到来一个反素数的公式。在这个公式中我还是不能理解&#xff0c;这些数学问题。 我先把对数学的理解放到一边。 之前的版本我是采用对整数化的素数分成二个或三个的位数。然后经过倒序来显示。 I del before …

GooLeNet原理

一、GooLeNet网络结构 1*1卷积的作用&#xff1a; 实现跨通道的交互和信息整合、卷积核通道数的降维和升维&#xff0c;减少网络参数 全局平均池化层(GAP) 优点&#xff1a;抑制过拟合、GAP使特征图输入尺寸更加灵活 缺点&#xff1a;信息丢失、特征丰富性、梯度信息、复杂…

小米澎湃OS 天气-通用版 V15.0.11.0 丨适配大部分 机型

小米澎湃OS 天气-通用版 APP &#xff0c;版本号 V15.0.11.0&#xff0c;基于最新版本提取&#xff0c;纯 64 位架构。非常纯净&#xff01; 「小米天气通用版 V15.0.11.0.apk」 链接&#xff1a;https://pan.quark.cn/s/e16548df0567

如何实现pxe安装部署

此实验环境&#xff1a;rhel7主机 一、kickstart自动化安装脚本 1、安装可视化图形 [rootlocalhost ~]# yum group install "Server with GUI" 2、关闭vmware dhcp功能&#xff08;编辑-虚拟网络编辑器&#xff09; 3、httpd 1、安装httpd服务 [rootlocalhost …