自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 页面设计三步走

作为一个后台类管理系统的开发,经常没有前端开发的人力资源,很多项目不得不自己兼做前端设计和开发。我之前的做法都是直接开始用Axure画原型图,想到什么就画什么,因此经常返工,设计效率很低。最近看了一个国外设计师的帖子,模仿了他页面设计的“套路”,感觉挺实用,现在把这个三步走的套路总结一下。

2019-11-27 19:25:38 483

原创 学习架构师的思考方法

这是一篇架构师思考方法论的学习笔记,原文对什么是架构,什么是架构师,架构师如何定义和分析问题进行了比较深刻的探究。

2019-11-20 21:50:36 363

转载 MySQL索引背后的数据结构及算法原理

本文的研究对象时MySQL数据的BTree索引,内容分为三个部分: - 第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础 - 第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题 - 第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略

2019-11-19 20:29:20 233

原创 RabbitMQ 消费者确认(Consumer Acknowledgements)

RabbitMQ关于数据安全有两个特性:[发布者确认(Publisher Confirms](https://blog.csdn.net/Lamb_IT/article/details/102649484))和消费者确认(Consumer Acknowledegements)。前者用于MQ服务器(broker)告诉发布者传递消息的结果,它是消息协议的拓展内容;后者用于消费者告诉MQ服务器消息传递的结果,是消息协议包含的定义。本文主要介绍RabbitMQ对消费者确认的实现。

2019-11-03 22:51:13 3272 1

原创 RabbitMQ 发送确认(Publisher Confirms)特性

摘要RabbitMQ的发布者确认(Publisher Confirms)特性用以实现消息的可靠投递。当在某个通道(channel)上开启发布确认后,客户端发布的消息会被MQ服务器(broker)异步的确认。本篇主要介绍3个基于发布确认特性,保证被发布消息安全到达MQ服务器的方案,并比较各自优缺点。

2019-10-20 16:52:44 1578

转载 RabbitMQ 必须掌握的基础概念

网上将RabbitMQ入门概念的很多,这篇是我看到最棒的,简单清晰

2019-10-19 17:30:43 170

原创 分布式事务之可靠消息最终一致性方案实践

如果你选用的消息中间件事rocketMQ,可以直接使用它的事务消息方便的实现分布式事务。但如果你用的是rabbitMQ或kafka这些没有事务消息的中间件,就需要自己来设计分布式事务的实现方案了。一种经典的方案是本地消息表,通过本地事务+定时任务来实现最终一致。本文介绍另一种方案,通过自己实现可靠性消息服务,来保证消息发布方和消费方的最终一致。

2019-09-22 22:48:29 515 1

原创 分布式事务之本地消息表实践

分布式系统之前除了同步方式通过RPC框架调用接口,还有很多通讯是异步的方式通过MQ中间件完成的。本文主要介绍后者实现分布式事务的一种方案,核心思想是通过记录本地消息日志表的方式,借助本地事务和MQ消息中间件的可靠性来实现分布式系统中多个节点间状态的最终一致。

2019-09-22 10:16:48 1179

原创 分布式事务之TCC方案实践

分布式系统间交互主要有同步的远程调用和异步的消息传递。本位主要讨论同步远程调用的方式中,如何保证调用系统A和被调用系统B间状态的最终一致。

2019-09-15 10:22:08 876 1

原创 JAVA8新特性-lambda表达式

一篇让你搞懂lambda表达式、函数式接口、方法引用、Optional这些JAVA8的新特性及相互间关系。

2019-09-04 21:03:17 651 2

原创 Java8 新特性-Stream API概念及用法详解

Stream API提供了一系列对集合的强大操作,配合lambda表达式,可让集合处理非常简洁清晰。本文主要介绍了Stream流的用法,包括集合接口(Collection)与流(Stream)接口的互相转换,Stream流的父类BaseStream接口中的方法介绍、串行流/并行流和无序流、缩减操作、映射操作。

2019-09-04 21:01:36 815 1

原创 SpringBoot 自动配置学习笔记

本篇SpringBoot自动配置学习笔记纲要:1,我们用SpringBoot的理由是因为它可让开发者更加快速高效搭建Spring应用,背后是“约定优先于配置”的理念和自动配置技术;2,自动配置技术实现原理3,自定义自动配置示例

2019-08-24 11:57:50 329

转载 Spring AOP 基本概念

AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理。本文就主要讲解AOP的基本术语,然后用一个例子让大家彻底搞懂这些名词,最后介绍一下AOP的两种代理方式:以AspectJ为代表的静态代理。以Spring AOP为代表的动态代理。

2019-08-03 17:01:32 248

翻译 ReactJS: Props与State区别

`props`与`state`的差别是React新手最常问到的问题?它们貌似相似,但用法其实完全不同。那它们的区别是什么呢?

2019-08-02 21:39:47 446

原创 Java动态代理学习笔记

摘要Java动态代理是很多其他框架和技术(如Spring AOP)的基础。学习JAVA动态代理的技术对于理解Spring AOP的底层原理很有帮助。学习一项技术,要弄清楚这个技术解决了什么问题,它的使用示例及它的工作原理。这篇学习笔记也沿着这个思路,分三个方面介绍:代理是什么,它是干什么用的,动态代理是什么;JAVA 动态代理使用示例JAVA动态代理实现代理及动态代理代理模式什么...

2019-07-29 22:25:56 228 1

原创 【Spring IOC容器学习笔记】四——容器拓展接口

了解Spring容器的扩展点可以帮助我们完成特定任务,如何精通 Spring 就看你有没有掌握好 Spring 有哪些扩展点。Spring Ioc 容器主要有这么几个拓展点:BeanFactoryPostProcessor和BeanPostProcessor,他们分别是在构建 BeanFactory 和构建 Bean 对象时调用;还有就是 InitializingBean 和 DisposableBean, 他们分别是在 Bean 实例创建和销毁时被调用。用户可以实现这些接口中定义的方法,Spring 就

2019-07-18 21:17:49 223

原创 【Spring IOC容器学习笔记】一——什么是Spring IOC容器,它是怎么工作的

摘要Spring IOC容器是Spring的核心功能,它构成了Spring框架的骨骼结构,没有它就没有上层MVC、AOP等高级特性。这节的学习笔记主要回答下面几个问题:Spring IOC容器是用来做什么的?什么是bean?Spring IOC容器是如何工作的?Spring IOC容器与BeanFactory和ApplicationContext的关系是什么?Spring IOC容...

2019-07-18 21:15:06 1000

原创 【Spring IOC容器学习笔记】三——依赖注入的方式

Spring 为何如此流行?我们用 Spring 的原因是什么?想想你会发现原来 Spring 解决了一个非常关键的问题:他可以让你把对象之间的依赖关系转而用配置文件来管理,也就是他的依赖注入机制。依赖注入(dependency injection)的过程指类被实例化后,由容器负责将它的依赖(一起工作的其他类)准备好,提供给被实例化的bean使用。本节学习笔记主要关于两种常用的的**依赖注入的方式**:基于构造函数参数和基于属性setter方法注入,及让开发更轻松**的自动装配技术**(Autowired

2019-07-18 21:12:15 257

原创 【Spring IOC容器学习笔记】二——详解Spring bean

摘要bean对于Spring就如同object对于OOP,这一节详细整理下关于bean的基础知识:bean 作用域bean 命名bean 实例化

2019-07-18 20:55:50 229

原创 【Spring MVC 源码学习一】 核心流程

流程说明直接看源码理解起来会比较吃力,先放张图在这,让我们对核心处理流程有个初步印象。前端控制器dispacherServlet是spring mvc框架的核心类,控制整个请求处理的逻辑,由它调用HanlderMapping 、 HandlerAdapter、ViewResolver和View组件的方法完成请求的处理流程。开始读源码1,准备工作首先spring mvc框架把刚用户请求交...

2019-07-03 21:12:06 165

原创 【Spring MVC 源码学习二】HandlerAdapter及适配器模式

适配器模式介绍适配器(adapter)模式是一种结构型模型,也叫包装器(warpper)模式,主要用于将现有的接口转化为客户类(client)希望的代码,实现对现有类的复用。涉及到对象有:Target( 目标抽象类) : 目标抽象类定义客户所需接口, 可以是一个抽象类或接口, 也可以是具体类Adapter( 适配器类) : 适配器可以调用另一个接口, 作为一个转换器, 对Adapte...

2019-07-03 21:07:00 380

原创 【Spring MVC 源码学习三】SpringMVC中的策略模式

策略模式ViewResolver源码解析总结

2019-07-03 21:02:20 787

原创 java api 中获取JVM信息相关方法的Demo

摘要为了保障业务系统的连续性,需要监控服务器JVM内存使用情况,防止因系统异常出现宕机。JDK自带的Java VirsualVM是个很好地,监控及分析JVM状况的工具,但生产环境并不适用。生产环境数据监控我司使用的是Grafana平台,通过清洗来自日志文件的指标数据,生成实时图像。这就需要通过编码的方式获取JVM的信息,然后打印到日志里。java.lang.management包提供类方法恰好可...

2019-02-21 00:14:22 1562 1

原创 Node.js 模块机制原理简介

Node.js的模块机制可以让我们很方便地将js代码按照功能进行封装。在一个模块中我们使用require()方法引入另一个模块,使用module.exports向外暴露方法、对象、变量供其他模块引用。新建.js文件的时候,并没有引入require方法和module变量,这些是从哪里来的呢?module对象在 Node.js 模块系统中,每个文件都被视为独立的模块,并且有一个module...

2018-09-06 20:36:41 502

原创 vue 组件异步加载实践

1,使用vue异步组件,可以将复杂页面的框架代码和子组件代码拆开,优先加载框架代码,显著提高页面加载速度;2,组织复杂页面的代码时,可以考虑对于打开首屏时不需要渲染的子组件,使用`v-if`控制其只在需要的时候被渲染。

2018-09-02 13:18:00 8374 2

原创 提高代码质量,从观念到实践--Clean Code 培训总结

上周末参加了我司组织的代码质量培训,来自Oracle北京的工程师刘敏老师给我们将了Oracle的代码规范,他很自豪的说Oracle最久的产品已经40年了,如今仍能够不断迭代投入市场,与高质量的代码是分不开的。课后我自己总结了下,分享给大家。

2018-08-30 22:02:49 800

原创 前端MOCK--使用 json-server 和 faker.js 模拟后台API

最近公司的私有RAP服务器挂了,也没有人维护,学习使用轻量的json-server+faker.js 自己搭建mock server,并整理了下本文算是简单的使用说明。1. 什么是json-server2. 什么是REST api3. json-server 快速教程4. faker.js快速教程

2018-08-01 22:24:53 2285

原创 前后端协同开发神器--接口管理工具RAP使用入门

本文安利了一个阿里前端团队出品的API管理工具--RAP。通过本文你可以了解:1,RAP是什么及这类工具有什么作用2,RAP使用入门3,项目中使用RAP的实例

2018-07-29 21:24:46 6328

翻译 Spring Boot学习笔记1:Spring, Spring Boot中的@Component 和@ComponentScan注解用法介绍

学习Spring Boot时,看到了一篇总结的很好的文章,翻译过来作为学习笔记。通过本文你将学到:Component Scan是什么?为什么ComponentScan很重要?项目中Spring Boot会对哪些包自动执行扫描(Component Scan)?如何利用Spring Boot定义扫描范围?项目启动时关于Component Scan的常见报错

2018-07-04 21:31:51 99677 13

原创 Vue Router URL查询参数改变时页面重新获取数据方案(考虑IE兼容性)

需求背景最近开发的一个项目中,在B系统使用<iframe>嵌入A系统的案件详情页面<!--B系统页面--><iframe src="http://xxx.systemA.com/#/showCase?caseNo=01"></iframe>B系统通过改变caseNo的值来切换不同的案件信息遇到的问题在A系统的showCa...

2018-07-01 18:11:28 6406 3

空空如也

空空如也

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

TA关注的人

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