自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 OAuth2角色

同程旅游项目月总结 技术架构 开发流程 项目工程结构 项目结构 里程碑 整个项目中,关键节点的里程碑计划。 搜索模块 搜索 枚举获取添加项 路径不是search驼峰格式,用- 枚举值在一个表里面,表结构合理 1后端接口添加、删除都是 2获取筛选4个用一个接口 3酒店搜索接口 不用restful风格,接口名清楚 对表设计、接口 酒店列表数据库 自己定义document就是ES里面的 点击就有酒店ID,搜索酒店系统 给经纬度接口就行 附近: 不做3级里面详细东西(价格、星级)(筛选:不做)(医院、机场

2022-05-04 11:23:10 1345

原创 浮点数据的精度丢失

计算机二进制存储计算浮点数时有精度丢失问题: 0.2= 0.125+0.0625+0.007825+0.00390625... 即2^-3+2^- 4+2^-7+2^-8... 即.00110011001100110011... 0.2是一个无限循环的二进制数所以十进制小数转换成二进制小数的时候会丢失精度 如下例: 十进制转换为二进制:1.8 = 1.1100 1100 1100 1100 1100 110 01100110011001100110011001101 浮点数有.

2021-11-26 11:05:02 403

原创 系统健壮性

架构四大目的: 1、确定系统边界 2、确定后续设计原则 3、确定模块关系,及模块与环境之间关系 4、确定非功能性需求(可用性、健壮性、安全性) 面向失败架构: 1、网络抖动 甚至是断网,如何提示,恢复,切换 2、服务超时 任何服务都要考虑超时没有返回的可能性 3、弱电断电 多云,多地部署能力 4、洪峰流量 流量打爆服务器后的架构健壮性 在软件生命周期中,也会出现各式各样的问题,我们需要通过面向失败的设计,防范和监控已知的确定性风险及未知的不确定性风险: 1) 任何环境都

2021-11-25 09:57:44 1335

原创 分布式锁概述

分布式锁简介: 在同一个JVM内部,大家往往采用synchronized或者L ock的方式来解决多线程间的安全问题,但是在分布式架构下,在JVM之间,那么就需要一种更加高级的锁机制, 来处理跨JVM进程之间的线程安全问题,解决方案就是:使用分布式锁。 Redis分布式锁原理: Redis分布式锁机制,主要借助setnx和expire两个命令完成 setnx: 当key不存在,将key设置为value ,存在不做任何操作,返回0 expire: 设置key过期时间 加锁...

2021-11-21 16:21:31 805

原创 JWT权限管理

JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519)。定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。 JWT组成 传统的token认证 JWT认证 JWT使用 1、授权中心和资源中心持有私钥和公钥 2、私钥颁发令牌 3、公钥验证令...

2021-11-20 15:40:52 780

原创 单元测试与系统安全规约

单元测试的AIR原则 【强制】宏观上,单元测试整体必须遵守AIR原则 A:自动化(automatic) I:独立性(independent) R:可重复性(replaceable) 单元测试的BCDE原则 (微观上,编写代码时遵守的原则) B:border 边界值测试 C:correct 正确的输入,并得到预期的结果 D:design 与设计文档相结合 E:error 证明程序有错 功能性测试之边界值测试 1、边界点定义 2、边界值分析 SQL注入攻击防御 ..

2021-11-17 10:55:26 2908

原创 OAuth2

OAuth2角色 OAuth2是目前最流行的授权协议,用来授权第三方 OAuth2授权模式 授权码模式 简化模式 密码模式 客户端模式 单体架构:cookie session机制 分布式架构方案一:session共享 分布式架构方案二:基于token 为什么要用OAuth2 Cookie session和token的区别 1、cookie是不能跨域的,前后端分离分布式架构实现多系统SSO非常困难...

2021-11-15 17:23:28 269

原创 集合和并发

HashMap Collectors.toMap()方法不能传入重复的值 [强制]在使用java.util.stream.Collectors类的toMap0方法转为Map集合时,一定要使用含有参数类型为BinaryOperator ,参数名为mergeFunction的方法,否则当出现相同key值时会抛illeqalStateException异常。 hashMap里面key、value都可以为null,但是merge的时候就不允许了。Colector.toMap()方法会调用merge方法..

