到处是map、flatMap,啥意思?

最近入职一个有趣的年轻同事,提交了大量大量的代码。翻开git记录一看,原来是用了非常多的java8的语法特性,重构了代码。用的最多的,就是map、flatMap之类的。但是其他小伙伴不愿意了,虽然有的人感觉代码变的容易懂了,但有更多的人感觉代码变的很晦涩。那感觉就像是:脱了裤子放屁,多此一举。这些函数的作用域,根据级别,我觉得可以分为三类。简直是无所不在。不要过分使用我也不知道这些函数是从什么时候

冷门instrument包,功能d炸天

文中代码示例工程如下,更多参考btrace和arthas:https://github.com/sayhiai/example-javaagent原创文章,转载注明出处 (http://sayhiai.com) 5版本以后,jdk有一个包叫做instrument,能够实现一些非常酷的功能。市面上一些APM工具,就是通过它来进行的增强。这是基础架构的必备技能,但对业务开发来说并不是。许多面试会问到这

余额,危险的操作,给996留点福报

真的很危险,有人因此进了局子;也有公司因此损失上亿。想象一下你在一个月黑风高的夜晚,大概是10点多钟的样子,加班归来,打算到小卖部弄盒烟抽。夜凉风急,你用力裹了下被风鼓起的外套。那里有你暗恋的收银姑娘。没日没夜的工作,只有这十几分钟,能让你感到些许生活的意义。从羞涩的钱包里翻出仅存的一张百元大钞,结账。然后用颤抖的双手接过收银员的找零。不是因为轻触到了她的指尖。也并非因她如花的笑靥。只因为,脑海里

坑爹项目「spring-cloud-alibaba」,我们也来一个

我们通常说的SpringCloud,指的是Spring Cloud Netflix,在独立的主机环境中也能使用部署,血统最为正宗,后面的文中,指的都是它。虽然有些组件不再维护了,但好在是可以热拔插的(除非你已经上了贼船)。SpringCloud只是一堆规范,其中的组件是可以替换的额。私以为,如果你采用了SpringCloud技术栈,你就必须要搞一个自己的SpringCloud。受技术选择倾向和功能

WebSocket协议 8 问

WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持。它使用方面、应用广泛,已经渗透到前后端开发的各种场景中。对http一问一答中二式流程的不满,催生了支持双向通信的WebSocket诞生。WebSocket是个不太干净协议。一、WebSocket协议只能浏览器发起么?不是。目前此协议的受众的也不仅仅是web开发者。WebSocket只是

使用多线程增加kafka消费能力

前提:本例适合那些没有顺序要求的消息主题。kafka通过一系列优化,写入和读取速度能够达到数万条/秒。通过增加分区数量,能够通过部署多个消费者增加并行消费能力。但还是有很多情况下,某些业务的执行速度实在是太慢,这个时候我们就要用到多线程去消费,提高应用机器的利用率,而不是一味的给kafka增加压力。使用Spring创建一个kafka消费者是非常简单的。我们选择的方式是继承kafka的Shutdow

JAVA多线程使用场景和注意事项

我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。他问我:ConcurrentHashMap是什么? -.-编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。多线程生来就是复杂的,也是容易出错的。一些难以理解的概念,要规避。本文不讲基础知识,因为你手里就有jdk的源码。线程Thread第一类就是

使用Netty,我们到底在开发些什么?

在java界,netty无疑是开发网络应用的拿手菜。你不需要太多关注复杂的nio模型和底层网络的细节,使用其丰富的接口,可以很容易的实现复杂的通讯功能。和golang的网络模块相比,netty还是太过臃肿。不过java类框架就是这样,属于那种离了IDE就无法存活的编码语言。最新的netty版本将模块分的非常细,如果不清楚每个模块都有什么内容,直接使用netty-all即可。单纯从使用方面来说,ne

非规范SQL的sharding-jdbc实践

在《“分库分表" ?选型和流程要慎重,否则会失控》中,我们谈到处于驱动层的sharding-jdbc。开源做到这个水平,已经超棒了,不像tddl成了个太监。但还是有坑。不过不能怪框架,毕竟有些sql,只有程序和鬼能懂。<select id="getCodes" resultMap="BaseResultMap" parameterTyp

”MySQL官方驱动“主从分离的神秘面纱(扫盲篇)

假如你日后的工作,需要快速实现MySQL的读写分离功能,你一定会想起这篇文章。如果你再次回到这里,证明你已经迫切需要一个简单快捷的解决方案了--那就是MySQL官方驱动层实现的读写分离,偏小众,但很有效。JDBC驱动我们经常使用的MySQL驱动jar包,其实默认有非常棒的功能,那就是主从分离和HA。如果你只是需要一个主从分离、failover的功能,不要sharding。一个驱动就够了,不需要引入

服务端开发学习路径图,心疼小哥哥们

在github上看到一种图的表现形式很不错(https://github.com/kamranahmedse/developer-roadmap),迫不及待的自己做了一张:服务端开发学习路径图,表现力还是很强的。我们从选择一门开发语言说起,经历了摸索阶段、集群阶段和进阶阶段,希望你最后都能以架构师的思路去思考。可以看到后端工程师还是很辛苦很悲催的,每一个方块,都能写一本书啊,一个书橱都装不下啊啊啊

最新文章

最近回复

  • lycying: 用不了这么多吧。见http://sayhiai.com/inde...
  • Sean: 单机一百万? 那么这个机器起码要装 1TB的内存啊?
  • lycying: 默认就是开放的
  • lycying: 已修改
  • lycying: 是的
  • Taxz: 请问在master选举时,为什么 需要Thread.sleep(...
  • hesl: 正文宽度太窄了
  • donald: 什么时候开放rss
  • 宜城有少年: 我试了下好像还是不需要注解都行。。。
  • 宜城有少年: 意思是说如果我把这个去掉就是实现了注解方式的对吗
  • lycying: 见文中,SpringBoot启动会自动读取 src/main/r...
  • 宜城有少年: 博主,我想问下,为什么只要我引入了JAR包,不需要注解都可以使用。。。
  • lycying: 是的,而且不能是private
  • 宜城有少年: 博主请问下引用的注解是放在微服务被调用的里面吗方法里面吗
  • 宜城有少年: 这个是将整个springboot项目打成JAR包吗?
  • lycying: 女人养的狗
  • vbyzc: 女人吗??
  • anshingy: 支持
  • anshingy: 很好,支持
  • 忠实粉丝: 6666666

分类

标签

归档

其它