自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一群专业码农的笔记本

一群有专业精神的码农,一起记录下一起走过的路,踩过的坑,读过的书。

原创 浅谈Spring AOP的原理和应用

浅谈Spring AOP的原理和应用 1.AOP简介 Aop(Aspect Oriented Programming)大家应该都知道这是面向切面编程思想,主要能够为我们在不影响原来的功能的前提,为软件横向拓展功能。简单来说,把对象中一些公用的行为抽取出来,减少代码冗余性,还可以将业务代码和系统功能...

2020-07-11 17:02:41 11 0

原创 浅析Java方法反射原理
原力计划

1. 前言 1.1 目标 java程序员日常开发经常使用到反射技术,所以本文就是要讲解一下java的方法反射,让大家更好了解反射的性能. 1.2 读者收获 2. 代码示例 2.1 示例代码 public class ReflectionTest { public static int ...

2020-07-05 21:42:05 90 0

原创 《程序员修炼之道--从小工到专家》读书笔记

《程序员修炼之道--从小工到专家》读书笔记注重实效的哲学-让你的用户参与与权衡注重实效的途径-可撤销性基本工具小结 前段时间看完了《程序员修炼之道–从小工到专家》这书。该书没有涉及什么很深奥的技术,或者有特别复杂的设计,都是一些来自经验的总结。它涉及的内容比较广,涵盖了整个软件开发过程中需要注意的...

2020-06-27 18:05:53 376 0

原创 Mockito的使用及原理浅析

Mockito的使用及原理浅析 在微服务横行的年代,一个服务可能依赖了若干个其它服务,而这些被依赖的服务,又极可能依赖了别的服务,于是构成了一个复杂的依赖链。而日常开发中,经常会苦恼于某某上游接口没数据而所使得UT达不到预期的目标,所兴现在已经有了多种Mock Toolkit,很好的解决了这一痛点...

2020-06-26 21:54:14 117 0

原创 数据重压下的一点随想

记得刚来唯品的时候,遇到一位信仰基督教的产品同事,这里说到基督教,没有特别的含义,或者这是对这位产品最贴切的形容词吧,毕竟现在他已经献身基督教,把基督教当做第一职业,也可能是因为这是我第一次遇到信仰基督教的产品吧。每次跟他讨论需求,他开口第一句话总是,这个需求可大可小,在我的记忆中,好像他所有的需...

2020-06-22 00:15:47 96 0

原创 用java编写基于selenium的方式抓取豆瓣读书书籍内容

用java编写基于selenium的方式爬取豆瓣读书书籍内容爬虫的早期感想处理思路顺序需求选型实践源代码selenium设计模式访问入口 爬虫的早期感想 很久以前,生活中使用c#和java分别写过网页游戏外挂,通过语言中内置的浏览器控件进行爬取数据,并发送新的指令,非常有意思,既能研究爬虫相关技...

2020-06-21 08:20:02 108 0

原创 IT搬砖员如何认识能力圈并如何突破自我

  这两天我老婆追剧<<怪你过分美丽>>,周五刚好陪着她看了两集,内容让人耳目一新,特别是主演秦岚,给我留一下深刻印象,特此我还特地百度了一下秦岚,从《还珠格格》里温婉柔弱的知画到《一帘幽梦》自卑自怜自暴自弃的绿萍,再之后《延喜攻略》里温婉动人,和蔼大气的富察皇后到现在的莫...

2020-06-14 22:36:29 122 0

原创 开发常用算法-哈希算法
原力计划

前言 程序员对哈希算法应该都不陌生,比如业界著名的MD5、SHA、CRC等等;在日常开发中我们经常用一个Map来装载一些具有(key,value)结构的数据,利用哈希算法O(1)的时间复杂度提高程序处理效率,除此之外,你还知道哈希算法的其他应用场景吗? 1. 什么是哈希算法? 了解哈希算法的应用场...

2020-06-14 16:04:44 127 0

原创 数据库分库分表策略,如何分库,如何分表?

  导语:随着线下店业务发展,线下店开店数越来越多,价格系统的数据增长非常快速,部分单表已达到3亿之多,为了适应业务的发展,考虑对价格系统进行分库分表,因此特别了解了一下分库分表的相关知识,根据相关资料,简单做了一些总结。   大家知道,关系型数据库本身比较容易成为系统的瓶颈点,虽然读写分离能分散...

2020-06-13 13:27:30 93 0

原创 重构之重新认识

**重构**?每次听到这个词,头脑里面闪现的就是“推倒重做,代码重写”,那到底重构是什么玩意?所谓“外事不决问谷歌,内事不决问百度,房事不决问天涯”,百度百科上面的解释是:重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维...

2020-06-09 20:00:36 71 0

原创 vscode插件开发

文章目录vscode插件开发背景基础环境激活插件扩展能力实现功能打包发布安装使用应用的展望 vscode插件开发 背景 在日常的开发工作中经常会遇到需要写一些类似的代码,一般可以通过添加代码片段提升效率,但仅仅在在自己的电脑上添加代码片段不利于共享,且连续创建关联性文件往往需要自己手动处理。如在f...

2020-06-08 20:03:25 116 0

原创 Bug终结之路 --《有效的单元测试》读后感
原力计划

最近一段时间,看了《有效的单元测试》(Effective Unit Testing)这本书。这是一本对单元测试从重要性到该如何编写和构建都进行了详细阐述的技术书籍,其作者Lasse Koskela,是一名资深敏捷技术实践专家、敏捷教练、培训师、顾问和程序员,具有数十年计算机程序设计和开发经验。该书...

2020-06-01 02:04:54 195 0

原创 浅析VUE的变化侦测原理

背景介绍 最近部门的前端框架开始从老旧的Angular JS向VUE迁移,为了工作起来能够更加顺手,特意花了些时间,学习了一番vue。本文对vue的变化侦测原理,做了一些简单的介绍。由于实践经验有限,本文若有错漏,还希望大家多多指正。 MVVM模式 在介绍vue之前,先简单介绍一下MVVM模式: ...

2020-05-31 18:55:06 180 0

原创 html2canvas 与 jspdf 在项目中的实践

工作中接到打印特定数据的需求,由于当前系统已在使用并且需在当前页打印部分数据,如果直接调用浏览器的打印需要整页打印,这并不满足打印部分数据的需求,于是曲线救国通过生成 pdf 的方式满足业务需求,入手了 html2canvas 以及 jspdf 。 html2canvas 可以基于前端将页面上任...

2020-05-25 00:25:29 85 0

原创 Electron桌面App测试框架Spectron VS Puppeteer

Electron桌面App测试框架Spectron VS Puppeteer前言ElectronSpectron介绍试用试用评价Puppeteer介绍试用试用评价总结 前言 根据TDD(测试驱动开发)的原理,在开发实现某个功能前,先编写测试代码,然后再编写能通过测试代码的功能代码,通过测试来驱动整...

2020-05-24 00:09:26 295 0

原创 Redis pipeline与Pub/Sub

Redis pipeline与Pub/Sub Redis全称是 remote dictionary server ,本质上是一个key value类型的内存数据库,因为是纯内存的操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。但如果没用好,每秒10万次的读写效率也是发挥不出来的...

2020-05-10 17:26:36 135 0

原创 【技术视野】窥探CI/CD
原力计划

技术视野之窥探CI/CD前言:闲聊我司持续集成的业界产品万变不离其宗进入主题:jenkins提供了什么jenkins的基础使用(demo)扩展结语: 前言: 互联网时代的软件交付周期有别于传统软件行业,快与变及其关键的两个关键词。如若采取老旧的shell人工构建、人工推包、折腾环境进行运维的方式,...

2020-05-10 15:40:01 395 0

原创 业务开发扯淡

寒冬下被迫当一名全栈

2020-05-06 00:06:22 1548 0

原创 理解TCP协议中的滑动窗口

理解TCP协议的滑动窗口原理 什么是TCP协议的滑动窗口 首先,先看一下TCP协议在TCP/IP五层模型中的位置。 众所周知,TCP协议是一个基于字节流的传输层协议,它位于应用层之下和网络层之上,它提供了可靠的机制,能保证数据有序、可靠地到达对方系统。TCP连接首先会经过三次握手,三次握手成功之...

2020-05-04 01:48:58 284 0

原创 记一次使用微软大佬出品的《typescript》

TypeScript是什么? 官网上说TypeScript是JavaScript类型的超集,并且可以编译为纯JavaScript。在任何浏览器,集群(服务器),操作系统上面都可以运行,而且还开源。 我的认知 TypeScript 是 JavaScript 的强类型版本。应用于前段时间...

2020-04-26 19:14:40 159 0

原创 SpringBoot启动源码解析

spring boot是一个基于spring framework之上的应用构建框架,遵循COC原则,帮助我们快速构建spring应用,这也是spring boot名称由来吧。 那spring boot是通过什么魔法能够帮助我们快速构建spring应用呢?让我们一起来一趟究竟。 通常一个spring...

2020-04-23 10:41:40 153 0

原创 MySQL B+树索引难学难记?拥有这张思维导图,DBA都来赞你
原力计划

军事领域自古以来就非常讲究速度与效率,所谓兵贵神速。当年楚汉相争,西楚霸王项羽与汉高祖刘邦的彭城之战,项羽凭借3万精锐骑兵大破刘邦率领的56万大军,这里面体现的就是骑兵的神速与高效,当然也少不了项羽对骑兵如神一般的指挥。 用将军事领域重视速度与效率的理念来看MySQL的话,索引可以说是MySQL...

2020-04-19 23:36:27 287 0

原创 基于Vue实现微前端

前端微服务化一直是前端社区的一个热门话题,早在2018年就有不少开发者提出过各种解决方案。或许是未得精髓,个人认为基于Web Components的实现脱离整体打包逻辑的,难以工程化。直到遇到了vue-cli 3,子模块打包的问题得以迎刃而解。2019年秋,团队内部初步实现前端分布式开发,解决了集...

2020-04-19 20:52:53 1431 1

原创 分布式开发杂谈
原力计划

分布式

2020-04-13 01:50:25 433 0

原创 重读《代码整洁之道 - 程序员的职业素养》有感

程序员的职业素养《The Clean Coder》一书是Bob大叔代码整洁之道《Clean Code》姐妹篇,代码整洁之道一书从编码本身的技艺影响了一代又一代的软件开发人员,它强调函数,命名,单元测试,异常测试,代码格式等,告诉程序员们怎么写出高可靠和可维护性的代码。 代码整洁之道 : 程序员的职...

2020-04-11 23:07:18 204 0

原创 浅析TCP协议报文生成过程

背景 继上篇 :图解Java服务端Socket建立原理 后,我们继续介绍 TCP协议报文的生成过程 报文生成流程 报文与协议关系 上图展示了osi七层与tcp/ip四层的对应关系,以及展示协议报文封装过程以及与tcp/ip四层的对应关系 报文内容 报文格式与其tcp各层关系如上所示 主要的数据...

2020-01-11 16:28:39 218 0

原创 一次诡异的死锁 —— 认识mysql间隙锁机制

文章目录情景模拟问题复现功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章...

2019-12-23 02:18:10 115 0

原创 浅谈高性能的Netty

文章目录1.什么是Netty?2.Netty的特点?2.1零拷贝2.1.1系统层面的零拷贝2.1.2Netty中的零拷贝2.2 Netty的线程模型3.Netty能做什么?4.Echo Server实战服务端两个类:客户端两个类:5.结语 1.什么是Netty? 笔者最近在业余时间正好在看nett...

2019-12-15 22:34:05 219 0

原创 互联网创业公司的一段经历

笔者上一个东家是一个创业公司(背后有大集团),良心话,在创业公司能学到很多东西,但是心会很累,至于真正能学到什么东西都得各位童靴亲身去尝试了,闲话少说,直入主题,简单介绍一下创业公司的架构跟技术 1、公司人员组织架构 如图,一般创业公司的经费会比较紧张,所以人员比较精简,基本你会和公司各个...

2019-12-08 21:40:10 253 0

原创 python scrapy学习demo分享

前言 一个高级测试开发工程师在自学Python后,向我推荐的一个比较容易上手的Python 框架scrapy。在网上搜索了一下资料后感觉挺有趣的,就想着自己也搭建个环境,然后做一个爬取图片的demo玩下。 开发环境搭建 Python安装 下载地址:https://www.python.or...

2019-12-02 00:43:20 176 0

原创 聊一聊在移动互联网时代做一个桌面应用

掐指一算上一次开发桌面应用已经过去十几年,在某国际领先的货柜集装箱运输公司开发设计的人力资源管理系统,供全球200多个办公室和上万名员工使用,据说至今仍在使用,生命力之旺盛让我倍感骄傲。

2019-11-25 01:03:24 135 0

原创 kafka简介

一言蔽之 kafka诞生于LinkedIn,是其贡献的分布式高性能消息引擎服务【MQ】(如今其定位为一个分布式流处理平台) 消息引擎系统 消息引擎系统EMS:企业以一套标准消息规范屏蔽不同系统的差异,传递准确语义消息。 设计因素: 消息设计:结构 xml、json、file、binar...

2019-11-17 15:49:53 59 0

原创 图解Java服务端Socket建立原理

1.前言 市面上有关于java的socket教程,但几乎都是把java的socket代码罗列一下,并没有跟读者详细说明清楚为什么要这么写,这么写,每一步背的原理是什么.所以本文目标是想通过一份java Server Socket的实现,一步步解析拆解,带大家理解服务端Socket建立的过...

2019-11-10 15:53:07 726 0

原创 业务架构扯淡

不写单元测试的码农不是好的厨师,哪怕您只想撸一生增删改查,可能工资也不允许。现实公司,多数同学还是业务开发,业务开发往上一个台阶,很容易想到业务架构师,今天我们来聊聊业务架构。 公司/业务 实际上,所有公司都有一个最本质,最底层的需求:活下去。 活下去,就需要盈利。那么,一家公司是怎么盈利的?创造...

2019-11-03 23:57:09 209 0

原创 自建低成本代码托管与文档管理平台经验分享

直入入正题,自建代码托管平台其实市面上早有成熟的方案,svn,gitlab,gitea等等。所谓低成本指的是只需一台远程云服务器即可,如果有多备份的需求则追加一台树莓派。随着个人代码量的增长,本人的版本管理经历了本机SVN服务 —> 自建svn —> 自建svn与github并存 —&...

2019-10-27 22:08:03 518 0

原创 计数式布隆过滤器(counting bloom filter)Redis实现分析

计数式布隆过滤器(counting bloom filter)Redis实现分析

2019-10-20 22:29:17 911 0

原创 从此再不为https异常"PKIX path building failed"烦恼

从此再不为https异常"PKIX path building failed"烦恼前言异常:PKIX path building failed原理说明分析方法问题场景场景1:服务端证书被客户端信任场景2: 客户端和服务端证书都是自己生成及管理a.服务端方面b.客户端 前言 ...

2019-09-29 23:48:38 421 0

原创 学习笔记——I/O多路复用

前言 我们在学习或者使用nginx、redis或者netty的时候,总是惊讶于它们的高并发性能。但有没有想过系统是如何在高并发下实现高性能I/O。 什么是I/O多路复用 I/O多路复用解决的就是并发性效率问题。举个例子,一个繁忙的WEB服务器每天都要处理上百万个请求,在网站高峰期的时候必然会...

2019-09-27 07:06:18 89 0

原创 Redis 单线程还是多线程?

Redis 单线程还是多线程 前段时间无意间看到一篇博客,讲述了Redis6即将在年底发布的事情,好奇心驱动下搜索了官网,想看看新版Redis带来了什么新的功能,果然得到证实Redis在年底将发布新的版本:6.0,并且Redis创始人兼核心开发者 antirez 在博客也介绍了将在6.0所提供的新...

2019-09-18 11:18:41 2143 1

原创 validator最佳实践

这里写自定义目录标题validator的使用为什么要用validatorvalidator如何使用Hibernate Validator注解Hibernate Validator引入合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...

2019-09-09 20:51:19 227 0

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