框架
2025
大话DDD
·11 分钟
后端
框架
Java
背景 # 什么是DDD,DDD全名 Domain Driven Design,是一种架构设计方法,和我们普通的设计模式有什么区别呢,我们知道设计模式有单例、工厂这些,这些东西只和代码有关,他是一种手法,可以看作是一个小手段,就是类似孔己己的茴香豆7种写法一样
优化Spring单元测试:从90秒到18秒的实战经验
·5 分钟
后端
框架
Java
引言 # 在大型Spring Boot项目中,缓慢的单元测试执行速度常常成为开发效率的瓶颈。以我司项目为例,原本的单元测试套件需要约90秒才能完成,严重影响了开发流程。经过系统性的优化,我们成功将测试时间缩短至18秒,提升了80%的效率。本文将详细介绍这些优化手段及其原理。
深入理解Java中的synchronized机制
·5 分钟
后端
框架
Java
JVM
一、synchronized概述 # synchronized是Java语言中用于控制并发访问的关键字,它是一种排他锁(独占锁)和可重入锁。作为Java内置的同步机制,它能够确保在同一时刻只有一个线程可以访问被保护的代码块或方法。
大话Java精度问题
·7 分钟
后端
框架
Java
背景 # 事情的起因是,正当我悠闲的品尝一杯Java Caffe的时候,突然飞书一个加急信息铺面而来,“小张啊,你快看下,线上有个用户用优惠券少付一分钱“
2022
秒杀系统的思考
·2 分钟
后端
框架
Java
秒杀系统
RPC大纲
·1 分钟
后端
框架
Java
RPC
最近想系统学一下RPC框架,下面是我学习路径
IO总结
·2 分钟
后端
框架
Java
最近被NIO这个概念弄得有点晕,一会是Linux的NIO一会是Java 的NewIO也叫NIO,然后Linux又有一个AIO的概念,但是Java里面好像没有,所以就好好理理IO到底是个啥东西
Bean复制真的那么慢吗
·3 分钟
后端
框架
Java
引言 # 最近在业务代码中经常用到的BeanUtils.copyProperties,有的时候在想,这个东西在Java里面真方便,但是性能怎么样呢,然后找了一篇博文
https://www.cnblogs.com/kancy/p/12089126.html
2021
泛型的前世今生
·1 分钟
后端
框架
Java
一、什么是泛型 # 二、泛型的作用是什么 # #
SPI破坏了双亲委派吗
·4 分钟
后端
框架
Java
最近在学JVM的时候,把ClassLoader部分给过了一遍,谈到ClassLoader少不了双亲委派,谈到双亲委派少不了说破坏双亲委派的SPI,也看到了知乎上一些观点 ,这个时候我就疑惑了,有两个问题围绕在我头上,什么是双亲委派,为什么说SPI破坏了双亲委派,这篇博客就从源码出发,讲一讲我的理解
AOP再思考
·4 分钟
后端
框架
Java
我记得之前写过Spring AOP相关的文章,但是最近在观看Cat源代码的时候发现 @Aspect 这个注解与AspectJ这个项目,查阅了不少博客,感觉还是云里雾里,这篇博客就是基于博客以及自己实际实验与测试搞懂 Spring AOP和 AspectJ之间的关系
JVM之ClassLoader的思考
后端
框架
Java
JVM
压测卡顿20秒引发的思考
·4 分钟
后端
框架
Java
压测让人爆炸的事,就算把你写的代码都注释掉了这个问题依旧存在,这个时候你开始怀疑网络,怀疑TCP链接,怀疑系统框架,这篇文章就线上遇到的问题好好梳理了一下一个请求进来究竟会“遭遇”什么
压测心得
·2 分钟
后端
框架
Java
最近在做一个接口的压测,一开始以为自己优化后的代码应该没得问题,没想到中途遇到不少问题
LinkedHashMap实现LRU
·1 分钟
后端
框架
Java
引用 # https://zhuanlan.zhihu.com/p/62322204 https://cloud.tencent.com/developer/article/1519813
FlatMap用法
后端
框架
Java
Stream
Stream源码(2):从问题出发看源码
·4 分钟
后端
框架
Java
Stream
之前看一些开源项目源码的时候,发现一个问题,假如你贪全,一口气把整个代码看完,由于现在程序架构
比较复杂,很多功能被分成很多个组件来完成,有的时候你会被程序跳来跳去给弄晕,假如你但看一个小功能,你又
不知道为啥要用这个
Stream源码(1):如何实现去重
·3 分钟
后端
框架
Java
Stream
本篇博客是在看代码的时候看到使用Java8使用Stream去重的妙用,从而对Java如何使用Stream实现几行代码
完成一个可支持并行化的流式计算程序
Dubbo浅探
·3 分钟
后端
框架
Java
Dubbo
繁忙的一周终于过去了,加入小影第一周主要是熟悉后端架构,同事们都挺好,自己的基础还是有点弱,前段时间简单的把Spring
Cloud 和 Dubbo学习了一下,但是其实对于工作来说,之前学的都是最新的版本,但是其实公司用的版本很老了,所以需要时间去学习老版本
Spring Cloud Alibaba浅探
·2 分钟
后端
框架
Java
SpringBoot
花了半天时间把Spring Cloud Alibaba 的Nacos 、 Sentinel 和 Seata简单的使用了一下,下面是我的一些看法
SpringCloud浅析
·5 分钟
后端
框架
Java
SpringBoot
最近在学SpringCloud,之前一直对用视频学嗤之以鼻,觉得只有弱者才会这样,但是其实对于一些已经非常常见的技术
比如SpringCloud这种,已经出来很长一段时间了,而且其实非常杂,用视频学起来其实非常快,当然前提是你要三倍速播放,而且
你得把视频配套的代码找到,这样你就能很快的掌握这个。
浅析微服务
·5 分钟
后端
框架
Java
这篇博客主要是从web技术发展来探索微服务的起源
要想了解微服务是什么得从web框架出来之后开始讲起,大部分可能不知道微服务,一定知道写web服务的框架,懂Java的可以用Spring Boot一把梭,懂Python的Flask、Django、Tornado也写的飞起
浅析Spring
·3 分钟
后端
框架
Java
SpringBoot
> Spring核心就是IoC(依赖注入)AoP(面向切面)本篇就基于一个开源项目 tiny-spring 来分析Spring框架到底给我们提供了什么东西
2020
大数据架构小结
·4 分钟
后端
框架
大数据
首先说说什么是大数据,最简单用数据量为单位,大于1亿就算大的,因为小于1亿就在数据库做就可以了,所以大数据是公司数据大到数据库处理不了的时候才要考虑的事情,小公司MySQL优化一下索引就可以了
2019
TB级数据存贮经验总结
·8 分钟
后端
框架
大数据
项目背景
这个项目是深圳一家证卷公司一个TB级日志离线导入项目,当数据达到10T左右的时候,他们的存贮架构以及检索系统直接奔溃,在朋友的推荐下,我负责对这个项目进行整体的重构以及优化,对于我一个大数据新手来说这是一个挑战也是一个学习的机会,最终幸不辱命最终完成了系统的优化,由原来的48小时导入优化至7个小时,并且提供亚秒级的查询检索,下面就是我对这个项目的总结
如何在Ubuntu上发布Scala Jar包到Maven中央仓库
·7 分钟
后端
框架
Java
由于网上的教程大多数是Windows下的,而且都是介绍怎么打包Java的Jar包,关于Scala相关的比较少,因此我踩了不少坑才成功的把包发布到Maven中央仓库,你们可以才中央仓库里面搜到我的包
2018
Big Data Questions
·1 分钟
后端
框架
大数据
Recently I found that I’m kind of over talking when I speak with others, so I want to train my conclusion of solving problem. Here are some problems I meet when I read books of Big Data.
Learning Scala From Java
·3 分钟
后端
框架
Java
Recently I had finshed reading one book : « Scala for The Impatient», I found a lot intrest thing during reading this book.Cause I had known Python and Java before, I can see mixed fetures of Scala between Python and Java.This blog is my thought of studying a new language from other learned language.
触摸Python的GIL
·18 分钟
后端
框架
Python
Python的GIL一直是被大家攻击其语言的一个弊端,每次在讨论语言特性的时候这点总是会被人们提起,但是这个东西好像就一个“污点”,大家都知道,但是大家都不了解为什么。本片博客就是好好的探索一下GIL,让我们不再畏惧它
如何让你的Python更快
·11 分钟
后端
框架
Python
引言 # 其实一开始没有想到写关于Python的加速,一开始只想好好了解一下C++这门语言,没想到最后研究来研究去,基本上把所以加速框架都试验了一下,这篇博客就谈谈我对Python加速的看法
千万级数据处理小结
·8 分钟
后端
框架
大数据
引言 # 这两个星期的工作主要是对千万文本数据的处理,由于我以前没有接触过类似的数据量,所以我就把我在处理这千万数据的过程中遇到的问题以及解决的方法总结一下
从关系角度来看XPath
·5 分钟
后端
框架
Python
这段时间没有写博客,一个原因是由于刚毕业没了学校的学习动力反而下降,另外一个方面由于花了很长时间研究编译原理,然而自己却对它没有太多理解,所以也就没有整理自己的知识,现在慢慢稳定下来,会继续像以前一样更新博客
Java的char类型到底几个字节
·6 分钟
后端
框架
Java
引言 # 之所以有这个疑问,是上次阅读Java基础书时碰到讲解char类型没有看明白,并且在代码验证过程中错误的理解了代码的意思,导致我对这么个简单问题产生疑惑并且“恶意揣测”Java内部的黑魔法,这里就把我如何走上歪路,并且最终找到“正确”的道路的故事讲出来
从例子里解Spring IOC
·7 分钟
后端
框架
Java
SpringBoot
Spring的IOC理解 # 什么是IOC # 在这里我们不谈Spring的基础知识,我们知道谈到Spring就会谈到IOC,这个IOC是什么呢,中文名叫控制反转,这个东西是伴随着一些编程思想出现,其实同Java的本身也有关
Python正则表达式
·5 分钟
后端
框架
Python
引言 # 这篇博客其实写于2016年,最近在重新学了一下正则表达之后,觉得有必要重新整理一下正则的用法
2017
Python异步的理解
·6 分钟
后端
框架
Python
起因 # 异步的出现主要是单线程的io等待,由于任务大部分是io处于等待,假如让一个线程工作,所有任务按照流水线形式执行,假如一个请求需要1秒,五个请求需要五秒,那么如果能让他们同时运行的话,那么速度就能增加五倍
爬虫分布式总结
·3 分钟
后端
框架
Python
由于最近在一家数据服务公司实习,项目需要了解分布式,所以在这里基于scrapy的分布式总结一下爬虫的分布式实习
协程解决递归错误原理
·5 分钟
后端
框架
Python
引言 # 递归是高度抽象化问题的一个好东西,我们能从很多算法书里面看到这个,
但是递归虽然对于人来说好理解,但是计算机执行起来会损失性能,一个差的递归可能会耗光计算机的资源
2016
字符串处理
·1 分钟
后端
框架
Python
string # 原来的很多函数都逐渐迁移到str和unicode对象上去了,
不过有两个函数没有迁移出去
关于python3和python2 import区别
·3 分钟
后端
框架
Python
最近从python2转到python3,发现还是有一些不同,一些库改名字很好解决,但是这个import机制不了解原理是不好理解的.
大数据学习小总结
·1 分钟
后端
框架
大数据
最近在学习大数据,书看了不少,但是总是觉得很迷茫,不知道怎么学下去,今天
突然想写点什么来
总结一下这些天.
python学习
·1 分钟
后端
框架
Python
由于有其他编程语言基础,所以对于python的学习并不吃力,但是整体感觉python的确与前面学习c、c——— # 1. 实时编译VS静态编译 # 不需要输入任何前缀,直接将代码放在python解释器上面就能运行,虽然window下不支持直接点开文件就能使用,但是只要安装了python解释器就能很轻松的运行。
python的编码问题研究------使用scrapy体验
·5 分钟
后端
框架
Python
基于python2
scrapy是一款非常轻量级的爬虫框架,但是由于它隐藏了太多关于网络请求的细节,所以我们有时候会遭遇到一下很尴尬的bug,当然这主要是因为碰到一些不规范的网站。
Python 线程(threading) 进程(multiprocessing)
·6 分钟
后端
框架
Python
# 最近学了两个python库,一个负责管理线程,一个负责管理进程,原来一直写的都
是些单线程的程序,虽然web也关于并发和多涉及到线程,但都是框架管理的,学习>过后发现了解线程和进程对python的web开发也有一定帮助。下面先谈谈这对python对线程和进程的支持再谈谈对这两个库的应用。
PIL (Pillow)
·3 分钟
后端
框架
Python
Pillow 是 PIL的对Python3支持的另外一个分支,当然他对Python2也兼容,由于PIL安装起来比较烦,而使用pip可以很轻松的安装Pillow,所以我选择Pillow使用,但是其核心还是PIL库的。
Numpy的简析
·3 分钟
后端
框架
Python
numpy简单来说就是python的C版数组实现,因为python原生列表虽然好使,但是生成大量数据时开销很大,而numpy是基于C的,生成大量数组非常简单,而且操作他们速度非常快.