2021-11-13 11:02:22 574

原创 Java代码避坑

浮点数据的处理 注意:浮点数表示的不是一个准确的数字 存储货币时,均以最小货币单位且整型类型来进行存储。 0.1 默认是double类型,有效位数均为53 0.1f 有效位数23 (double)e 会在flout类型上补0 浮点数据类型的问题:精度丢失 浮点数通过科学计数法表示,是二进制形式的科学计数法,所有底数为2 有效位数其实前面省略了一个1,共24位(有效数字保存的只有小数部分) 十进制科学计数法规格化: 整数部分:1-9 二进制科学计数法规格化: 保持小..

2021-11-11 13:58:15 2029

原创 编码设计规约

好的编码规约的意义: 1、减少代码的维护成本 2、改善可读性 3、提高团队开发的合作效率 4、锻炼出更加严谨的思维 5、身心愉悦 命名风格与代码格式——两个要求 1、命名体现代码元素特征 (1)抽象类命名使用Abstract或Base开头 (2)异常类命名使用Exception结尾 (3)测试类命名以它要测试的类名开始,以Test结尾 (4)类型或中括号紧挨相邻来定义数组 (5)枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开 2、命名最好望文知义 (1)

2021-11-07 11:16:46 263

原创 技术架构选型

技术选型 为什么要进行技术选型? 1、降低开发成本 2、提高研发效率 微服务架构的产生 1、第一代单体应用,所有的模块打包到一起部署运行; 例如:打包一个War包放到一个Tomcat下运行,这种架构也叫巨石型应用架构。 在开发小型项目上有独特优势: 易于调试、部署,运维方便。 缺点: 1、不可靠。任何模块的一个bug,可能拖垮整个应用。 2、单维扩展。只能通过运行更多的服务器水平扩展,而不同的应用服务对资源的需求不同。 3、不可持续发展。引入新的框架或语言需要重构所有业务模块,往往

2021-11-06 16:24:28 718

原创 应用分层和maven

应用分层 隐藏下层业务逻辑的复杂性 提高系统的组件化和可维护性 为什么要分层? 可扩展性 可维护性 计算机领域的任何问题都可以通过增加一个中间层解决 MVC框架模式 view:面向客户(服务员)(jsp、模板、页面) controller:全盘统筹(dispatcherservlet) model:对页面支持的数据,对数据处理的业务逻辑(厨师)(service、pojo类) (解耦:可维护、可扩展) 通用逻辑层(manager层):相当于一个共用的service层,.

2021-11-04 16:21:44 283

原创 异常与日志

异常 异常应当描述导致当前异常发生的原因; 根据异常栈快速定位到异常发生的位置; 结合异常描述和异常栈解决异常。 Java异常处理流程 Java异常处理机制 Java异常体系 try-catch-finally try with resource 所有代码都放到catch块中,不好排查异常发生在哪个代码中。 可能抛同一个异常,可以放到同一个catch块中。 Optional优雅防止NPE 级联调用时易产生NPE(空指...

2021-11-01 17:55:02 219

原创 SQL规约

规约目的: 1、规范大家的行为,方便沟通。 2、规约是经验的总结,防止再踩坑。 建表强制规约 表、字段命名: 1、使用字母、数字、下划线 2、禁止数字开头 3、禁止两个下划线中间只出现数字 4、不使用复数名称 5、禁用保留字(desc、order) 6、是否概念的字段,使用is_xxx的方式命名(is_accept) 7、所有字母小写(反例:userName) 数据类型: 1、小数类型用decimal (decimal整数、小数部分单独存储,不会出现随机的值。不用float、

2021-10-30 18:01:01 1026

原创 UML用例图和类图

UML常见关系: 用例图 构成:参与者、用例、关系。 概念: 参与者:外部用户、进程或其他系统的理想化概念。 用例:外部可见的一个系统功能单元,用例名字是一个动词短语字符串,比如,处理订单。 关系: 1、关联关系:带箭头或不带箭头的实线表示。 2、泛化关系:带空心三角形作为箭头的直线表示,箭头端指向超类。 3、包含关系:含有关键字<<include>>的带箭头的虚线表示,箭头指向被包含用例。 4、扩展关系:含有关键字<<extend.

2021-10-28 18:02:50 2041

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除