自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

顺仔的小窝

纯自娱自乐

  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 一款强大的API接口文档管理工具(Smart-Doc + Torna)

Smart-Doc + Torna的生成和管理接口文档解决方案只需写好注释、规范代码,就能通过对注释和实体类的解析来生成示例详尽的接口文档,适用范围很大;由于其对代码零侵入的特性,不用改动业务代码就能使用,对旧代码也很友好。

2022-12-20 12:00:30 2681

原创 union和union all的性能差别居然这么大

UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。

2021-12-22 23:10:45 3281

原创 union和union all的性能差别居然这么大!!

最近做个项目,要把我们系统中的用户数据,按照别人系统的格式要求生成数据文本,导入到别的系统中。我们系统的用户数据主要存放在两个表中,用户信息表(user)和用户附加信息表(extend)。...

2021-12-22 20:35:51 4345

原创 SQL规范落地实践

本文由707同学供稿~1.概述数据库在各类生产系统中是不可或缺的中间件,SQL代码作为操作数据库的标准语法,在日常开发中使用比例非常高,几乎每个批次都会有产品涉及,但各开发人员对SQL开发技能的掌握程度参差不齐。为了规避开发技能不足,而引发SQL质量问题的风险,在最大程度上规范开发方法,由数据库专家团队从历史经验和业界优秀实践中总结出一套SQL代码开发规范。然而,无法落地的规范,只能是空中楼阁,为了能够让规范顺利落地,我们通过将规范内化在工具中,将一条条规范条文具象化、可验证化,以检查开发人

2021-08-28 23:41:51 652 1

原创 动手撸一个SQL规范检查工具

背景近几年公司人员规模快速增长,超过半数开发人员均为近两年入职的新员工,开发技能与经验欠缺,之前踩坑的经验也未能完全了解,出现了几起因慢SQL而引发的生产性能问题。为了更好地指导产品SQL...

2021-04-02 10:30:18 3033 5

原创 一文读懂mysql主从复制机制

作为一个关系型数据库,MySQL内建地提供数据复制机制,这使得在使用时,可以基于其复制机制实现高可用架构等高级特性,从而使得MySQL无需借助额外的插件或其他工具就具备适用于生产环境。这是...

2021-03-18 11:00:00 198 1

原创 企业级DevOps实战案例-移动APP持续交付实践

本文由团队内大瑶同学撰写。引言移动App具有更新频繁的特性,这一点,从各大App在应用市场的版本发布频率可见一斑。高频发布意味着迅速迭代和交付,这对需求、开发、测试、运维的效率提出了更高的要求。那么,在快速变化的互联网环境下,如何在保证质量的前提下,提高App的交付速度?这是业界共同面临的问题。DevOps提供了解决该问题的答案,它倡导尽可能多地对软件构建过程中的所有步骤进行自动化处理,也就是构建自动化流水线,以提高效率、缩短开发周期。在当今的IT领域,DevOps倡导的持续交付理念已经被普遍接受,

2021-03-01 22:50:25 568

原创 企业级DevOps实战案例--移动APP持续交付实践

本文由团队内大瑶同学撰写。引言移动App具有更新频繁的特性,这一点,从各大App在应用市场的版本发布频率可见一斑。高频发布意味着迅速迭代和交付,这对需求、开发、测试、运维的效率提出了更高的...

2021-02-26 16:22:19 398

转载 SOLID架构设计原则

最近通读了《架构整洁之道》,受益匪浅,遂摘选出设计原则部分,与大家分享,希望大家能从中获益。以下为书中第3部分 设计原则的原文。设计原则概述通常来说,要想构建—个好的软件系统,应该从写整洁...

2021-02-10 17:03:38 607

原创 如何组织一场JAVA技能大练兵

近期,公司为了锻炼开发人员技能,举办了一场涵盖多个技术线的技能大练兵,我有幸受邀负责java技术方向的出题和评审工作。下面从以下几个方面回顾下整个过程:题目设计程序要求测试方法题目设计题目设计主要考虑以下几点:技术演进需求: 在公司系统云迁移的战略背景下,我们的应用即将从原来传统的虚拟机部署向PAAS云环境进行大规模迁移,需要开发人员掌握云环境的开发技能,应用开发框架需要从原来的SpringMVC+dubbo升级为SpringCloud服务治理框架。新老员工兼顾: 目前公司的开发人

2021-01-02 15:12:57 163

