
最佳实践
Raybor
不为失败找借口,只为成功找方法!
展开
-
【最佳实践】 - Restful API
概述本文介绍 如何设计 出 易于理解 和 使用的 API, Restful API 最佳实战 .一、URL 设计1. 动词 + 宾语RESTful 的核心思想就是,客户端发出的数据操作指令都是 “动词 + 宾语” 的结构。比如,GET /articles 这个命令,GET是动词,/articles是宾语。动词通常就是五种 HTTP 方法,对应 CRUD 操作:GET:读取(Read...转载 2019-01-31 14:47:29 · 272 阅读 · 0 评论 -
【最佳实践】 - RPC
概述本文介绍如何玩转 RPC, 可以说是 RPC 开发规范, 也可以理解为 RPC 最佳实战.一、接口设计写入的服务保证幂等性,不幂等则要求有排重处理。方法上面要求显式的抛出可能出现的异常,即使是自定义Runtime异常(不使用抛出 Dubbo 的异常,可能引起特殊处理例如重试)。方法名要求含义明确且唯一,不能使用重载方法。自定义对象数据结构要求尽量简洁,尽量不要多层循环嵌套。尽量...原创 2019-01-31 15:17:47 · 446 阅读 · 0 评论 -
【最佳实践】 - Netty
概述本文介绍如何玩转 Netty.一、服务端启动流程通过 bind 方法添加监听器, 用以自动绑定递增端口.attr 方法, 为每条连接增加属性, 能够实现全单例模式. 类似于 request.attr 属性childOption 方法, 关于 TCP 连接的优化: SO_KEEPALIVE 底层心跳 TCP_NODELAY 延迟发送 SO_BACKLOG 等待队列二、...原创 2019-01-30 15:38:47 · 1369 阅读 · 0 评论 -
【最佳实践】 - Redis
概述本文介绍如何玩转 Redis, 可以说是 Redis 开发规范, 也可以理解为 Redis 最佳实战.一、键值设计1. key名 设计(1). 【强制】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突), 用冒号(句号)分隔, 比如: 业务名:表名:id csdn:user:1(2). 【建议】: 简洁性保证语义的前提下, 控制 key 的长度, 当 key...原创 2019-01-30 18:41:33 · 567 阅读 · 1 评论 -
【最佳实践】 - MySQL
概述本文介绍如何玩转 MySQL, 可以说是 MySQL 开发规范, 也可以理解为 MySQL 最佳实战.一、基础规范使用 InnoDB 存储引擎数据库字符集使用 UTF8,校对字符集使用 utf8_general_ci所有 表 、字段 都尽量 添加注释库名、表名、字段名 使用 小写字母,禁止 超过32个字符 ,须见名知意非唯一索引 以 “idx_字段1_字段2” 命名,唯一索引 ...原创 2019-01-30 20:07:16 · 194 阅读 · 0 评论 -
【最佳实践】 - 接口规范
概述本文介绍如何玩转 MySQL, 可以说是 MySQL 开发规范, 也可以理解为 MySQL 最佳实战.一、基础规范规范点说明推荐方式等级文档唯一性文档出处来源(人员和设备)必须统一,建议文档服务器,统一发布人。重要接口环境要明确给出各个环境的调用地址。重要接口文档版本必须有版本编号,名称+版本,版本必须能区分历史版本。 Pegasus f...原创 2019-01-31 11:46:40 · 691 阅读 · 0 评论 -
【最佳实践】 - Maven
概述本文介绍如何玩转 Maven, 可以说是 Maven 库的使用规范一、release库(发布库)使用规则及场景release库是存放稳定版本包的仓库,线上发布的程序都应从release库中引用正确版本进行使用私服中release库使用规则如下:release库不允许删除jar;release库不允许同版本更新jar包(即同一个版本jar包只存在一个);release库上传的...原创 2019-03-01 16:55:09 · 294 阅读 · 1 评论