背景说明 有朋友问我一个关于接口优化的问题,他的优化点很清晰,由于接口中调用了内部很多的 service 去组成了一个完成的业务功能.每个 service 中的逻辑都是独立的,这样就导致了很多查询是重复的,看下图你就明白了. 上层查询传递下去 对于这种场景最好的就是在上层将需要的数据查询出来,然后传递到下层去消费.这样就不用重复查询了. 如果开始写代码的时候是这样做的没问题,但很多时候,之前写的时候都是独立的,或者复用的老逻辑,里面就是有独立的查询. 如果要做优化就只能将老的方法重载一个,将需要…
前言 和这篇文章一样,我就是用Markdown写的.相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml.Html等,今天教大伙一招骚操作:用Markdown写PPT. 绝大多数朋友做 PPT都是用的 PowerPoint 或者 KeyNote 吧?功能是比较强大,但你有没有遇到过这样的痛点: 各种标题.段落的格式不统一,比如字体大小.行间距等等各个页面不太一样,然后得用格式刷来挨个刷一下. 想给 PPT 做版本控制,然后就保存了各种复制版本,比如"一版"."…
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 栈长之前在Java技术栈微信公众号分享过<Java 11 已发布,String 还能这样玩!>这篇文章,介绍了 Java 11 的 String 新玩法,让大家耳目一新. Java 12 已经发布数月了:Java 12 正式发布,8大新特性!,今天我再来分享下在 Java 12 中关于 String 的三个骚操作,绝逼有用. 更多关于 Java 的资讯.干货教程.以及好消息,请关注微信公众号:Jav…
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 之前分享了一些 Java 12 的骚操作,今天继续,今天要分享的是 Java 12 中的文件比对骚操作. 我们或多或少会遇到这样的需求:怎么比对两个文件中的内容一样? 你会把两个文件中的内容拉出来一个个字符对比,然后提交一大堆不怎么优雅的代码? 这样你就太 OUT 了! 在 Java 12 中,仅需要 1 行代码即可搞定! 来看示例代码: public static void main(String[…
前言 聊起 redis 咱们大部分后端猿应该都不陌生,或多或少都用过.甚至大部分前端猿都知道. 数据结构: string. hash. list. set (无序集合). setsorted(有序集合), 运维方面 : 持久化,主从复制,集群,故障恢复 , 园子里已经由大佬科普过了,官方文档也能查到, 这里就不细说 redis的“发展起家史”. 咱们今天就聊聊redis的缓存应用场景(不推荐用redis做分布式锁),redis常见操作(击穿,雪崩,缓存数据量过大等),常见问题及处理方式.怎么用到…
你没玩过的全新版本!Win10这些骚操作你知多少 [PConline技巧]不知不觉,Win10与我们相伴已经整整四个年头了,从最开始的组团抗拒到现在的默默接受,个中滋味相信谁心里都有个数.近日微软开始推送"Win10更新五月版",那么Win10中到底都有哪些"骚"操作?一起来看看吧. 1. 夜间模式 都9102年了,我发现竟然还有小伙伴在使用第三方去蓝光软件."夜间模式"是Win10自带的一款去蓝光功能,能够快速去除屏幕蓝光.除了自定义去蓝光强度…
Git简单介绍 Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计. Git工作流程以及各个区域 Workspace:工作区 Staging/Index:暂存区 Local Repository:本地仓库(可修改) /refs/remotes:远程仓库的引用(不可修改) Remote:远程仓库 Git文件状态变化 Git各种命令 Git简单命令 # 在当前目录新建一个git仓库 git init # 打…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合.缓存.并发.I/O等多个方面.使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更为高效. 今天Hydra要给大家分享的就是Guava中封装的一些关于Map的骚操作,在使用了这些功能后,不得不说一句真香.先引入依赖坐标,然后开始我们的正式体验吧~ <dependency> <grou…
阅读本文大概需要 3 分钟. IDEA 有个很牛逼的功能,那就是后缀补全(不是自动补全),很多人竟然不知道这个操作,还在手动敲代码. 这个功能可以使用代码补全来模板式地补全语句,如遍历循环语句(for.foreach).使用 String.format() 包裹一个字符串.使用类型转化包裹一个表达式.根据判(非)空或者其它判别语句生成 if 语句.用 instanceOf 生成分支判断语句等. 使用的方式也很简单,就是在一个表达式后按下点号 . ,然后输入一些提示或者在列表中选择一个候选项,常见…
前言 即使这是一本小册,但基于"不提笔不读书"的理念,仍然有必要总结一下.此小册对于那些"硬杠 Netty 源码 却不曾在千万级生产环境上使用实操"的用户非常有用.当然,对那些没有 Netty 编程经验的人来说,更为有用. 放个小册地址:[Netty 入门与实战:仿写微信 IM 即时通讯系统](https://juejin.im/book/5b4bc28bf265da0f60130116) 再次强烈推荐,一碗黄焖鸡/半杯 Luckin coffee/一包炫赫门 的价…