原创 多地多活与单元化架构

背景在业务发展到一定阶段之后,任何因故障而导致的服务中断都会带来巨大的损失。为了提高系统的伸缩能力与高可用能力,我们都不断的在努力消除系统单点瓶颈。如使用应用集群是为了解决服务层的单点问题,使用主从数据库是为了解决数据库层面的单点问题。尽管我们使用微服务架构,很好的解决了服务治理与监控问题,使得少数服务器出现故障仍不影响整体服务质量。但是由于所有的设备都存放在同一个机房内部,对于机房级的故障是无法承受的,如机房断电、火灾、地震等,造成的后果是灾难性的。虽然机房内部很好的解决了单点故障,但是机房本身却是单

2020-11-03 11:28:41 1291 6

原创 分布式事务的概念及实现方案

基本概念事务由多个计算任务构成的一组具有明确边界的工作集合。事务当中可能包括接口访问、网络通信、数据获取和处理。严格的事务实现应该具备具有原子性、一致性、隔离性、持久性四个特性。原子性(Atomicity):一个事务中的任务要么全部完成,要么全部失败。没有中间状态。隔离性(Isolation):不同事务之间的操作互不影响,并发的事务其中间状态对其他事务不可见。持久性(Durability):事务一旦完成,则状态永久有效。一致性(Consistency):事务涉及的资源或者数据在事务前后遵循某种

2020-10-27 19:28:37 698

原创 Redis持久化漫谈

喜欢请点关注,文末有福利!往期推荐事件驱动架构的用户成长体系搞懂dubbo的SPI扩展机制聊聊跨域的原理与解决方法Netty实现自定义通信协议随机数使用不当引发的生产bugZooKe...

2020-07-09 12:15:30 155

原创 聊聊跨域的原理与解决方法

背景在最近的项目中,遇到这样一个场景:合作方开发H5页面并部署在合作方的服务器上,但页面中嵌入了我方的SDK,SDK会直接调用我方的接口,如下图:但是控制台中却会收到如下报错:Access to XMLHttpRequest at 'http://example1.com/test' from origin 'http://example2.com' has been blocked by CORS policy: Response to preflight request doesn't pass

2020-06-20 23:48:44 1411

原创 搞懂dubbo的SPI扩展机制

引言SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。在谈dubbo的SPI扩展机制之前,我们需要先了解下java原生的SPI机制,有助于我们更好的了解dubbo的SPI。java原生的SPI先上例子:定义接口Animal :public interf

2020-06-14 12:57:11 414 1

原创 基于事件驱动架构的用户成长体系

背景概述用户成长体系通俗的来讲就是会员经验金币系统,通过量化的方式来衡量用户对平台的忠诚度、共享度等,同时提供一系列的激励机制,刺激用户留在平台上。简单来讲,成长体系的作用就是“获客”、“活客”。对于用户来说,一个好的用户成长体系能够提升用户的主动活跃,用户也可以从体系中获得成就感、特权等利益。比如京东的京豆可以用来抵扣下次消费,QQ超级会员能让用户享受不一定的尊贵体验。对于平台来说,通过用户成长体系可以了解用户对产品的使用情况,有助于了解用户的组成情况,可以作为后面精细化运营的基础。同时,成长

2020-06-07 18:19:56 343

原创 Netty实现自定义通信协议

概述在网络编程中,无论使用netty还是其它的socket通讯框架,都是通过TCP或UDP传输二进制流。发送方把要发送的对象转化成二进制流发送出去;接收方把接收到的二进制流转化为对象进行处理。为了能让接收方和发送方能对同一个二进制流有相同的认识,双方必须提前约定好一个协议,即对象如何转化为二进制流,二进制流如何转化为对象,这样通信双方才不会产生误解。自定义通信协议在 easy-im 项目中...

2019-03-10 11:39:56 2706

原创 easy-im:一款基于netty的即时通讯系统

介绍easy-im是面向开发者的一款轻量级、开箱即用的即时通讯系统,帮助开发者快速搭建消息推送等功能。基于easy-im,你可以快速实现以下功能:+ 聊天软件+ IoT消息推送基本用法项目分为easy-im-client、easy-im-server、easy-im-common三个模块。服务端:执行mvn package后生成easy-im-server.tar.gz,解压后至./...

2019-01-27 22:38:37 725

原创 随机数使用不当引发的生产bug

