跳过正文

后端

大话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的时候,突然飞书一个加急信息铺面而来,“小张啊,你快看下,线上有个用户用优惠券少付一分钱“
使用PARA搭建一个有效的笔记系统
·3 分钟
软件 后端 Obsidian
背景 # 之前使用 BlowFish 的 Hugo模板,采用目录树将我这几年的博客总结为几个大类,在之后,我的想法是逐渐补充我的知识库的知识盲点,但是没写几篇之后就因为缺乏动力,而无法坚持
Obsidian同步
·2 分钟
后端 软件 Obsidian
背景 # 官方提供了付费同步功能,只要一个月10刀,即可享受全平台同步,但是只能一个仓库,文件大小也有限制
用Obsidian和Hugo来搭建你的知识库和博客
·5 分钟
后端 软件 Obsidian
背景 # 之前介绍过,目前博客是使用Hugo搭建的(Hugo使用 ),只支持PC端使用,写博客工具只能用Github VSCode在线版本或者IDEA等编辑软件
Hugo 使用教程
·3 分钟
后端 软件
Hugo 使用教程
秒杀系统的思考
·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
泛型的前世今生
·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
mybatis二级Redis缓存
·3 分钟
后端 数据库 Mybatis
这篇文章不是介绍mybatis二级缓存,而是基于我们目前业务一些痛点,思考如何使用mybatis二级Redis缓存,首先mybatis也提供了一个Redis缓存类,但是那个类并不能解决我们目前业务痛点
FlatMap用法
后端 框架 Java Stream
Stream源码(2):从问题出发看源码
·4 分钟
后端 框架 Java Stream
之前看一些开源项目源码的时候,发现一个问题,假如你贪全,一口气把整个代码看完,由于现在程序架构 比较复杂,很多功能被分成很多个组件来完成,有的时候你会被程序跳来跳去给弄晕,假如你但看一个小功能,你又 不知道为啥要用这个
Stream源码(1):如何实现去重
·3 分钟
后端 框架 Java Stream
本篇博客是在看代码的时候看到使用Java8使用Stream去重的妙用,从而对Java如何使用Stream实现几行代码 完成一个可支持并行化的流式计算程序
MySQL Group By 还可以用来去重
·5 分钟
后端 数据库 MySQL
最近在接手老项目的时候,看到一个SQL: select * from xx group by id, 当时一看到这句就感觉,这个group by是不是多余的,既然select 全部了,那去掉其实也无所谓, 然后询问上一个接手的同事才知道这个是用来去重了,好家伙,以前一直用来分组统计的语句竟然可以用来 去重,涨知识了
Dubbo浅探
·3 分钟
后端 框架 Java Dubbo
繁忙的一周终于过去了,加入小影第一周主要是熟悉后端架构,同事们都挺好,自己的基础还是有点弱,前段时间简单的把Spring Cloud 和 Dubbo学习了一下,但是其实对于工作来说,之前学的都是最新的版本,但是其实公司用的版本很老了,所以需要时间去学习老版本
Spring Cloud Alibaba浅探
·2 分钟
后端 框架 Java SpringBoot
花了半天时间把Spring Cloud Alibaba 的Nacos 、 Sentinel 和 Seata简单的使用了一下,下面是我的一些看法
UML最佳实践
·2 分钟
后端 软件
最近面试的时候一个面试官指出了我对系统架构没有固定的认知,推荐我去好好学习一下UML这个语言,我花了几个小时在B站上看了UML这门课,下面是我对UML最佳实践的一点心得
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框架到底给我们提供了什么东西
Tomcat高并发浅析
·3 分钟
后端 网络
Tomcat作为Java老牌web服务器,所以研究Tomcat就能搞懂高并发,本文是查阅大量资料总结的自己对于web高并发服务器的理解,有可能部分理解是错误的,欢迎来纠错,本文尽量不使用代码,网上查到的都是一大段一大段代码,让人看的头痛
Select和epoll浅析
·2 分钟
后端 网络
这篇文章是【Tomcat高并发浅析】的姊妹篇,专门通过分析Select和epoll两个框架来介绍如何实现高并发
大数据架构小结
·4 分钟
后端 框架 大数据
首先说说什么是大数据,最简单用数据量为单位,大于1亿就算大的,因为小于1亿就在数据库做就可以了,所以大数据是公司数据大到数据库处理不了的时候才要考虑的事情,小公司MySQL优化一下索引就可以了
Flink批和流处理的思考
·3 分钟
后端 软件
随着2019年8月份,Flink1.9.0正式发布,Flink并入Blink代码,开始同时支持批和流的处理,于此同时,批量同时处理所遇到的问题也就产生了
FlinkSQL Client实战
·2 分钟
后端 软件
Flink SQL Client 是一个帮助用户直接运行SQL,而不要进行编译运行的工具,首先他支持多个数据源,在Flink1.9.0开始支持了Hive,并且在Flink 1.10.0时候发布了企业级Hive支持,这样就把批处理和流计算结合了起来,这篇博客详解了Hive在Flink SQL Client中的安装和使用,以及探索在上面做的一些复杂开发实践
Apache Atlas 2.0.0部署实践
·6 分钟
后端 软件
Atlas 是一个可扩展和可扩展的核心基础治理服务集 - 使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。[来自百科]
TB级数据存贮经验总结
·8 分钟
后端 框架 大数据
项目背景 这个项目是深圳一家证卷公司一个TB级日志离线导入项目,当数据达到10T左右的时候,他们的存贮架构以及检索系统直接奔溃,在朋友的推荐下,我负责对这个项目进行整体的重构以及优化,对于我一个大数据新手来说这是一个挑战也是一个学习的机会,最终幸不辱命最终完成了系统的优化,由原来的48小时导入优化至7个小时,并且提供亚秒级的查询检索,下面就是我对这个项目的总结
如何在Ubuntu上发布Scala Jar包到Maven中央仓库
·7 分钟
后端 框架 Java
由于网上的教程大多数是Windows下的,而且都是介绍怎么打包Java的Jar包,关于Scala相关的比较少,因此我踩了不少坑才成功的把包发布到Maven中央仓库,你们可以才中央仓库里面搜到我的包
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.
Build Hadoop Cluster in One Computer
·4 分钟
后端 软件
If you are hadoop novice, I strongly suggest you beginning your study from single node building,you can learn from this website, after you having finshed build one single node, then you can reading my blog to learn how to run a N-node clusters just in your computer.
触摸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的本身也有关
Ubuntu16.04安装Tensorflow的CPU优化
·3 分钟
后端 软件
由于我的笔记本是农卡,没法安装CUDA加速,而且我的显卡只有2G显存,安装OpenCL费力不讨好,而且由于我有一个Google云的300美元的体验,所以可以在Google云上使用TPU来进行加速,所以我就干脆不安装显卡加速,但是Tensorflow提供了指令集优化,由于默认使用pip安装没有提供这个功能,所以只能手动编译安装
Python正则表达式
·5 分钟
后端 框架 Python
引言 # 这篇博客其实写于2016年,最近在重新学了一下正则表达之后,觉得有必要重新整理一下正则的用法
从子网到“互联网”
·8 分钟
后端 网络
引言 # 最近重温《TCP/IP协议簇》,读到子网这个部分,概念都能弄懂,但是不明白子网存在的目的,很多资料都说有两个好处,一是能够判断IP存在局域网还是远程网,另外一个将大的网段分成多个小子网。
巧用Git钩子
·5 分钟
后端 软件 Git
以前听学长提过Git钩子,但是自己一直没有仔细了解过,记得我还写过一个github更新的Python包,现在想想其实用自带的钩子就能很好的完成
代理的前世今生
·5 分钟
后端 网络
引言 # 自己对代理认识不深,也只是会使用而已,由于最近想做一个代理池,于是查了很多资料,发现代理这个东西还是非常有趣的
HTTP复用
·10 分钟
后端 网络
曾经有人问过我一个问题什么是TCP复用,我当时没有回答上来,后面我又遇到一些并发性能问题的时候,我才开始慢慢明白为什么会有这个问题,以及这个问题背后的秘密
Python异步的理解
·6 分钟
后端 框架 Python
起因 # 异步的出现主要是单线程的io等待,由于任务大部分是io处于等待,假如让一个线程工作,所有任务按照流水线形式执行,假如一个请求需要1秒,五个请求需要五秒,那么如果能让他们同时运行的话,那么速度就能增加五倍
PostgreSQL的自增键
·3 分钟
后端 数据库 PostgreSQL
平常在Django项目中大量使用自增这个键,平常都是使用ORM,很少去了解这个东西在数据库中具体使用,最近遇到要备份和复原数据的事情,趁着这次好好探索一下这个自增键的使用
爬虫分布式总结
·3 分钟
后端 框架 Python
由于最近在一家数据服务公司实习,项目需要了解分布式,所以在这里基于scrapy的分布式总结一下爬虫的分布式实习
协程解决递归错误原理
·5 分钟
后端 框架 Python
引言 # 递归是高度抽象化问题的一个好东西,我们能从很多算法书里面看到这个, 但是递归虽然对于人来说好理解,但是计算机执行起来会损失性能,一个差的递归可能会耗光计算机的资源
ansible管理nginx负载均衡
·4 分钟
后端 软件
前言 # 因为手头自己有三个服务器,所以想折腾一下负载均衡。
git 工作流程
·3 分钟
后端 软件
git是当今流行的版本控制工具,一般我们可能只要会push, pull就可以了, 但是当我们同别人共同工作的时候,我们必须要了解git协同开发的一些重要流程.
字符串处理
·1 分钟
后端 框架 Python
string # 原来的很多函数都逐渐迁移到str和unicode对象上去了, 不过有两个函数没有迁移出去
在Linux下玩转Vim
·3 分钟
后端 软件
学了鸟哥的书前面基础后,突然想在Linux下用gcc玩C语言,然后了解到了Vim这个神一样的编译器,接下来经过超长时间虐心的安装无数插件无数依赖包,突然有种打自己一顿的感觉,还好终于把Vim装的和VS差不多了,接下来我介绍我安装Vim的经验吧。 # 我虚拟机下的Linux原来是红旗6的,但是我改了一下yum的包源成CentOS的并且全部update一下后就神奇的变成了CentOS6,虽然他们两个是同一家公司,但是总给我一种由盗版成了正版的感觉。。 # 闲话不多说,刚开始装第一个插件是Ctags # 刚开始装的时候我是在X-Windows里面的这里下载再转回shell敲
有用的几个Shell命令
·1 分钟
后端 软件
管线命令 (pipe): # 撷取命令: cut, grep 排序命令: sort, wc, uniq 双向重导向: tee 字符转换命令: tr, col, join, paste, expand 分割命令: split 参数代换: xargs 分割文档 # 长长的一大片文档有时我们并不愿意看到全部内容,我们只想关注 部分内容的时候了可以考虑使用分割文档命令
关于python3和python2 import区别
·3 分钟
后端 框架 Python
最近从python2转到python3,发现还是有一些不同,一些库改名字很好解决,但是这个import机制不了解原理是不好理解的.
富文本编辑器CKEditor配置CKFinder
·3 分钟
后端 软件
由于网站要实现图片和文字的混排的上传 所以在网上找了富文本编辑器的插件,发现CKEditor这款还不错的插件
大数据学习小总结
·1 分钟
后端 框架 大数据
最近在学习大数据,书看了不少,但是总是觉得很迷茫,不知道怎么学下去,今天 突然想写点什么来 总结一下这些天.
阿里云服务器初体验
·1 分钟
后端 软件
申请了一个阿里的15体验的云服务器,同自己玩的虚拟机还是有点不同的。 # 1.用户名和密码 # 找了半天没有找到那个是用户名,试了实例的id,没有用,最后终于在登录帮助名里面找到了,用户名竟然是root!!!!,我用的是Ubuntu系统,说好的Ubuntu不提供root权限的呢,阿里还真会改造Linux系统 ,但是我觉得用root登录还是不安全,我觉得新建一个用户吧
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的,生成大量数组非常简单,而且操作他们速度非常快.
GitHub Education Pack
·3 分钟
后端 软件
GitHub推出一个对学生和教师的福利包,对于学生来说这是一个不小 的福利,只要通过一个edu邮箱就可以领取,但奈何国内有些无良人买卖 邮箱,所以GitHub对于.cn的邮箱一律拒绝,但是可以通过上传学生证的方法 得到验证,题主刚开始用学校邮箱试了试,失败了,抱着试一试的心态,上传了 学生证,没想到第二天就给我回复,并给我这个豪华大礼包,接下来我就介绍介绍 如何用这个包来.