简单说下软件开发流程,不一定适合所有公司和项目
对于程序员来说,需求明确,逻辑合理,写代码也是很舒服的事,就怕中途穿插各种需求变更,甚至同时开展好几项目,这样就容易出错,一个两个项目做好再做别的项目会比较好。
一般项目开发流程也简单说下,不一定适合每个公司和项目
1、项目需求整理,这一般是产品干的,当然开发人员和测试人员也可以参与其中,提出哪些能做,哪些有困难,哪些不能做,
2、初步的需求通过后立项,开始正式的需求评审,这时候有疑问要尽早提出来,多几个人,多点思路,尽早过滤一些问题。不要怕麻烦,多开几个会,把问题提出来,把思路理清,减少以后的问题。产品确认没有大问题后开始画原型图,
3、产品完善需求和原型图后开评审会,根据需求和原型讨论具体应该要做成说明样子,实现哪些功能,前后端提出可能存在的问题,以及解决方案。
4、经过多次评审后项目要求逐渐清晰,这时候有项目主程序员编写设计文档,如果项目小也可以省略。
5、功能模块的分发给各开发人员,可以由主程序眼设计数据库,也可以由各开发人员根据自己的功能设计好数据库表给主程序员整理。
6、创建git,开始分发的功能模块开始协同开发,有关联关系的可以各自协调,一般是先写好接口给前端使用,对于不能及时提供的也可以先定好数据格式。让前端先写好页面。
7、开发的时候可以分模块分阶段让测试边参与进来,可以每周提一个版本,也可以每天提一个测试版,看项目组情况,让产品也经常看看,参与测试,确保和产品思路一致。
8、项目经过产品、开发、测试人员的努力完工,产品确认开发线测试线没有问题,产品验收签字,这时候就可以准备上线了
9、上线规则各家公司也不相同,有的只要经过产品就可以上线,有的运营同意就能上线,还有的必须要公司高层签字才能上线。
10、经过各种磨难,项目终于在凌晨两点全体研发人员的守候下上线了,当然,这个也是看是不是影响用户,如果是初次上线没有用户,随时都能上线,
11、上线后测试没问题,回家睡觉。上线有问题,全体加班处理问题,如果比较悲催项目大线上问题多可能要搞几天。
12、上线一段时间后,发现有小问题,不影响用户正常使用,那就一周或者两周或者一个月集中处理好后上线修复问题,如果问题大那就加班,再凌晨上线,并经过测试,没有问题就下班,有问题就加班处理。
所以很多时候程序员加班多就是因为BUG多,还有就是项目时间紧。
- 作者简介
- 软件产品开发流程
- 杂谈
- php程序员未来路在何方
- 基于TP6开发的AUTH权限管理后台代码gitee地址+完整代码注释详解
- 开发常用的工具
- 一切为了访问速度
- 主流负载均衡
- 常用的功能方法库
- 老袁的珍藏
- 算法里面重要但不常用的函数
- 常用函数
- 获取当前访问的完整url地址
- 截取中英文字符串
- 获取ip地址
- 截取中文字符串函数
- 无限分类
- 省市区三级联动
- 点赞功能
- 多维对象转换为多维数组
- 随机字符串
- 获得url根域名
- 常用正则表达式
- php中防止SQL注入
- php之Apache压力测试
- php-memcached详解
- MySQL的基础
- tcp/ip协议
- PHP中使用Redis
- PHP解决中文乱码
- 获取当前时间和时间转换
- 生成二维码
- 富文本编辑器-UEditor
- auth权限设计
- 导出数据为excel表文件
- PHP生成树
- PHP计算时长
- 强制下载
- 加密和解密
- PHP获取文件扩展名(后缀)
- 在数据库中随机获取20条记录的方法
- 跨域
- PHP设计模式之单例模式
- 提取字符串中的数字
- 点击刷新验证码
- 随机考试功能
- 生成二维码和水印
- 图片远程下载和合成
- PHP判断访问设备是手机还是PC
- 阿里大于短信发送
- php中把unicode编码转化为中文
- 二维数组排序
- 二维数组合并
- 正则数组多匹配替换
- 对称加密解密
- 生成树
- 定时任务
- oss
- 秒转换为时间格式
- 字符串相似度
- 错误日志
- 错误日志log
- 获取完整URL
- 获取股票信息
- base64_图片上传
- xml_json_array
- 隐藏手机号中间
- curl put方式上传文件
- 过滤掉emoji表情
- PHP header 强制返回状态码
- 保留两位小数点
- aes加密解密
- rsa加密解密
- excel导入
- 经纬度近距离计算排序
- PHP正则
- 匹配提取
- 关键字匹配
- 根据IP地址查询 国家 省 市 运营商
- PHP判断来访是搜索引擎蜘蛛还是普通用户
- 图片等比例压缩
- 验证身份证号码
- 手机号码验证
- base64图片
- 下载远程文件保存到本地
- excel
- emali邮件发送
- 获取指定目录下的所有目录
- 下载excel
- 获取文件名后缀
- 远程下载文件到本地目录
- 关闭浏览器继续执行
- 随机生成卡通头像
- 字符转义处理
- php自动生成数据字典
- 判断访客是否是蜘蛛
- 验证输入的邮件地址是否合法
- 验证输入的手机号码是否合法
- 腾讯云短信验证码
- 极光推送
- CURL
- 判断是否为手机访问
- 两个经纬度之间的距离
- xml 数组的互相转换
- 过滤字符空格等
- 产生随机字串
- 微信公众号支付等函数库
- 获取html里面的img src
- base64图片上传
- 图片与图片与文字合成
- 浏览器不预览强制下载图片
- 改变图片大小
- 前端插件
- 非常好用的一个弹出层框架
- 流应用APP开发
- 文件上传--FormData
- 文件上传--filereader
- 获取文件信息
- JQuery控制下拉列表
- JS制作各种统计图表
- 多图上传
- 倒计时
- pdf.js
- Ueditor富文本
- 上拉加载
- 获取扫码枪的数据
- 获取多选
- 获取AJAX pormise
- 移动端调试神器vconsole
- CDN
- H5播放器
- DPlayer
- 语音播放,文字转语音播放
- three.min.js-3D全景使用DEMO
- jq图片裁切
- 数据库
- redis
- 什么是redis
- LINUX 下的安装
- 配置
- php-redis
- redis在PHP里的基本使用
- 队列,入队和出队
- redis缓存穿透、缓存击穿、缓存雪崩区别和解决方案
- mysql
- 索引
- 删除索引
- linux-mysql
- 登陆
- 数据库三范式
- mysql-表锁行锁
- 锁的使用场景
- 优化技巧
- 区别
- memcache和redis的区别
- 重点-mysql优化技巧
- 基本语法
- 极简PDO
- 设计和使用规范
- mysql主从
- 模糊匹配批量替换
- 嵌套查询
- 数据库:drop、truncate、delete的区别
- 查询存在重复的数据
- 添加字段
- 经纬度近距离分页排序
- mysql 用法 Explain
- 数据库中间件
- 服务器
- linux
- linux安装
- centos firewall防火墙
- 常用命令
- 乌班图
- 在虚拟机里面创建linux ubuntu发现的问题
- 防火墙-ufw
- 部署ssh服务
- 安装LNMP
- 安装图形界面
- 文本浏览器
- vsftpd
- svn搭建和部署
- linux切换用户
- ssh-root免密登陆
- ssh-普通用户登陆
- 远程数据库连不上
- linux常见问题
- nginx
- https-ssl
- 负载均衡
- nginx.conf详解
- nginx隐藏index.php
- lnmp
- lnmp-mysql
- 装php7.2
- 安装5.6.13
- redis扩展
- apache
- Apache接入PHP_win
- APACHE安装
- 乱七八糟
- laravel5.5
- 访问路由
- 向视图文件输出数据
- 数据库操作
- laravel 中添加自定义函数
- laravel 里 composer 的使用
- 程序秘钥
- 创建控制器文件
- 创建视图文件
- Echarts
- 3D音乐GL图
- 拖动栏
- mui_app
- ajax
- 返回上一页并刷新
- phalapi
- phalapiDB
- git
- git常用命令
- git常见错误
- app
- 支付宝APP支付
- workerman+tp3.2.3 信息发送
- php即时通信
- 原生SOCKET
- workerman+thinkphp3.2.3
- 获取配置文件
- thinkphp5.0
- 入口文件
- 访问路径
- 隐藏index.php
- 路由
- 新建模块
- 页面输出
- 打印SQL语句
- SQL
- 搜索条件
- 方法
- 分页
- 引入extend和vendor
- 访问量
- thinkphp5
- 安装TP5
- 创建模块
- 模板输出
- thinkphp5.0-API后台处理与命名空间
- php报错及解决方法
- SQLSTATE[HY000] [2002]
- 文件无法上传
- thinkphp3.2.*
- 多字段模糊查询
- thinkphp sql
- php安全-攻击和防御
- xss防御代码demo
- PHP 预防CSRF、XSS、SQL注入攻击详解(综合版)
- jwt介绍和基本使用demo示例
- 对文件上传攻击的防方法
- PHP框架
- thinkphp6
- 单应用和多应用使用场景
- 基于TP6的单用多模块内容管理后台
- 前置中间件和后置中间件的区别
- TP6的AUTH权限
- validate验证器的使用
- 数据库语句
- 自动化脚本
- 清空缓存
- TP6分页
- 全局过滤
- think swoole
- laravel8
- 上传文件
- 注册全局公共函数库
- PHP RPC
- 什么是RPC,RPC好处,常用的RPC框架
- 常用的RPC框架在thinkphp中的使用示例
- Elasticsearch搜索引擎
- ElasticSearch 介绍及应用场景
- ElasticSearch安装和在php的基本使用
- Elasticsearch操作基类
- Elasticsearch添加数据
- Elasticsearch删除数据
- Elasticsearchsql转换DSL es执行语句
- Elasticsearch多条件查询
- Elasticsearch查找10000条数据之后的数据
- Elasticsearch多字段搜索
- php爬虫
- 爬虫示例
- 乱码
- docker
- docker学习思路
- 项目中遇到的一些问题
- 数据验证处理-重要
- 链接复用的坑
- 后台功能设计的一些坑
- 一些数据处理的坑
- 泛解析导致的一些问题
- 服务器迁移
- 数据库迁移
- 宝塔redis启动异常
- php页面异常检测代码
- 前后端分离项目里的NGINX配置
- 服务器端口不通
- 微信H5开发
- 微信开发概要
- 微信开发的基本原理
- 获取基本信息
- 模版推送
- 公众号模板消息推送接口
- 微信判断用户是否关注微信强制关注
- 微信SDK支付
- 被动消息回复
- 判断是否是微信访问
- curl上传图片素材
- 被动消息回复-文字、图片、音频、视频、图文
- 分享
- 鹅厂SDK支付
- 接入服务器
- 自定义菜单
- 网页授权
- API_JSAPI支付
- 微信支付到零钱
- 登录分享
- 微信开发/微信授权后用户头像保存到服务器实现方法
- 微信小程序
- 微信小程序目录结构
- 创建
- 带参数跳转
- 获取点击事件并传参
- 文件预览和下载
- 扫描二维码
- 修改标题
- 底部导航栏
- 富文本的处理
- 微信小程序组件开发及注意事项
- 微信小程序组件结构和代码位置
- 使用微信小程序组件和传参
- 微信小程序授权登录
- 获取手机号码
- 获取小程序accesstoken
- 多选按钮
- uniapp
- uni-app上拉加载
- Grafika图像处理
- 添加文字水印
- 图像基本处理
- 图像特效处理模块
- 图像属性处理
- 图形绘制
- css
- 水平居中
- 垂直居中
- 浮动在底部
- vue
- vue-ant
- 创建栏目
- 编译
- 富文本图片上传
- 列表页
- 编辑页
- vue3
- api请求
- 常见业务逻辑设计
- 采购业务逻辑设计
- 数据脱敏
- PHP数据脱敏实现
- 隐藏手机号中间四位
- 姓名和手机号脱敏
- 项目管理
- 需求文档
- 设计文档
- 功能排期
- 中台
- 私有仓库 gitlab 部署
- 一些开发中常用到的工具
- 项目API工具mindoc
- 一段小爬虫
- 抖音小程序
- 抖音短链接跳转微信小程序
- 抖音小程序登录
- 抖音小程序支付
- 抖音退款
- 前端笔记
- 横向滑动滚动块
- 标签页