Java web产品开发经验分享
文章目录
- 产品研发流程
- 需求对接与变更
- 需求来源
- 输入输出
- 解决方案编写
- 需求变更处理
- 研发过程管理
- 功能开发
- 代码审查
- 知识库
- 测试与版本
- 测试要求
- 版本管理
- 经验分享
- 保持学习
- 几条工作经验
- 后期分享计划
前几天在公司应领导要求搞得一个分享,也在这里分享下。
产品研发流程
- 需求对接
- 研发过程
- 测试与版本
需求对接与变更
需求来源
- 来自客户的直接需求,日常售后运维收集的
- 参考资料,其他公司的竞品
- 与项目部、售后部门等沟通,需求调研
- 公司产品规划
- 主要原则,不闭门造车,不想当然,参考已有成熟产品或业界规范,或者最新的政策文件
输入输出
- 需求规格说明书,或者简单的说明文档(因为后期肯定有变动,文档要重写)
- 功能脑图、原型图 Axure RP,或者html地址
- 产品预期的目标
- 产品与相关研发人员,进行需求说明评审会议
- 会议前,相关文档提前发给相关人员(UI、开发和测试),供阅读思考
- 会议时,产品经理按需求点逐一讲解,待讲解完一个大的功能点,大家提问讨论,统一对需求的理解
- 一个简单的会议纪要,记录一下大家有矛盾的点
解决方案编写
- 需求会议后,研发人员针对需求编写解决方案
- 解决方案包括功能模块划分、表结构设计、实体类设计等,产出一个解决方案文档,包含对需求的理解,功能实现方式,包括一些业务流程图、架构图、部署图、SQL脚本等(可以使用Visio、亿图图示、PowerDesign等工具进行设计)
- 如果是完全的新项目,可能还需要考虑技术选型,例如使用哪种编程语言、开发框架、数据库等,是否需要集群部署,一般与团队原有知识体系保持一致
- 解决方案,经研发负责人评审后,进行任务分解分配,到具体人员
- 根据现有资源情况,进行大致工期规划,列一个时间表
- 项目进度工期可以使用project等管理,明确任务时间点,人员等
- 需求可以使用JIRA、禅道等工具进行管理,可以将资料作为附件放在记录里
- 注意:一般根据项目情况,要按照1.5倍时间预估,因为总有突发情况,而且前期的估算不一定准确
需求变更处理
- 对于新产品研发,或者客户项目开发,需求变更无法避免
- 主要是新的东西,大家没法一开始就能明确其所有特性,后续可能有一些更好的想法,或者发现现有设计有重大缺陷
- 需求变更,则需要对变更需求进行对接、评审(对现有框架、工期等的影响)、解决方案编写、工期计划的调整
- 对于需求变更处理,要有原则,并不是所有的变更都要立即接受处理
- 对于重大缺陷,或越往后期改动成本越大的,可优先处理
- 对于一些不影响使用的优化或需求,可按列入写一个版本计划
- 所有的需求变更,需要在JIRA或禅道里记录,新增一条记录
研发过程管理
功能开发
- 重点任务,及时跟踪,根据需要加班完成
- 进行阶段性短会,或者周会,每周要有项目进度说明
- 前后端分离,要做好API接口维护,要尽量保证一个稳定环境和数据,供前端调试
- 针对部分疑难问题,短时间无法处理掉的,及时汇报,大家一起解决
- 宜早不宜迟,前中期多干点,留出冗余时间处理突发情况,尽量不要卡着时间点去完成任务
- 及时维护JIRA或禅道里的任务状态,任务完成情况作为一项考核指标
- 不能简单粗暴使用,因为有的关键任务可能要好几天完成,小任务可能半小时完成,所以数量和按时完成率也只是参考
代码审查
- 编码规范,约定大于配置,阿里编程规范、数据库规约等
- 合理的类和变量命名,合理的注释,合理的方法长度
- 代码静态审查 sonar cube
- 人工审查,代码走读
- 审查完成后,整理出现的问题并宣讲,大家一起学习下,避免类似问题
知识库
- 产品相关文档,包括需求文档、设计文档、用户手册等
- 功能模块的文档,开发人员编写和使用,包括功能实现逻辑,在什么位置、有哪些类和表、有哪些接口等,可作为阶段性的工作文档,减少后续维护成本
- 疑难问题的文档,记录遇到的问题,解决过程,解决结果等
- 知识分享文档,产品中用到的关键技术,或者新技术,进行简单的介绍,包括特性、使用方式等
测试与版本
测试要求
- 首先要按层功能自测,自己测试通过,再交由前端联调或测试人员测试
- 保留必要的测试数据,接口测试要保留好输入输出(可以使用postman等工具)
- 对测试人员的测试要持续跟进,对于影响测试的问题优先处理,其他缺陷或优化,后续处理
- 对于多变的阶段,来不及使用JIRA禅道等管理工具时,可以使用腾讯在线文档,使用表格管理
- 对于稳定期,可以使用JIRA禅道等管理工具,对问题追踪
- 测试介入越早越好,最好在需求阶段介入,方便更早的开始编写维护测试用例,测试完成后要有测试报告
- 如果条件允许,一个大的功能模块完成后,可以让测试人员对这个功能先行测试
- 至少两轮完整测试,一轮集成测试,一轮测试问题修改后的回归测试
版本管理
- 代码主线分支管理
- 产品代码管理
- 项目代码管理
- 发布版本管理(程序包、文档、SQL/shell脚本)
- 部署文档(自动化部署脚本,数据库初始化脚本)
经验分享
保持学习
- 学会利用互联网,开源免费的各种资料,源码
- 推荐CSDN、B站、腾讯课堂、开源中国等
- 学习的广度和深度,根据需要针对性学习,学了要用起来,要有总结和记录
- 有计划、有一定强度的持续学习,日积月累
几条工作经验
- 输入参数校验,前端做了,后端也要做,可以借助框架的validate,也可以自己写
- 避免在循环里访问数据库、打开文件等,防止对资源的过度占用
- 数据库操作要谨慎,删除修改操作要谨慎,对数据有备份计划,脚本定时备份
- 要有运维日志,对重要数据的增删改一定要有操作记录
- 程序输出的日志级别,刚上线日志级别可以调低点,要关注磁盘剩余空间,定时压缩,适时清理
- 提升开发效率,每天要完成的任务列个列表,按优先级和紧急程度顺序完成,实在无法按时完成要及时主动的和上级领导沟通
- IT行业加班是常态,几乎所有公司都无法避免,要尽量按时吃饭。当你加班加到身体不舒服的时候,例如头疼、胸闷、胸口痛,赶紧回家休息,如果情况严重,及时去医院或者打120
后期分享计划
- DevOps自动化运维(docker、k8s)
- clickhouse大数据组件
- 分库分表在sass平台的应用
- 产品国产化(使用国产操作系统、应用服务器、数据库等)
- elasticsearch搜索引擎使用
- 微服务如何应对高可用、高并发(redis缓存、SQL优化与索引使用、集群负载均衡、分库分表等)
- 大家可以拟一些主题,后期有时间时做一些工作相关的、产品技术相关的分享会
Java web产品开发经验分享相关推荐
- java计算机毕业设计Web产品管理系统MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计Web产品管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计Web产品管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构 ...
- java计算机毕业设计Web产品管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计Web产品管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计Web产品管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...
- 分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等
分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等 我自己也从里面学习到了很多东西! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servl ...
- java web分享ppt大纲 -- servlet容器简介
今天在公司分享了java web的ppt,把ppt大纲放在这里,希望可以帮助需要的人 servlet容器简介 定义 狭义上的,servlet容器为java Web应用提供运行时环境,负责管理servl ...
- openjweb1.8 java web应用快速开发平台产品白皮书
因图片较多,需要图片请到资源中下载,不需要资源分. OpenJWeb(1.8) Java Web应用快速开发平台 产品白皮书 编者:OpenJWeb ...
- Java web 2022跟学尚硅谷书城项目完整开源分享
Java web 2022跟学尚硅谷书城项目完整开源分享 项目介绍 项目类图 sql建表和添加数据 界面展示 用户登录界面 用户注册界面 首页 添加购物车 我的购物车 我的订单 功能说明 项目介绍 跟 ...
- java计算机毕业设计Web产品管理系统源码+数据库+系统+lw文档
java计算机毕业设计Web产品管理系统源码+数据库+系统+lw文档 java计算机毕业设计Web产品管理系统源码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...
- 带源码下载—校园表白墙—基于Java Web,Mysql,jsp—设计报告分享
项目代码路径下载:https://download.csdn.net/download/weixin_42868605/20686663 1.系统功能说明: 发布新的表白墙消息. 删除自己发的消息. ...
- 简单的Java web(JSP+Sevlet+Java+mysql)源码分享
引言:Java web项目主要采用mvc的的设计思想,系统主要采用java+jsp+servlet+mysql+eclipse实现,具有登陆.分页.导出excel,增删改查等功能,适合初学者,满足基本 ...
最新文章
- 什么是带宽?—Vecloud微云
- php v9 分页静态,PHPCMS V9自定义栏目伪静态实现方法(列表页/分页/内容页)
- java jsp Struts2.X 文件上传
- 新装ubuntu9.10后配置全过程(很多常见问题的解决方法)
- 使用dict和set
- MySQL运维系列 之 如何监控大事务
- Java编程学习中必须掌握的13个核心技术
- java ajax jquery分页插件_jquery ajax分页插件的简单实现
- linux驱动程序文件,急,linux驱动程序是对的为什么生成不了.o驱动程序文件
- 调用iphone客户端进行授权发微博的方法--使用友盟组件
- ASP.NET身份验证机制membership入门——API篇
- DOM元素节点属性outerHTML和innerHTML
- 例2.2 圆柱体的表面积
- 射频光纤传输及宽带射频光纤传输系统介绍
- 推荐的这22个高频 CLI 工具,确定不收藏吗?
- 学习编程,以“上帝视角”创造和改变这个世界
- SPI应用——W25Q128串行FLASH
- Windows 10 (Multiple Editions), Version 1607
- Oracle VirtualBox备份、恢复虚拟机
- Windows PowerShell与命令提示符的比较