-
使用Java函数接口及lambda表达式隔离和模拟外部依赖方便单元测试(转载)
原文出处:琴水玉概述单测是提升软件质量的有力手段。然而,由于编程语言上的支持不力,以及一些不好的编程习惯,导致编写单测很困难。最容易理解最容易编写的单测,莫过于独立函数的单测。所谓独立函数,就是只依赖于传入的参数,不修改任何外部状态的函数。指定输入,就能确定地输出相应的结果。运行任意次,都是一样的。在函数式编程中,有一个特别的术语:“引用透明性”,也就是说,可以使用函数的返回值彻底地替代函数调用本......1,158 0 2018-03-08 18:14
-
Spring Boot 自动配置的 “魔法” 是如何实现的?
原文出处:sylvanassunSpringBoot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数用户平时习惯设置的配置作为默认配置)的功能来为用户快速构建出标准化的应用。SpringBoot的特点可以概述为如下几点:内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以Jar格式运行。提供了多个可选择的”s......1,151 0 2018-06-11 18:25
-
使用 Spock 框架进行单元测试(转载)
原文出处:@蛋疼的axb1.摘要最近一段时间接触到了spock这个可以用于java和groovy项目的单元测试框架,写了一段时间单测之后认为这个框架不错,值得写一篇文章推广一下。2.关于单元测试很多人一谈到单元测试就会想到xUnit框架。对于一些java新人来说,会用jUnit就是会写单元测试,高级点的会捣鼓一下testng,然后就认为自己掌握了单元测试。而实际上,很多人不怎么会写单元测试,甚至不......1,149 0 2018-01-09 09:59
-
记一次内存溢出的分析经历 — thrift带给我的痛
原文出处:Janti说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?我知道,你有过!但是我还是要来说说我的故事………………背景:有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),服务端用Java写......1,139 0 2018-05-21 17:10
-
SSD相关xxx(转载)
为什么需要SSD?它能让你的电脑响应的更加流畅,提升使用体验。曾经WOW不太依赖SSD,现在随着6.0贴图精度大幅buff,SSD也能有效防止上线后刷不出NPC的出现。而且掉线后更能神不知鬼不觉的快速上线。如何选择一款适合自己的SSD?首先,请不要再问A和B哪个好了……分析一个具有较多特性的产品,最简单的方式是加权。每个特性在不同的人心中有不同的权重,通过权重*表现,最后加权计算出最适合的产品。近......1,132 0 2018-01-08 11:23
-
每一个shard都需要有个家
原文出处:iceman1952这是一篇译文,原文(Everysharddeservesahome)于2016-11-11发布在elastic官方博客。译文稍有更改阅读提示文章包含很多gif动图,你可以使用“2345看图王”查看/暂停/回放gif动图的每一帧所有图片都可以在新标签页中查看大图“索引”有时作动词,有时作名词。例如“当索引第一个文档到新的索引中时…”,第一个索引是动词,第二个索引是名词术......1,125 0 2018-05-14 14:25
-
算法余晖
原文出处:MRRiddler本篇主要涉及到图论的基本算法,不包含有关最大流的内容。图论的大部分算法都是由性质或推论得出来的,想朴素想出来确实不容易。二分图(Is-Bipartite)一个图的所有顶点可以划分成两个子集,使所有的边的入度和出度顶点分别在这两个子集中。这个问题可以转换为上篇提到过的图的着色问题,只要看图是否能着2个颜色就行了。当然,可以回溯解决这个问题,不过对于着2个颜色可以BFS解决......1,121 0 2018-02-28 19:23
-
RocketMQ 源码学习 4 : 消息发送
原文出处:谢晞鸣1.Client端,三种发送方式RocketMQ支持常见的三种发送方式,SYNCproducer.send(msg)同步的发送方式,会等待发送结果后才返回。可以用send(msg,timeout)的方式指定等待时间,如果不指定,就是默认的3000ms.这个timeout最终会被设置到ResponseFuture里,再发送完消息后,用countDownLatch去awaittimeo......1,119 0 2018-06-05 09:29
-
Java集合深度解析之LinkedList(转载)
转自:兰亭风雨LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输......1,107 0 2018-01-25 00:13
-
消息队列技术点梳理(思维导图版)
作者:neoremind出处:http://neoremind.com/2018/03/消息队列技术点梳理/消息队列作为服务/应用之间的通信中间件,可以起到业务耦合、广播消息、保证最终一致性以及错峰流控(克服短板瓶颈)等作用。本文不打算详细深入讲解消息队列,而是体系化的梳理消息队列可能涉及的技术点,起到提纲挈领的作用,构造一个宏观的概念,使用思维导图梳理。 再介绍之前,先简短比较下RPC......1,106 0 2018-04-13 16:19
-
Http 持久连接与 HttpClient 连接池
原文出处:kingszelda一、背景HTTP协议是无状态的协议,即每一次请求都是互相独立的。因此它的最初实现是,每一个http请求都会打开一个tcpsocket连接,当交互完毕后会关闭这个连接。HTTP协议是全双工的协议,所以建立连接与断开连接是要经过三次握手与四次挥手的。显然在这种设计中,每次发送Http请求都会消耗很多的额外资源,即连接的建立与销毁。于是,HTTP协议的也进行了发展,通过持久......1,102 0 2018-06-04 15:43
-
技术贴!成为Java架构师必须要懂的知识
Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力和提出解决方案能力了。小华君就跟大家来简要地说说吧。如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。熟练使用各种框架,并知道它......1,099 0 2018-01-12 19:08
-
kafka 源码分析4: broker 处理生产请求
原文出处:刘正阳Kafkabroker上对于produce生产者生产消息的处理KafkaServer处理生成者请求入口在KafkaApis.scala,通过request.header.apikey判断消息类型defhandle(request:RequestChannel.Request){try{trace("Handlingrequest:%sfromconnection%s;securit......1,094 0 2018-06-04 15:31
-
10年感触:架构是什么?——消灭架构!(转载)
架构是什么?架构是一个约定,一个规则,一个大家都懂得遵守的共识。那这是什么样的约定、什么样的规则、什么样的共识呢?我以包为例,我经常出差,双肩背包里装了不少东西。笔记本电脑、电源、2个上网卡、鼠标、USB线、一盒大的名片、一盒小的名片、口香糖、Mini-DisplayPort转VGA接口、U盘、几根笔、小螺丝刀、洗漱用品、干净衣服、袜子、香水、老婆给我带的抹脸膏(她嫌我最近累,脸有点黄)、钱包、T......1,094 0 2018-01-12 18:24
-
关于抓包工具的Charles 破解方法【任何版本都有效】
农成之前抓包一直是用fiddler,后面发现这个东西不是特别的好用,于是今天在研究微信的一个小程序跳一跳的时候,发现一个另外的一个比较好用的前端抓包工具,是国外的,针对的人群应该是ios的用户的,所以就想能不能不掏钱来搞个破解的版本,万能的天朝网友总会有各种各样的手段来完成这个。于是乎农成就找到了这个很nice的工具给大家分享一下,顺便也是备份一下吧。破解地址:https://www.zzzmod......1,088 0 2018-01-17 19:12