自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(232)
  • 收藏
  • 关注

原创 4+1视图的理解和使用

4+1视图

2023-11-04 13:33:41 348

原创 微服务的定义

微服务的定义以及常见的错误理解

2023-11-01 19:58:01 798

原创 kotlin 官方doc学习笔记

kotlin官方文档

2023-05-14 08:59:14 887 2

原创 架构师的核心竞争力

相对于初级的程序员,架构师具有顶层的设计能力,更优秀的底层实现能力,以及更丰富的经验。具体来说,架构师可以根据ddd的方式,分析并给一个复杂的业务系统建模,将一个庞大的系统拆分为合适的子系统,能够清晰的定义子系统的边界以及子系统之间的交互。多年的实战经验,架构师接触过各式各样的系统,比如面相终端用户的app系统,web系统,面向内部用户的oss系统,还做过基础设施比如日志系统和路由系统,还做过业务中台。丰富的经验能够让架构师面对新的问题的时候游刃有余,迅速解决问题并提出成熟的可靠的方案。

2023-03-27 22:43:42 249

原创 假设面试:作为一名架构师,面对一个复杂的业务系统,如何一步步设计和实现?以公司现有业务为例

flexport作为一个货运系统,首先我们要明白我们的客户是谁,我们的客户主要是shipper和consignee,shipper主要是工厂,consignee主要是工厂或者商家。主要业务流程: shipper将货物交付给flexport,flexport联系carrier(轮船公司),将货物运送到consignee指定地点。

2023-03-18 11:56:06 605

原创 软件工程师的技术层级

程序员的技术层级

2022-12-11 14:11:33 721

原创 协作编程指南: Insepction

集体代码审查

2022-12-11 13:59:08 228

原创 Spring Data JDBC & Spring Data JPA

jdbc & jpa repository

2022-12-03 14:23:39 738

原创 Spring Data Commons

Spring data repository

2022-11-27 14:40:54 2534

原创 SpringFramework 之EnableCaching

EnableCaching源码分析

2022-11-05 18:01:50 588

原创 SpringFramework 之EnableAsync

EnableAsync注解原理

2022-10-30 15:41:36 452

原创 SpringFramework 之 @Transactional实现原理

@Transactional可以实现声明式的事物管理,按照对spring container的了解,那么肯定是某个BeanPostProcessor对标记有@Transactional的bean做了enchance

2022-10-23 11:50:39 672

原创 SpringFramework之AutowiredAnnotationBeanPostProcessor

org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor

2022-10-17 17:51:06 928

原创 Spring Framework 之 Scope

spring Scope的原理和使用

2022-10-15 14:34:58 588

原创 Spring Framework 之BeanFactory and ApplicationContext

BeanFactory and ApplicationContext

2022-10-09 20:04:38 209

原创 @Bean与@Coponent的初始化

@Bean与@Coponent的初始化

2022-10-09 19:35:13 700

原创 spring-boot源码解析之DispatcherServlet

DispatcherServlet

2022-10-08 15:39:16 928 1

原创 spring-boot源码解析之DefaultListableBeanFactory

DefaultListableBeanFactory

2022-10-07 18:06:39 898 1

原创 创建自定义BeanPostProcessor和BeanFactoryPostProcessor

创建自定义BeanPostProcessor和BeanFactoryPostProcessor

2022-10-05 16:06:15 538

原创 spring-boot源码解析之AnnotationConfigServletWebServerApplicationContext

org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext

2022-10-04 20:45:45 5549

原创 spring-boot源码解析之SpringApplication

SpringApplication源码阅读

2022-10-03 12:48:46 1306

原创 spring-boot notes

spring-boot官方文档笔记

2022-09-11 23:17:56 505

原创 spring framework notes

spring framework官网笔记

2022-08-08 11:29:50 797

原创 Assignment 读写分离以及无竞争/无锁优化

assignment读写分离 & 无锁设计

2022-07-10 16:28:51 317

原创 spring依赖查找和依赖注入

依赖查找查找对象就是spring 容器管理的各种Bean, 包括xml bean definitionjava annotation and configurationspring内建Bean, eg:AutowiredAnnotationBeanPostProcessor手动注册BeanDefinition依赖注入可以通过依赖查找获取的所有Bean外部化配置: @Value特殊对象:BeanFactory, ApplicationContext可以看到依赖注入的范围更广..

2021-12-10 22:09:39 289

原创 如何在spring注册一个处理其他Bean的Bean

