开发人员行为规范手册
本文记录所有在团队工作中遇到的问题及管理开发员工的行为规范
想到哪儿写到哪儿,有空再整理!
产品篇
人人都是产品经理
不管你所处岗位与角色,把自己当成产品经理,那么你就是产品经理。
# 与富人为伍,你就不会变的太穷。
Agile Software Guide 先启阶段
# 敏捷开发必经阶段(磨刀不误砍柴工)
1、确定项目的利益相关人;
2、沟通确定系统的业务期望与愿景;
3、确定项目的当前状态与未来状态;
4、确定项目的业务范围;
5、需求分解;
6、史诗级(Epic)到主故事级(Master)逐层划分;
7、确定迭代开发需要的主故事列表。
Brook’s Law 布鲁克定律
为已经延期的软件项目增加人手只会让项目延期得更厉害。
# Sprint 能用里程碑解决的问题就不要使用瀑布流
Jira使用总结
Jira 配置时,先配置 问题>问题属性>`状态`和`解决方式`
先配置工作流,再配置工作流方案,把工作流关联到方案中
尽量不要改Jira默认工作流及问题状态。
开发篇
SQL服务注意事项
1、所有的sql文件不得使用中文字命名;
2、sql文件的位置必须放到 统一的Git目录对应的项目模块下,例:.dev/sql/service-name/table-name.sql;
3、sql中不得使用DROP、RENAME命令,限制使用表或字段约束;
4、sql文件以表名命名,如果是对字段的新增以“表名.列名.sql”命名,例:table-name.user_id.sql;
5、update 语句必须有where条件,并严格注明业务原因;
6、SQL文件的产生必须经过三名及以上开发人员的评审会确认;
7、SQL文件在合并到测试分支时必须在生产中提前准备。
日志是调试的最佳方式
日志输出是一门手艺
# CT(Computed Tomography)
导入表格数据如何增强体验
Excel批量导入时必须是以字符串输出至表单,导入时后台不验证,提交时以前端验证数据。
# 减少后台压力,客户端能做的事,尽量在客户端做。服务端只做最终验证一致性
Postel’s Law 波斯托定律 或 鲁棒性法则
保守输出,自由输入。
# 厚积薄发
如果出现500异常开发必须无条件立即解决
500异常表示服务异常,表示程序的承载力不够,不能处理当前的服务。
# 这个异常多数因为没有做到 Postel’s Law 波斯托定律
Knuth’s Optimization Principle 克努特优化法则
过早优化是万恶之源。
# 先写代码,然后找出瓶颈,最后才修复!
枚举类从中间插入新值在有些业务系统中是灾难
如果你的枚举类在数据库的映射类型是int,那么默认存入的是枚举的ordinal()数值(从0开始)
从顶部或中间插入新值将带来原来的数据状态全部错位的现象,这是一个灾难
高效的理解路径的讯息
优雅的URI路径能让开发者减少困惑,URI定义规格:版本号/业务路径/动作
业务路径:必须从大到小、"后者是前者的" 的关系例如: “模块名/分类名/子类名” 词性上一定是名词单数形式;
仅允许使用小写字母、数字、中划线,除模块名可以使用中划线、其它名禁止使用;
动作:保存、删除、更新、取一个、取列表、分页取列表、提交、上传、审批…… 英语词性上一定是动词原型;
路径参数不能使用数字以外的内容 正例:/user/page/1 能不用路径参数就不用路径参数
例:
v1/order/item/save
v2/person/address/remove
v3/member/profile/update
v4/job/task/get
v5/document/title/list
v6/auth-model/client/page
v7/cart/item/submit
v8/item/attachment/upload
运维篇
测试中的数据状态管理
使用一组固定的,有代表性且无害的数据,保证可以在每种环境中都能使用。
每个业务点都需要判断数据是否无害冗余且困难,则不如在关键节点上做到无害化处理。
测试任务不过夜
如果有一个测试任务在下班前产生 那么必须当天完成流转,不然为严重延误开发及上线进度。