自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

每天学习一点点,每天记录一点点

将自己的所想、所记、所写与大家一起分享

  • 博客(101)
  • 资源 (1)
  • 收藏
  • 关注

翻译 ChatGPT如何为开发者所用

本文将阐明ChatGPT对开发人员的帮助,以及ChatGPT的不足之处

2023-06-03 22:52:52 306

原创 如何在测试中让H2支持JSONB

在使用H2执行测试时,如果H2不支持某种数据库数据类型,如JSONB,则会导致测试执行失败。本文介绍了如何通过SQL语句创建用户自定义类型,从而扩展H2数据类型,以支持原本不支持的数据类型。

2023-05-07 10:34:00 722 1

翻译 通过零拷贝高效传输数据

深入对比了传统的数据传输方法和基于零拷贝的数据传输方法,包括数据拷贝次数、上下文切换次数和性能。

2023-05-04 20:29:46 310

原创 通过Fake SFTP服务器测试文件服务器相关业务逻辑

本文介绍了一种在测试运行过程中启动一个基于内存文件系统的文件服务器的方法,即可以实现测试的稳定性,又无需Mock文件服务接口,同时还能够测试文件服务器行为的正确性。文章中采用的是更安全的SFTP文件服务器及其客户端SDK,希望对大家测试文件服务器相关的业务代码时有帮助。

2023-04-07 13:42:40 500

原创 基于MockServer测试访问其他服务接口的代码

系统的介绍了在测试访问其他服务接口的代码时,需要测试哪些内容,有哪些测试方式。并给出了一个基于MockServer的测试示例。

2023-03-31 14:07:28 261

翻译 Python类型提示方法速查表

python是一种运行时类型推断语言,因此在编写python代码时,IDE很难给出准确的代码提示,这大大降低了开发效率。本文给出来一个python的类型注释速查表,可以帮助开发人员了解如何给变量、内置类型、函数和类提供类型注释,从而让IDE给出正确的代码提示。

2023-03-18 23:12:41 114

原创 SpringBoot中一行代码解决字符串向枚举类型转换的问题

在Web开发,对于客户端传输的具有几个固定值的字符串,通常在DTO中使用Enum接收,以使得我们的代码更具有面向对象的风格。但是SpringBoot中默认是不支持String到Enum转换的。本文介绍了如何向应用中注入SpringBoot提供的String到Enum转换的Converter,分析了其原理和介绍了其优缺点。

2023-03-06 11:00:35 1149

原创 Mockito框架下如何优雅的验证调用Mock对象方法的入参

在单元测试场景中,为了测试某一个类通常需要mock其依赖的的类,再通过验证传给被调用的Mock对象的方法的入参是否符合期望来验证被测类业务实现的正确性。在Mockit测试框架下,通常是通过在argThat中使用lambda表达式来判断参数的正确性。这种方法具有代码不优雅和无法从测试用例错误信息中定位出不符合期望的入参参数的问题。本博客介绍了利用Mockit测试框架@Captor注解可以捕获Mock对象的方法的入参,再通过assert判断参数是否符合期望。通过该方法可以让测试代码更优雅,错误提示信息更有效。

2023-03-04 11:12:33 1937

原创 Linux/MacOS/Window平台粘贴板终端命令,欢迎大家使用、修改和提出意见

介绍了支持Linux/MacOS/Window平台的粘贴板终端命令,该命令的使用场景包括:拷贝文件内容到粘贴板、查看粘贴板内容、清空粘贴板、将粘贴板内容输出到目标文件等。

2023-01-13 23:06:09 470

原创 Mapstruct problem: Unknown property error

一种Mapstruct problem: Unknown property error 问题的分析与解决方法。

2022-12-04 22:22:15 734

转载 如何解决并发场景下扣款的数据一致性问题?

给出了并发场景下如何解决扣款一致性问题的解决方案。

2022-08-31 10:02:52 365

