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优化与索引使用、集群负载均衡、分库分表等)
  • 大家可以拟一些主题,后期有时间时做一些工作相关的、产品技术相关的分享会
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚持是一种态度

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值