项目开发流程

项目开发流程

img

👩‍🦳项目立项

估计项目的花费,确定大致的所需开发人员数,确定项目是否可行;

👩‍🦰需求分析

整体过程:

  • 项目背景和目标,即项目的目的是什么
  • 用户需求,即甲方所需要的功能需求,准确记录甲方的要求,防止后期需求不对,项目重做;
  • 功能需求,从甲方的需求中剥离出来功能需求,以及一些必须性的功能(登录注册等)
  • 非功能需求,性能要求,安全要求,可靠性要求,应有一个大致的了解(比如可能需要支持百万并发,可能需要绝对可靠),为下一步设计提供参考。

其他:…

🤲设计

通过需求分析,知道大致的功能,需要对其抽象成业务场景,即拆分成多个独立的业务模块,这些业务和甲方需求比,更加偏向于程序员的理解,例:登录业务,订单管理和支付业务,基础增删改查业务,私信和群聊业务,外卖购买与支付业务,点赞评论业务等等。

对项目中出现的业务模块进行优先级的划分,优先级高的先将人力物力投入进去开发。(通常表现为依赖性较高,用户体验影响较大,风险难度较大,市场需求较高的模块,-比如登录注册,用户聊天等)(小项目对该概念并不深刻,但要知道企业项目中业务是有优先级划分的)

对这些单独的业务进行逻辑探究和分析,制定出较合理的实现方式,然后对这个业务进行模拟实现~~(流程图,时序图的绘制,大型项目最好是要有,有些文字并不直观~~),具体表现为抽离出实现这个业务的具体接口。

在此处对技术进行待选,例如:点赞评论的业务实现,需要使用到redis的缓存功能,那么便引入redis;

再例如,一些多高并发场景,使用go进行开发更便捷等等;最终选出最合适的技术栈和应用;

应考虑极端环境下的实现,以及安全性的实现。

(例如,高并发,高流量,事务,锁等)可以代码中先不加上,但要有这个意识,留有余地,在后期进行优化;

实现这个业务的接口抽离出后,再判断这些接口中涉及到的数据库字段,依次列出这些业务所需要的数据库字段和关联的数据,为建表做准备,分析完全部的业务后,将所需的表进行创建汇总和分析,指定主键,外键等数据,再总体过一遍项目流程以保证项目整体的合理性;

进行项目框架和技术栈的选择,例如对于go-web项目,可能会选择gin中的gin-vue-admin当作框架或go-admin框架,或者自建脚手架(对于成熟开发者还是使用成熟框架的好,有助于学习一个非常完整的框架流开发),在企业中大多会使用企业框架或者成熟的开源框架,以及gorm,mysql,redis等各种技术选型。

之后规范开发文档的编写,以及项目中各种规范化的注意事项和命名的要求,前后端统一文档格式,做到阅读零压力。

开发

分发接口责任到人,各开发人员对负责的接口文档持续更新(推荐使用实时更新的markdown工具记录,例如有道云,共同工作,可以实时查看到各开发人员的接口状态,上级负责人应实时监测,不合理时及时调整),接口开发完成后,后端进行项目接口测试,成功后与前端进行联调测试,压力测试等,完全通过后进行项目上线工作。

之后还有很多过程,如上线,维护,更新等,不在此一一说明。

在实际项目中,需求分析和设计阶段的质量和深度对于整个项目的成功至关重要。如果需求分析和设计做得充分和准确,可以大大减少后续开发和编码阶段的时间和资源投入,提高项目开发的效率和质量。

在高质量的需求分析和设计阶段,开发人员可以更清晰地理解项目的需求和目标,更快地编写出高质量的代码。好的设计可以提供清晰的架构和接口定义,有助于降低开发过程中的复杂度和错误率。

在一个合理的项目开发过程中,应该重视需求分析和设计阶段,并在此阶段投入适当的时间和资源。这样可以为后续的开发和编码阶段奠定良好的基础,以提高整个项目的成功率和效率。

以上观点仅代表个人意见,如有疑问,请在评论区回复。

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

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

相关文章

SQLAIchemy 异步DBManager封装-01入门理解

前言 SQLAlchemy 是一个强大的 Python SQL 工具包和对象关系映射(ORM)系统,是业内比较流行的ORM,设计非常优雅。随着其2.0版本的发布,SQLAlchemy 引入了原生的异步支持,这极大地增强了其在处理高并发和异步…

Windows 的常用命令(不分大小写)

Net user (查看当前系统所有的账户) net user yourname password /add 添加新用户 net localgroup administrators yourname /add 添加管理员权限 net user yourname /delete 删除用户 net user 命令 [colorred]说明:以下命令仅限持管理员…

opencv人脸打马赛克

import cv2def FaceFind(imgPath: str) -> list:image cv2.imread(imgPath)gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)face_cascade cv2.CascadeClassifier(haarcascade_frontalface_default.xml)# 返回人脸坐标列表faces face_cascade.detectMultiScale(gray, scal…

数据结构11:二叉树的链式结构

文章目录 快速创建链式二叉树二叉树的遍历前序、中序、后序层序 二叉树的基本操作二叉树的节点个数二叉树叶节点的个数二叉树第k层结点个数二叉树查找值为x的结点 二叉树基础oj练习单值二叉树检查两颗树是否相同对称二叉树二叉树的前序遍历另一颗树的子树 二叉树的创建和销毁二…

