12 2019 档案

摘要:什么是开闭原则 对修改封闭,对扩展开放 当我们增加一个功能的时候,应该在已有功能上扩展,而不是在已有功能上进行修改(修改模块、类、方法) 违反开闭原则的例子 下面有个监控的例子 当发生错误或者qps到达某个阀值的时候发出预警 public class Alert { /** * 存储告警规则 可以自 阅读全文
posted @ 2019-12-31 17:47 意犹未尽 阅读(445) 评论(0) 推荐(0) 编辑
摘要:什么是单一职责 一种理解是:把模块看作比类更加抽象的概念,类也可以看作模块。另一种理解是:把模块看作比类更加粗粒度的代码块,模块中包含多个类,多个类组成一个模块。 一个类只负责完成一个职责或者功能。也就是说,不要设计大而全的类,要设计粒度小、功能单一的类。换个角度来讲就是,一个类包含了两个或者两个以 阅读全文
posted @ 2019-12-30 16:27 意犹未尽 阅读(217) 评论(0) 推荐(0) 编辑
摘要:需求 实现一个接口鉴权的功能,实现思路 1.调用端下发一个appId和秘钥 2.调用端将每次传过来的参数url后面都要带上appId+时间戳同时根据url+appId+时间戳+参数+秘钥进行MD5加密后通过token参数传过来 3.获取时间戳判断是否过期(假定1分钟) 如果过期鉴权失败 4.服务端解 阅读全文
posted @ 2019-12-30 09:44 意犹未尽 阅读(362) 评论(0) 推荐(0) 编辑
摘要:贫血模型 贫血模型例子 现在传统的MVC开发基本上都是贫血模型 如以下代码 我们工作中经常使用 ////////// Controller+VO(View Object) ////////// public class UserController { private UserService use 阅读全文
posted @ 2019-12-27 14:54 意犹未尽 阅读(1551) 评论(0) 推荐(0) 编辑
摘要:主流的几种编程模式 面向对象编程、面向过程编程、函数式编程 面向过程编程的语言: Basic、Pascal、C 什么是面向对象编程 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 面向对象编程语言是支持类或对 阅读全文
posted @ 2019-12-23 10:15 意犹未尽 阅读(253) 评论(0) 推荐(0) 编辑
摘要:死锁 错误例子 解决方式 防止死锁 通过设置超时时间 不要使用setnx key expire 20 不能保证原子性 如果setnx程序就挂了 没有执行expire就死锁了 reidis2.8版本提供 set lock:key1 true ex 5 nx 方式 保证了 setnx+expire原子性 阅读全文
posted @ 2019-12-18 15:11 意犹未尽 阅读(1499) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示