原创 找不到符号@SuperBuilder,你以为真的是Lombok的问题?

总结了一个由于MapStruct Converter错误引起的Lombok报错。

2022-07-30 17:41:34 3204

原创 log4j设置日志的时区

对于跨时区部署的服务,为了保证时间的一致性,通常将服务的时区设置为UTC时区,但是这样会导致日志打印的时区也变成UTC。由于用户所在的时区与日志打印的时区不同,测试、开发和运维定位问题带来不变。因此,需要能够调整日志打印的时区。本文提供了两种修改日志打印时区的方案。......

2022-07-30 09:47:43 1555

原创 让Chrome浏览器下载而非打开文件

介绍了如何指定浏览器处理附件的方式并指定下载附件时的文件名

2022-05-09 22:30:01 3667

原创 Spock测试框架如何Mock静态方法

采用Spock测试框架如何Mock静态方法,以及常见问题

2022-05-07 08:49:40 3693

原创 MapStruct: Method has no source parameter named xxx. Method source parameters are “arg0, arg1,arg2“

MapStruct: Method has no source parameter named xxx. Method source parameters are "arg0, arg1,arg2"

2022-05-02 22:05:45 1488 1

原创 基于MariaDB4j实现持久层单元测试

分析了为什么要使用MariaDB4j代替H2实现数据持久层的单元测试。如何在项目中使用MariaDB4j。使用MariaDB4j会遇到哪些问题及相应的解决方案。

2022-04-16 21:42:11 3221

原创 基于DDD的微服务设计-DDD核心概念

详细介绍了DDD中战略建模和战术设计中的关键概念,每个概念中应包含的内容和注意事项。

2021-11-10 09:17:34 1067

原创 Python项目依赖管理

第1步:生成依赖清单安装pipreqspip3 install pipreqs在代码目录上边执行命令生成requirements.txtpipreqs ./结果如下:第二步:安装依赖执行如下命令安全依赖:pip3 install -r requirements.txt

2021-08-18 09:21:12 245

原创 第4篇:如何组织微服务开发团队

介绍了按照服务所有权模式组织微服务开发团队的方式。

2021-08-17 16:40:56 604

原创 第3篇:微服务开发需要关注的问题

为了帮助设计和开发人员开发出一个高质量的基于微服务架构的应用,本篇文章介绍了在微服务的设计和开发过程中需要关注的问题。一般,这些问题都需要在系统设计阶段给出相应的解决方案。

2021-08-14 11:53:49 426

原创 第2篇:应用扩展方式-扩展立方体

介绍了可扩展立方体模型的X轴、Y轴和Z轴扩展方法。设计人员可以根据业务场景组合不同的扩展方法。

2021-08-08 21:54:36 303

原创 第1篇:单体架构与微服务架构的对比

介绍了单体架构、微服务架构,以及这两种架构的优缺点。

2021-08-02 21:16:44 532

原创 第0篇:开篇

在微服务开过程中,我经常会思考的问题包括进程间架构设计、进程间通信方式、非功能需设计、进程内架构、设计如何落地、微服务治理等各种问题,我期望为我个人准备一套“利器”,这套“利器”可以作为我对微服务开发的指导。微服务开发100问是我从事微服务开发这几年来的经验总结,范围从理论到实践。内容来源于我遇到的问题和我的解决方案,工作中的同事给到的建议,同时包括我从其他资料看到的比较好的实践。虽然博客专栏的名字叫微服务开发100问,但其中包含的博客文章可能不到100篇,也可能会超过100篇,这里只是我立的一个fla

2021-07-30 08:32:48 69

原创 CodeReview效率提升工具:CodeReview Intellij IDEA插件

介绍了本人开发的Intellij IDE插件CodeReviewRecorder,提升Code Review问题的记录效率和方便问题的闭环跟踪。

2021-05-29 21:49:45 7944 2