前几天负责的理财产品线上出现问题:一客户赎回失败,查询交易记录时显示某条交易记录为其他人的卡号。交易的链路如下:出现该问题后,我们对日志进行了分析,发现主站收到的两笔流水号完全相同,然而主站却没有做重复校验,将两笔订单(A和B)都发往基金系统,基金系统做了重复校验,收到A之后开始处理,收到B之后直接报错返回,A处理完后又正常返回。但是主站根据流水号更新数据库状态,却将两笔订单更新错了...

2018-10-02 13:57:17 1380

原创 基于ZooKeeper实现主从协作

主-从模式的模型中,主要包括三个角色:主节点:主要负责监视新的节点和任务,分配任务给可用的从节点;从节点:通过注册自己,确保主节点看到它们可以执行任务,收到主节点分配的任务后...

2018-09-26 14:31:38 555

原创 ZooKeepe系列(3)--基于ZooKeeper实现主从协作

主-从模式的模型中,主要包括三个角色:主节点:主要负责监视新的节点和任务,分配任务给可用的从节点;从节点:通过注册自己,确保主节点看到它们可以执行任务,收到主节点分配的任务后,执行并记录状态;客户端:创建新的任务并等待系统响应。1.Zookeeper节点介绍现通过ZooKeeper的API完成简单的主从协作。在此之前,需了解下ZooKeeper中节点的基本概念。节点的类型分为...

2018-09-26 14:01:29 597

原创 ZooKeepe系列(1)--分布式系统的基石

分布式架构有以下几点普适性的共性需求: 1. 提供集群的集中化的配置管理功能,可以不重启就让新的配置参数生效,类似与配置中心 2. 简单可靠的集群节点动态发现机制,便于动态发现服务,动态扩展节点 3. 简单可靠的leader选举机制 4. 提供分布式锁 zookeeper的数据结构整体上可以看作一颗目录树,其中每个节点被称作ZNode...

2018-09-21 20:16:10 192

原创 ZooKeepe系列(2)--基于ZooKeeper实现简单的配置中心

ZooKeeper节点的类型分为以下几类: 1.持久节点:节点创建后就一直存在,直到有删除操作来主动删除该节点 2. 临时节点:临时节点的生命周期和创建该节点的客户端会话绑定,即如果客户端会话失效(客户端宕机或下线),这个节点自动删除 3. 时序节点:创建节点是可以设置这个属性,ZooKeeper会自动为给定的节点加上一个数字后缀,作为新的节点名。数字后缀的范围是...

2018-09-21 20:03:14 484

原创 基于ZooKeeper实现简单的配置中心

ZooKeeper节点的类型分为以下几类: 1.持久节点:节点创建后就一直存在,直到有删除操作来主动删除该节点 2. 临时节点:临时节点的生命周期和创建该节点的客户端会话绑...

2018-08-30 17:17:18 217

原创 android摇一摇功能实现

android摇一摇功能是通过手机中的加速度传感器实现的。当加速度大于某一值时,我们认为手机发生摇动,进而进行更多的处理。功能实现主要有以下几个步骤:1.添加权限<!--重力加速度传感器权限 --><uses-permission android:name="android.hardware.sensor.accelerometer"/>2.获取传...

2017-02-04 16:10:24 5641

原创 android画图并实现撤销功能

1.在画线过程中,以down事件的点为起点2.如果以up事件的点为终点,监听up事件,执行画线操作,那么在手指滑动期间,是不执行画线操作的,只有在手指抬起的瞬间,才会画线,这样画出来的线是不准确的,由于在滑动过程中没有画线,所以线的最终位置可能和我们想要的结果有些偏差

2017-02-02 23:15:38 4713 3

原创 android实现截屏功能

android实现截屏功能该方法主要利用SDK提供的view.getDrawingCache()方法

2017-02-02 21:58:23 361

开发者体验将成为企业核心竞争力.pdf

⽤户体验(UX) 是指⽤户在使⽤产 品、系统或服务中的 感知和反应。 开发者体验(DX)是以开发者为⽤户,关注他/她在⼯作过程中的感知和反应。 开发者体验(DX)是以 开发者为⽤户,将⼯作过 程中的技术⽀撑与组织⽀ 撑看作产品与服务,关注 开发者在使⽤中的感知和 反应。

2020-02-03

java 秒表

用java写的秒表,有开始 继续 停止 重置 新建 等功能,功能比较强大,非常适合新手看看

2012-05-23

空空如也

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

TA关注的人

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