谷雨时节,雨水渐多湿气旺盛,吃什么养生?听听张婉如医生怎么说

谷雨春光晓,山川黛色青。 叶间鸣戴胜,泽水长浮萍。 4月19日21时59分迎来谷雨,雨生百谷,这是谷雨节气的意思,它是春季的最后一个节气,这个时节早晚温差大,空气湿气重,如何养生呢&am…

java在线问卷调查系统的设计与实现(springboot+mysql源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线问卷调查系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于java的在线问卷调查…

电脑便签怎么固定位置 能固定在桌面的电脑便签

在繁忙的工作中,电脑便签是我离不开的小助手。每当灵感闪现,或是需要记录待办事项时,我总会打开便签,快速地记录下来。它就像我电脑屏幕上的一块“记事板”,随时提醒我未完成的工作和即将到来的任务。 但有一段时间&a…

i管家空间不足提醒怎么关闭

i管家的空间不足提醒是为了提醒用户手机存储空间不足,可能会影响手机的正常运行。目前,这个提醒功能是无法直接关闭的。如果您希望减少这类提醒的出现,可以尝试以下几种方法: 清理手机存储:检查手机中是否有不需要的文…

restful请求风格的增删改查-----查询and添加

一、restful风格的介绍 restful也称之为REST ( Representational State Transfer ),可以将它理解为一种软件架构风格或设计风格,而不是一个标准。简单来说,restful风格就是把请求参数变成请求路径的一种风格。例如,传统的URL请求…

Darknet,看过很多篇,这个最清晰了

Darknet深度学习框架:YOLO背后的强大支持 Darknet,一个由Joseph Redmon开发的轻量级神经网络框架,以其在计算机视觉任务,特别是目标检测中的卓越表现而闻名。本文将详细介绍Darknet的基本概念、结构以及它在深度学习领域的应用。…

UE4_动画基础_根运动Root Motion

学习笔记,仅供参考! 在游戏动画中,角色的碰撞胶囊体(或其他形状)通常由控制器驱动通过场景。然后来自该胶囊体的数据用于驱动动画。例如,如果胶囊体在向前移动,系统就会知道在角色上播放一个跑步…

Kivy Pyinstaller Windows 打包

各种报错 ImportErrorWhenRunningHook: Failed to import module __PyInstaller_hooks_0_kivy required by hook for module 三天美好时光啥也没干,就研究这个了。 打包成功,运行应用程序exe闪退的。终于打包成功了。 这所有的原因都是因为我爱你。如果…

小型架构实验模拟

一 实验需求 二 实验环境 22 机器: 做nginx 反向代理 做静态资源服务器 装 nginx keepalived filebeat 44机器: 做22 机器的备胎 装nginx keepalived 99机器:做mysql的主 装mysqld 装node 装filebeat 77机器:做mysq…

谷歌Gemini 1.5 Pro国内怎么用?国内镜像来了

长期以来,许多人向我咨询是否存在一个稳定而高效的全球AI大模型测试平台,这个平台需要不仅真实可靠,而且能够提供稳定和快速的服务,不会频繁出现故障或响应缓慢的问题。然而,当我发现了AskManyAI时,我被其所…

蛋白质治病突变的计算方法(三)

3 用于识别致病突变的特征 文献中使用了几种特征来识别蛋白质中的致病突变。它们大致分为三类:(1)序列,(2)结构和(3)网络,以及它们的组合。图1说明了这三组中的一些重要属性。 图1 用于识别致病突变和热点的重要特征。 基于氨基酸序列的特性…

李宏毅2022机器学习/深度学习 个人笔记(3)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录代码效果不佳时应该怎么做 如下图所示: 接下来探讨,当optimization不佳的时候,如何判断是遇到了鞍点还是遇到了局部最小值点?可以通过多元函数的泰勒…

【大语言模型+Lora微调】10条对话微调Qwen-7B-Chat并进行推理 (聊天助手)

代码:https://github.com/QwenLM/Qwen/tree/main 国内源安装说明:https://modelscope.cn/models/qwen/Qwen-7B-Chat/summary 通义千问:https://tongyi.aliyun.com/qianwen 一、环境搭建 下载源码 git clone https://github.com/QwenLM/Qwen…

是用computed获取vuex数据后,修改数据页面不响应的问题

问题描述: 代码里使用computed获取mapGetters的数据后,直接在页面使用,在methods中更新数据后,控制台打印数据已经更改,但是页面上的数据没有同步更改和响应。 分析: 1.computed是计算属性,所有…

【Linux 进程间通信】管道(三)

文章目录 1.管道的五种特征2.管道的四种情况 1.管道的五种特征 ①🍎匿名管道只能用于有血缘关系的进程之间进行通信(爷孙进程之间可以进行通信),常用于父子之间进行通信; ②🍎管道内部,自带进…

【数据结构】时间复杂度的例题

🎁个人主页:我们的五年 🔍系列专栏:数据结构 🌷追光的人,终会万丈光芒 前言: 这篇文章是关于时间复杂度的一些例题,关于时间复杂度和空间复杂度和算法的计算效率的基本知识点我放在…