原创 敏捷开发团队必须要做的几件事

作为敏捷开发团队的TL,经过多个项目的经验积累,总结了在敏捷开发过程中一定要做的几件事(含敏捷活动)。

2020-05-27 22:50:40 716

原创 软件设计工具--PlantUML

慢慢发现在诸多技能中,coding不应该花很多时间。 在代码编写前和代码编写后的事情,往往才是需要花大量时间的。 想清楚你要做什么,要怎么做,以及之后要达成什么样的目标,检验结果是否符合预期这些事情,都应该比coding要重要。不然准备不充分,上来就写代码,是不可持续的。

2020-04-29 20:07:27 1077

原创 图形化解释分布式系统CAP定理

本文以图形化的形式介绍和证明了CAP,以及解释了为什么一致性和可用性间的矛盾。

2020-04-15 13:20:32 246

原创 C++11新特性(持续更新)

C++11中常用新特性:Lambda表达式、自动类型推导、统一的初始化语法、nullptr、代码构造函数、右值引用、强类型枚举、静态断言、可变参数、noexcept、override标识符、线程库、新的智能指针类、新的C++算法、无序的集合

2020-04-12 21:13:59 814

原创 结构化代码-分层封装与按特性封装

结构化代码一直是开发人员比较纠结的地方,也是软件架构的基础。开发人员在写代码时总会首先考虑到某个类放在哪里比较合适。本文介绍了结构化代码的两种方法:分层封装(如clean架构)和按特性封装,及这两种方式的优缺点。开发人员可以根据项目特点在项目中单独或混合使用这两种结构化代码的方法。

2020-03-29 12:29:19 833

原创 Android开发中常用Gradle配置及问题处理-2(持续更新中)

记录使用Android Gradle过程中遇到的一些问题和解决方案

2020-03-16 22:04:56 681

原创 Gradle之apt, annotationProcessor和kapt

介绍了APT的概念和处理流程,Java和Kotlin两种语言下如何在Gradle中配置APT,以及由于APT配置方式用错导致使用ARouter路由时始终提示“There is no route match the path [/xxx/xxx], in group [xxx][ ]”

2020-03-16 21:52:42 10324 3

原创 Semaphore和线程池的差异

通过代码示例分析了Semaphore与线程池的区别,并且用代码示例演示了使用Semaphore的一个最大误区

2020-03-05 13:37:12 1201 2

原创 微服务治理2 - Eureka服务注册

分析了Eurek Client服务注册流程及其区域亲和特性(即Region和Zone)

2020-02-29 17:39:53 882

原创 微服务治理1 - Eureka服务治理架构及客户端装配和启动流程分析

主要介绍了基于Eureka的微服务治理架构,Eureka Client的装配和启动流程。

2020-02-29 17:27:52 892

原创 Spring Security源码阅读1 - 核心组件和服务

详细介绍了Spring Security 5.x的核心组件和核心服务

2020-02-24 15:47:19 366

原创 Spring Security源码阅读3-Spring Security过滤器链的初始化2

详细分析了FilterChainProxy过滤器链式调用的实现原理,Spring Security过滤器向Servlet容器的注册过程和用户请求调用Spring Security过滤器的过程。

2020-02-20 13:51:53 472

原创 Spring Security源码阅读2-Spring Security过滤器链初始化1

从源码角度详细分析了Spring Security过滤器链初始化的过程。

2020-02-18 20:09:28 467

原创 从团队协作的五大障碍看团队管理该怎么做

总结了《团队协作五大障碍》这本书的核心内容并介绍了其如何应用到团队管理中。

2020-02-14 21:00:12 2778

原创 分层软件架构及其数据解耦

分层软件架构的分、解与合,以及各软件层间的数据解耦和转换。

2020-02-11 21:56:47 5686

数学建模——电信市场的数学模型

为电信公司提供决策,如收费决策、业务项目决策级如何发展其他顾客

2009-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除