项目开发流程:需求分析、架构设计、架构搭建

2022.4.4项目开发流程

主题:ATM+购物车作业

  • 项目开发流程
  • 项目需求分析
  • 项目架构设计(重点)
  • 项目架构搭建

1、项目开发流程

公司中的项目流程几乎都可以分为以下五个步骤

ps:假设我们是一家外包公司,专门给别人编写软件

1、需求分析

首先,见客户之前架构师和研发经理会大致先了解一下客户的需求,然后初步琢磨除一套比较容易编写的流程

然后,产品经理带着开发部门老大(架构师、研发经理)去客户公司寻求客户的需求

之后,在与客户交谈中引导客户按照提前设想好的流程提需求

ps:这么做的目的是为了防止客户提出一些无厘头的要求!

2、架构设计

架构师会根据具体的业务需求选择:

(1)开发的编程语言

(2)项目后端框架

(3)项目所需数据库(主库、从库)

(4)项目组织结构(软件开发目录规范、自定义结构);

项目功能划分(将一个大项目拆分成多个小项目)

(5)项目的报价(考虑开发人员数量,天数等:如一个程序员一天按照1500算;

最后还需要产品经理叠加报价(其他部分人员开销等)

3、分组开发

(1)将项目拆分后的多个小项目交给不同开发部门下的多个编程人员编写

(2)每个人可能只会写很小的一部分(降低复杂度,提升开发效率,缩短开发周期)

ps:码畜>>>码农

4、项目测试

交给测试部门全面测试,注意语法错误不要提交导测试部门才被发现,这样可能会被扣绩效甚至三次之后直接卷铺盖走人!!!

5、交付上线

将项目打包给运维人员即可

二、项目需求分析

以ATM+购物车作业为例

项目大致需求:

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
- 额度15000或自定义 - 支持多账户登录 - 可以查看账户余额 - 可以提现(可自定义手续费比例) - 提供还款接口 - 支持账户间转账 - 记录每月日常消费流水 - 实现购物商城,买东西加入购物车,调用信用卡接口结账 - 提供管理接口,包括添加账户、用户额度,冻结账户等 - ATM记录操作日志 - 用户认证功能

提炼项目功能:

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
1.用户注册 2.登录功能 3.查看余额 4.余额提现 5.账户充值 6.金额转账 7.查看流水 8.添加购物车 9.查看购物车 10.结算购物车 11.管理员功能

项目大概技术栈:

复制代码
  • 1
  • 2
  • 3
1.python基础核心编程 2.函数(装饰器) 3.常见内置模块(os,sys,json)

三、架构设计

1、引入:

在小白阶段的我们,写程序是按照从上到下的顺序去编写

学习函数之后,开始把功能封装起来,组成代码块

在学习模块之后,学会调用不同py文件和模块

2、疑问:

为什么项目开发要分那么多文件,还要导来导去?

答案是:分工合作提高效率,节省时间

3、三层架构:

因此,常见的软件架构大致分三层:

浏览器>>>后台>>>数据库

第一层:只做简单的数据展示及交互

第二层:整个程序的核心层,具体业务逻辑

第三层:数据存取

即:前端>>>后端>>>数据库

4、三层架构的优点

(1)扩展性非常强

(2)分工合作,效率极高

(3)测试和修改更方便快捷

基于上述观点,可将ATM+购物车作业也分为三层架构:

复制代码
  • 1
  • 2
  • 3
1.展示层:只展示功能选项,基本逻辑 2.逻辑层:所有业务逻辑 3.数据层:给逻辑层提供数据存取

四、分组开发

1、搭建项目目录

基于三层项目架构,再结合软件开发目录规范,可以将ATM+购物车作业搭建项目目录如下:

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
start.py # 启动文件 conf >>settings.py # 配置文件 lib >>common.py # 公共部分 core >>src.py # 这里将src作为用户交互端,只做简单展示和逻辑 interface >>user_interface.py >>bank_interface.py >>shop_interface.py # 根据功能不同将核心框架分为三个py文件 db log readme.txt

2、功能框架搭建

使用空函数

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
def register(): pass def login(): pass ...... # 将项目主要功能展示出来
posted @   马氵寿  阅读(961)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开