-
1. 个人经验总结
- 需求评估
- 确认清楚流程中的每个细节、依赖点、逻辑不合理的地方、漏洞、含糊不清处、技术实现不了的或者难点。
- 设计
- 分为概要设计和详细设计
- 考虑性能、安全等非功能性需求
- 可扩展性
- 平衡好近期可扩展性和长期可扩展性。没有必要为了很久以后或者不大可能出现的情况预留可扩展性设计。
- 先想要要成什么样子和效果,再考虑方案,不然会白做的。
- 由于软件经常要升级,所以要考虑新代码逻辑对旧代码和数据的兼容(比如删除了一些菜单选项),避免出错。即使是web应用,也有缓存会导致问题。
- 工作量评估
- 先实事求是的细分任务,并各自给一个比较有把握的工作量,单位不用很细,以半天为单位即可。
- 要考虑到技术难点。
- 不要考虑大的可能的需求变动,太大的需求变更就要另外谈时间和工作量了,甚至要不要做。
- 加在一起后,最好留个百分之二三十的buffer时间,避免意外的技术难题、不大的需求变更、请假等。
- 可以这样建task break down
- 按功能划分成多个相对独立的task
- 最好工作量至少在一天以上的,太小的可以合并成一个task,起一个“其他”或者“优化”之类的名字。
- 如果一个大功能在多个release中分步完成,可以在task名字中加上“Phase 1 - ”之类的前缀。
- 单元测试
- 修复code review的comments
- 修复测试中发现的问题
- 文档
- 设计文档
- 序列图。描述业务流程逻辑、微服务之间交互关系。
- 数据库设计,如表(表及字段的划分、表名、字段名、字段类型及长度)、主外键关系、索引等。
- RabbitMQ等消息队列设计。
- Redis等缓存设计。
- 代码
- 代码整理重构可参考1. 个人经验总结 - 代码整理重构
- 代码审查(Code Review)。
- 互相之间要大概了解做的需求。
- 代码基本完成(包括开发者自己做的单元测试和代码重构)后再做。
- 提前发出Pull Request请求,审查者要在基本了解需求的基础上,提前看下代码和准备想法。
- 如果改动不太大或者人不在一起的话,可以不用开会,直接提comment或者私聊。
- 大改动可以开会一起看。
- 其他
- 不论是前端还是后端开发,首先要逻辑清楚,条理清晰。
- 比如前端开发时,如果要实现刷新数据时保留滚动条位置等特殊功能,一定要先想好在哪里、在什么时机保存滚动条状态、恢复滚动条状态是合理的,是逻辑上没有漏洞的。
-
相关阅读:
java.lang.NoClassDefFoundError: org.junit.runner.Runner
SpringMVC 八大注解
spring @autowired使用总结
Git使用入门
N21_栈的压入弹出序列。
N20_包含min函数的栈
N19_顺时针打印指针
N17_判断树B是不是树A的子结构
N16_合并两个排序链表
N15_反转链表后,输出新链表的表头。
-
原文地址:https://www.cnblogs.com/wyp1988/p/12204639.html
Copyright © 2020-2023
润新知