场景假设我们需要深度定制spring,比如我需要控制@Autowired或者@Value的执行逻辑,此时我可以:@Configurationpublic class AppConfig { @Bean public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer();

2021-12-10 21:48:37 332

原创 spring @PostConstruct以及循环依赖的bean

@PostConstruct/** * The <code>PostConstruct</code> annotation is used on a method that * needs to be executed after dependency injection is done to perform * any initialization. This method must be invoked before the class * is put int

2021-12-09 11:24:33 1779

原创 【The Clean Code Blog】roots

originalhttp://blog.cleancoder.com/uncle-bob/2021/09/25/roots.htmlstoryBob炫富。15岁:和小基友Tim每个星期都去Digital Equipment Corporation玩,然后遇到了PDP-820岁:在Teradyne Applied Systems工作,使用M365,其实就是一个升级版的PDP-864岁(2015年):在IPAD上手写了一个PDP-8的模拟器。纯粹是吃饱了没事干。然后在这个模拟器上实现了Euler 4

2021-11-18 17:53:11 167

原创 【The Clean Code Blog】Functional Duplications

Originalhttp://blog.cleancoder.com/uncle-bob/2021/10/28/functional-duplication.htmlstory马丁老爷子又在捣鼓他的《太空大战》(space war)游戏。玩着玩着游戏挂了,初步排查是游戏出现了两个在地理位置上完全一致的基地(base)。按理说不应该出现这种情况,因为基地不会移动,只要基地在创建的时候没有地址冲突,以后不管怎么玩都不应该有。那么问题出现在哪里呢?functional programming基地的位置虽

2021-11-17 15:05:45 3694

原创 java Repeatable annotations

Repeatable annotaionsjava8 开始支持,对某个字段或者类上面的多个Anno,会自动转换成Annosexample@PropertySource("a")@PropertySource("b")class A {}等价于@PropertySources(["a"])class A {}支持重复注解的annotation必须说明自己支持重复注解并且指明重复注解类@Target(ElementType.TYPE)@Retention(RetentionPolic

2021-11-06 16:15:06 222

原创 spring 注解

spring把注解玩得很溜,自定义component主要通过注解(比如@Repository会生成对应的实现类),继承(inherits TypeFilter实现自定义过滤自动配置),接口(实现CommandRunner在启动时运行)向spring 传递信息。spring自定义了很多注解新特性并且为之实现了对应的解析。注解合成@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Spri

2021-10-31 16:15:33 111

原创 软件的设计原则,设计模式以及软件的质量属性

文章目录软件的设计设计原则设计模式软件的质量属性定义关系软件的设计ant design 设计价值观在蚂蚁的开源项目ant design的介绍中,谈到了价值观,原则和模式之间的关系:设计价值观是蚂蚁设计团队自己发明的概念(至少我没在其他地方看到过,或许是我前端经验不够丰富),但是设计原则和设计模式在软件设计领域中是非常常见的,并且蚂蚁团队对这两个概念的理解也很准确,即:设计原则是思想,用于指导软件的实现;设计模式其实就是行之有效的解决特定问题的步骤,也称为解决方案。道家思想讲究道和术,道就是原则,

2021-10-30 21:26:30 2285

原创 一种自定义的计算java对象hash值的方式

HashCodejava Object对象自带hashCode函数,默认所有对象的hashCode都不相等。但是java自带的原始类型更改了hashCode的计算方式,所以所有对象的hashCode都可以是基于基本类型的hashCode组合Lomboklombok的EqualsAndHash拥有我们要求的绝大多数特性:1,自动扫描字段2,可配置的过滤字段但是又个业务要求是,不关心集合数据类型的元素的顺序,这用lombok达不到自定义hash实现1,自动扫描字段2,可配置的过滤字段3,不关

2021-10-25 16:27:45 947

原创 嵌入式tomcat

tomcat服务器tomcat作为一个可执行程序,通过给它提供配置文件以及servlet handler class来运行。这时候服务器的配置由配置文件完成,代码逻辑由你的servlet完成。这时候整个程序的控制权在tomcat服务器手里,它来读取你的服务配置和servlet handler。程序的入口和运行流程由tomcat server决定。tomcat librarytomcat是用java写的,本身也提供了java api。那么我们可以通过创建一个org.apache.catalina.sta

2021-10-24 16:36:01 1787

原创 maven 单元测试

指定测试对象mvn test -Dtest=Class1#method1,Class2覆盖率报告Intellij:Run -> RunXXXWithCoverage,在右上方可以看到每个目录和文件的覆盖率,还可以到每个源文件查看覆盖情况maven 命令行:jacoco

2021-10-23 21:58:28 261

原创 bazel使用指南

什么是bazelBazel is an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large code

2021-10-22 18:28:34 2037

原创 postgres array 循环

DO $$DECLARE name_iter integer;BEGIN FOREACH name_iter in ARRAY ARRAY[1,2,3] LOOP RAISE NOTICE 'name %', name_iter; END LOOP;END;$$ LANGUAGE plpgsql;

2021-10-17 20:36:34 819

原创 postgres使用扩展模式显示数据并且显示执行时间

\x 扩展模式\timing on 显示执行时间? 帮助

2021-10-17 20:26:05 334

原创 postgres FILTER函数实现多重过滤和窗口函数实现分组topn

背景假设有一张学生成绩表create table student_scores ( id BIGSERIAL PRIMARY KEY, name varchar, subject varchar, exam varchar, score int);DO $DO$ DECLARE name_var student_scores.name%type; subject_var student_scores.subject%type; exam_var student_sco

2021-10-17 14:09:56 1558

原创 assignment的领域模型

文章目录为什么想到写这个背景模型对象名词解释SHIPEMNTOPERATORSETTINGASSIGNMENTevaluaterole技术实现和挑战evaluate的时机并发带来的问题解决方法去掉无效的evaluate过程缓存operator的层级结构图片源码为什么想到写这个我最近开始学习了《领域驱动设计》(英文版)这本书,书里提到,在领域专家(类似于我们的产品经理或者其他对业务很熟悉的人)和技术专家(程序员)之间,应该建立一个领域模型,作为领域专家和技术专家沟通的桥梁。这个模型的作用有很多:帮助技

2021-10-16 23:09:15 493

空空如也

空空如也

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

TA关注的人

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