- 博客(273)
- 资源 (15)
- 收藏
- 关注
原创 数据库设计流程范式
日常需求开发中对数据库的设计的常规思路是,凭开发经验、对业务的理解,以及对数据库知识的掌握来进行数据库设计。采用 DDD 思维设计思路是,先进行事件分析,再进行领域建模,最后将领域模型一一映射到数据库实体中,映射过程中会考虑“关系”、“冗余”等设计。以前对理论的认知不够,不能做到理论指导实践,经过反复实践后最终回到了理论本身。
2025-02-15 17:00:15
170
原创 2024年,我想明白的几件事情
技术“唯我独尊”的认知,加上“宅”的习惯决定了不乐意去“外交”的个性,觉得“外交”是在耽误自己的时间,是一种负担。今年随着TL不间断的“外交”行为的灌输,开始意识到工作中的生产关系、技术影响力都是建立在适当“外交”的基础之上,换句话说,想要带来更大的社会价值离不开适当的“外交”。学会适当的“外交”比花大量时间自我学习更重要。之前觉得只要技术硬就可以通吃整个行业,这个观点现在意识到是非常片面的,自身技术硬所带来的影响是有限的,自然所创造的社会价值也非常小,学会和团队协作共赢才会产生更大的社会价值。
2025-01-19 12:02:22
331
原创 2024后端开发面试题总结
上一篇离职贴发布之后仿佛登上了热门,就连曾经阿里的师兄都看到了我的分享,这波流量真是受宠若惊!回到正题,文章火之后,一些同学急切想要让我分享一下面试内容,回忆了几个晚上顺便总结一下,专家岗位面试主要对项目、技术和算法三个方面进行考查,有问题可以留言讨论。
2024-07-27 11:42:45
643
原创 阿里三年,我选择了离开
自上次博客更新已有半年时间了,不是离开了,而是物色一下下阶段的工作。然而,经过这半年很多之前的想法开始有了很大的改变,这里顺便做下总结。
2024-07-14 17:20:32
912
原创 Spring容器中scope为prototype类型Bean的回收机制
通过 AutowireCapableBeanFactory 方法 autowireBean 可以将对象装配成 Spring 管理的标准 Bean 对象,主要是用于来填充有注解的属性,这样才可以使用 Spring 的 DI 特性。通过代码 new 出来的对象使用 AutowireCapableBeanFactory 方法 autowireBean 填充属性成为标准 Spring Bean 后不用担心内存溢出的问题,本质上和 Spring prototype Bean 的回收机制一样,使用完就有可能被
2023-12-16 15:22:21
811
原创 函数式编程框架 functionaljava 简介
JDK8 引入了 lambda 表达式,吸收了函数式编程的部分特性,目的是对现有编码语义的优化,减少语法冗余。轻量级的将代码封装为数据,使代码简洁,易于理解。但 Java 非函数式编程语言。functionaljava 框架是一个提升 Java 函数式编程的开源库,该库实现了许多基本和高级编程抽象,有助于面向组合式的开发。该框架同样可以作为学习函数式编程概念的平台。
2023-11-20 01:07:00
715
原创 Spring @Configuration 注解解析原理
@Configuration 注解是 Spring 3.0 版本引入的新特性(目前版本 6.0.11),它用于将一个类标记为配置类,通过配置类可以定义和组装 Spring Bean。一般来说注解都会有相应的解析器,@Configuration 注解靠 ConfigurationClassParser 来解析,时机是在 BeanFactory 的后处理阶段(ConfigurationClassPostProcessor)
2023-09-02 23:20:37
482
原创 近阶段的一些思考
比如直接和客户对接,结合实际对接体验和客户反馈的问题,得出对接痛点的结论,同时对问题进行分类分析,最终得出优化策略(比如区分对接客户优先级、引进答疑工单、客户诊断工具、对接流程节点标准化等)。近期代码 review 过程中的一个思考点,常规的代码 review 是大家围在一起看代码规范、并发等技术性问题,但缺乏从产品视去 reivew,最好的方式是以用户角度先去体验产品,结合代码设想各种异常场景,从而反思代码和产品设计上的不足。日常工作遇到一件事情时,要知其由来,自己需要做些什么,做完之后后续还要做什么。
2023-08-05 12:38:15
186
原创 Java9模块化学习总结
2017 年 JDK9 引入了“模块化”的概念后,上述问题都得到了一定的解决。模块化将类和资源封装在模块中,仅导出其他模块需要访问的公共包。从概念上可以看出模块化必须遵循三个核心原则:强封装性:隐藏模块实现内部细节,分离供其他模块访问的公开代码定义良好的接口:模块需要向其他模块公开定义良好且稳定的接口显式依赖:模块间的依赖关系可以产生一个模块图:节点表示模块,边缘表示模
2023-07-01 00:13:37
762
原创 《学会提问》读后感
批判性思维是什么?在接触之前我是没有概念的,先借用百度百科一句话:批判性思维(Critical Thinking)就是通过一定的标准评价思维,进而改善思维,是合理的、反思性的思维,既是思维技能,也是思维倾向。
2023-05-10 22:09:22
646
原创 流程引擎之compileflow简介
compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎。compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是**专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成 java 代码编译执行,简洁高效**。当前是阿里业务中台交易等多个核心系统的流程引擎。compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。
2023-02-19 12:37:23
2619
原创 流程引擎之Flowable简介
Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎,通过 Flowable 流程引擎,我们可以部署遵循 BPMN2.0 协议的流程定义(一般为XML文件)文件,并能创建流程实例,查询和访问流程相关的实例与数据等等。
2023-02-19 12:31:22
5547
原创 流程引擎之Camunda简介
Camunda 是支持 BPMN(工作流和流程自动化)、CMMN(案例管理) 和 DMN(业务决策管理) java 框架。Camunda 基于Activiti5 保留了 PVM,其开发团队也是从 activiti 中分裂出来的。Camunda 来自拉丁语动词”capere”(理解)和“munda”(干净),它意味着我们想要深入了解我们周围的世界,并基于这种了解,我们想要以一种既有效又道德正确的方式让世界成为一个更美好的地方,为了我们所有人。
2023-02-19 10:17:59
7263
原创 流程引擎之Activiti简介
Activiti 是一个开源架构的工作流引擎,基于 bpmn2.0 标准进行流程定义,其前身是 jBPM,Activiti 相对于 jBPM 更轻量,更易上手,且天然集成了 Spring。2010年 jBPM 创始人 Tom Baeyens 离开 JBoss,随之加入 Alfresco 后很快推出了新的基于 jBPM4 的开源工作流系统 Activiti5。
2023-02-19 09:57:59
3558
3
原创 流程引擎之jBPM简介
jBPM 项目于 2002 年 3 月由 Tom Baeyens 发起,2003 年12 月发布1.0 版本。jBPM 在 2004 年 10 月 18 日,发布了 2.0 版本,并在同一天加入了JBoss 组织,成为了 JBoss 企业中间件平台的一个组成部分,它的名称也改成 JBoss jBPM。随着 jBPM 加入 JBoss 组织,以及 JBoss 被 RedHat公司收购,jBPM 也进入一个全新的发展时代,它获得了大量的社区和商业支持,因此发展前景十分光明。
2023-02-15 23:00:05
2588
1
原创 流程引擎之KIE项目简介
KIE 是“Knowledge Is Everything”的简称,KIE 名称也被用于系统的共享方面,比如统一构建、部署和使用。jBoss 公司通过 KIE 将 jBPM 和 Drools 等相关项目进行了一个整合,统一了他们的使用方式
2023-02-15 00:28:44
2056
原创 流程引擎之发展史及对比总结
市场上比较有名的开源流程引擎有 jBPM、Activiti、Camunda、Flowable 和 Compileflow。其中 jBPM、Activiti、Flowable、camunda 四个框架同宗同源,祖先都是 jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。而 Compileflow 专注纯内存执行,是一个无状态的流程引擎,可以作为了解。
2023-02-11 17:55:38
3060
原创 常见日志框架使用及日志打印规范设计
slf4j 是各种日志框架的 facade 抽象,log4j、logback、java.util.logging 是 slf4j 不同的实现方式,另外 slf4j-simple 是 slf4j 提供的简单实现。commons-logging 和 slf4j 类似,是 apache 最早提供的日志的门面接口,log4j 和 java.util.logging 也提供了相应的实现方式。
2022-12-21 20:43:47
1648
原创 杭州购买油车流程笔记
这篇笔记记录的是博主购买油车的全流程,避免采坑。购车之前首先确认好自己喜欢的车型(SUV,还是小轿车)、型号(哪个系列)和类型(新能源还是油车),这里由读者自己选择。
2022-11-05 15:12:44
1103
原创 责任链模式auto-pipeline工具使用及源码解析
设计模式责任链模式是一种类似于“击鼓传花”的模式,执行者对象拥有下一个对象的引用从而形式一条链,请求在这个链上传递。常见的如审批模式等。这里介绍一下 auto-pipeline 工具,该工具仅使用 @AutoPipeline 便可自动生责任链相关的系统代码,让开发者更专注于业务流程的开发。
2022-10-30 15:12:31
949
原创 常用代码扩展点设计方式
在平时业务开中经常会遇到不同业务走不同的业务逻辑,为了代码的扩展性,不得不采取一些手段来对进行解耦,本文将介绍常用的代码扩展点实现方式,包括 Java SPI、dubbo SPI、策略模式及改进扩展点实现、Cola扩展点和抽象业务扩展点实现方式。...
2022-08-08 18:16:32
2043
原创 体验 win10 下 oceanbase 数据库
OceanBase是由蚂蚁金服、阿里巴巴完全自主研发的分布式关系型数据库,始创于2010年。OceanBase具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系型数据库、低成本等特点。OceanBase至今已成功应用于支付宝全部核心业务:交易、支付、会员、账务等系统以及阿里巴巴淘宝(天猫)收藏夹、P4P广告报表等业务。除在蚂蚁金服和阿里巴巴业务系统中获广泛应用外,从2017年开始,OceanBase开始服务外部客户,客户包括南京银行、浙商银行、人保健康险等。win10 系统单结点集群安装
2022-06-24 11:20:23
5639
原创 《营销5.0后互联网时代的企业战略营销》读书笔记
怀着对“营销”继续探索的心情,今年3月份完成了《营销5.0》的阅读,读本书的初衷是希望从书中能学习到关于营销更专业、更细粒度的知识,比如怎么设计一个完善的会员积分系统,积分监控怎么做,积分价值怎么设定等等,然而事与愿违,营销5.0主要围绕着 CIDR 模型来一点点阐述后互联网时代的企业战略营销框架。对于贴地气的互联网营销技术开发人员,命题有点大但读起来不费劲。本书适用于从事营销产品相关的运营、销售和开发人员,读完此书你将会收获:下面结合自己的理解做一下对《营销5.0》的总结。随着国内电商的流量见顶,国内电
2022-06-12 17:52:24
577
原创 三方账号授权登录系统设计思路
借技术总结时间梳理一下三方登录授权的一些技术细节实现,假设saas 店铺和商品管理插件中心是两个独立的账号体系(内部分别对应 shopId 和 sellerId),saas 店铺的商品管理模块在商品管理插件中心进行管理,如下图所示:其中saas 店铺首次使用商品管理插件中心时,需要注册商品插件卖家账号,注册完账号再次使用时会自动登录商品插件卖家账号(商家无感跳转)。过程中需要考虑以下技术细节:核心技术实现细节点:下面和业务串联起来使用(看图说话,细节不再详述,有问题直接留言,回复快):场景一:saas 店铺
2022-06-05 10:49:06
962
原创 近阶段的一些思考
近期被内网一位同学总结的一句话惊醒了:沉迷于忙碌带来的安全感而不自知。随之便是片刻的反思,自己有没有出现过这种忙碌的情况却自认为理所当然,同时又没有察觉丝毫的危机感。在经历了 SAAS 项目和分销价项目后,总结到自身的问题有以下几点:prd(需求文档)没有深入阅读,最后发现的问题点都已经在 prd 上体现,浪费了较多的沟通成本近阶段读 prd 包括读技术文章养成了一个不好的习惯,快速地提取文字关键信息并形成自己的理解,这个方法虽然阅读快,但过程中会忽略内容的关键细
2022-05-18 23:24:11
196
原创 豆瓣电影评论情感分析(含代码+数据)
通过分析豆瓣用户电影评论数据,来对不同国家在不同时间内的电影进行情感分析,并通过云图及直方图进行效果展示。
2022-04-16 22:21:08
8617
1
原创 Spring多数据源TransactionManager冲突解决方案
文章目录现象Spring 事务机制报错原因及解决方案现象近期做了一个业务需求,需要增加多数据源,同时对事务也进行了配置,待发布上线后出现使用 @Transactional 注解的方法抛出 NoUniqueBeanDefinitionException 异常:No qualifying bean of type ‘org.springframework.transaction.PlatformTransactionManager’ available: expected single matching b
2022-04-10 20:27:20
9042
3
原创 详述RocketMQ消息过滤方式
Rocket MQ 消息过滤包括基于表达式与基于类模式的两种过滤方式,其中表达式又分为 tag 和 sql92 模式(sql92 模式可以会对用户属性字段进行复杂的过滤),且都是在服务端对消息进行过滤。
2022-03-27 15:40:27
2494
原创 idea编译失败类找不到解决方式
文章目录方式一:使用 idea 的 Invalidate Caches 功能方式二:使用 mvn idea:idea 命令重新生成项目文件近期在一个应用工程里修改代码,拉下来后发现引入其他 module 中的类找不到,本地 idea 代码中一直红,尝试了 mvn clean -U install 重新导入包,命令运行正常,但本地 idea 还是一直红,找不到其他 module 中的依赖类,解决方式有两种:方式一:使用 idea 的 Invalidate Caches 功能如下图所示,重新启动 idea
2022-03-10 23:33:31
5076
原创 简析发送手机验证码原理
在一般互联网网站(如淘宝、京东等)注册账号或者找回密码时通常让用户进行手机号码进行**发送验证码验证**,这种方式能有效的保证帐号安全,下面来解析一下它的原理。
2022-02-27 23:36:35
8066
原创 Spring Boot spring.factories 用法及原理
spring.factories 配置为 Spring Boot 的自动装配提供了方便,在此基础上产生的 Spring Boot starter 机制为很多中间件开发带来了方便。
2022-02-19 22:07:35
5295
jdk9下载,包括windows 和 mac
2023-05-27
基于Spring Boot+Mybatis的博客管理平台源代码
2023-02-26
基于 Spring Boot 的 Camunda 请假流程 demo 示例
2023-02-19
Activiti5 请假流程 demo 代码示例
2023-02-19
流程引擎jBPM demo及Spring Boot示例
2023-02-15
基于 Spring MVC 和 MyBatis 的图书馆管理简单系统,功能齐全且很容易上手
2023-02-07
豆瓣电影评论分析(含数据)
2022-04-09
Zen Coding-Notepad++.v0.7.zip
2015-04-22
API文档集合
2015-02-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人