摘要: 前言 在最近的一些面试中,跟应聘者聊了比较多关于“同步/异步,阻塞/非阻塞”相关的话题,发现大家对于这些概念的理解都比较模糊,甚至有的同学会反问“他们不就是同一个东西吗?”。所以借着这么一个机会,我想用一些尽量简单的例子,尽量简洁的语言来聊聊自己对于这些概念的看法。 正文 这篇文章想通过一个老王“候 阅读全文
posted @ 2019-04-17 09:50 深夜里的程序猿 阅读(1508) 评论(2) 推荐(9) 编辑
摘要: 前言 不管在我们的工作还是生活中,总会出现各种“错误”,各种突发的“异常”。无论我们做了多少准备,多少测试,这些异常总会在某个时间点出现,如果处理不当或是不及时,往往还会导致其他新的问题出现。所以我们要时刻注意这些陷阱以及需要一套“最佳实践”来建立起一个完善的异常处理机制。 正文 异常分类 首先,这 阅读全文
posted @ 2019-04-15 09:16 深夜里的程序猿 阅读(967) 评论(0) 推荐(1) 编辑
摘要: 什么是 Mock 测试 Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。什么是不容易构造的对象呢?例如HttpServletRequest,需要在有servlet容器环境中创建获取。那不容易获取的对象呢?如一个JedisCluster, 阅读全文
posted @ 2019-04-13 14:26 深夜里的程序猿 阅读(10573) 评论(0) 推荐(0) 编辑
摘要: 前言 对于大部分程序员来说,主要工作都是进行编码以及一些简单的中间件安装,这就导致了很多人对于“运维”相关的工作会比较生疏。例如当我们拥有一台自己的服务器以后,可能会在上面跑一跑自己blog程序,mysql,nginx等等。当程序越来越多了没有一个统一的入口管理启停,也可能会遇到一些特殊的原因导致程 阅读全文
posted @ 2019-04-12 09:31 深夜里的程序猿 阅读(1453) 评论(2) 推荐(1) 编辑
摘要: 前言 关于分布式锁,在互联网行业的使用场景还是比较多的,比如电商的库存扣减,秒杀活动,集群定时任务执行等需要进程互斥的场景。而实现分布式锁的手段也很多,大家比较常见的就是redis跟zookeeper,今天我们主要介绍的是基于zookeeper实现的分布式锁。 这篇文章主要借用Curator框架对z 阅读全文
posted @ 2019-04-10 09:13 深夜里的程序猿 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 前言 如今不管是在面试还是在我们的工作中,OOM总是不断的出现在我们的视野中,所以我们有必要去了解一下导致OOM的原因以及一些基本的调整方法,大家可以通过下面的事例来了解一下什么样的代码会导致OOM,帮助我们以后在工作中能够通过异常信息来判断是JVM里面哪个区域出现了问题。 先介绍一下笔者的相关编码 阅读全文
posted @ 2019-04-09 09:10 深夜里的程序猿 阅读(834) 评论(0) 推荐(0) 编辑
摘要: “ 一颗老鼠屎,坏了一锅粥,代码也是如此。” 在我们的项目中,也许在刚开始开发的时候,大家都会遵从一些规范来实施,但是当业务进度催的紧,或者人员变动,随着时间的迁移,项目不断的迭代以后,这时的代码可能就会出现一些“坏味道”了。 “坏味道”代码的出现可能不会影响我们的业务逻辑,大家自然也就比较容易忽视 阅读全文
posted @ 2019-04-08 18:37 深夜里的程序猿 阅读(1326) 评论(4) 推荐(2) 编辑
摘要: 前言 说到分布式缓存,可能大多数人脑海浮现的就是redis了,为什么redis能够在竞争激烈的缓存大战中脱颖而出呢?原因无非有一下几点:性能好,丰富的特性跟数据结构,api操作简单。但是用的人多了,就会出现很多不规范或者疏忽的地方,严重的时候甚至会导致生产事故,所以我们有必要来聊聊在Redis使用过 阅读全文
posted @ 2019-04-08 09:35 深夜里的程序猿 阅读(1896) 评论(4) 推荐(2) 编辑
摘要: 前言 周六了,聊点非技术的话题,不知道是否有读者是“996”呢,最近因为一个github项目把这个话题又带火了,看来大家的“怨念”都比较深,人生嘛,出来奋斗总是要吃点苦的,但是身体又是革命的本钱,所以二者怎么权衡,见仁见智咯。 今天转载一下我年少有为的前同事coody写的文章,在金三银四的时候,作为 阅读全文
posted @ 2019-04-07 09:38 深夜里的程序猿 阅读(1321) 评论(2) 推荐(0) 编辑
摘要: 前言 啊哈哈,标题写的比较随意了,其实呢最近在各种面试以及博客中,SimpleDateFormat出镜率确实是比较高了,为什么?其实聪明的你们肯定知道,那必须是有坑呗,是的,那我们就以案例来分析一下到底会有那些坑,或者还有没有其他更优的替代方案呢? 正文 首先我们来看一下可能会出现在DateUtil 阅读全文
posted @ 2019-04-06 10:01 深夜里的程序猿 阅读(1058) 评论(0) 推荐(0) 编辑