自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序男的专栏

专注---让自己更有野心。----coderMan

  • 博客(257)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 天画-codeMaker低代码平台设计与实现(下)

一、背景最近没有再更新DDD相关的技术文章了,因为到了实战环节需要大量的代码demo,由于精力和时间有限,因此便希望借助代码生成来解决一些模板化的工作内容。之前已经在代码生成领域做了一些尝试,这里便希望花一些时间专门做几次迭代来满足DDD项目工程实战的问题。二、需求2.1 支持dubbo框架的代码生成需要生成的代码元素包括facade,impl,dto,service,serviceimpl,bo,do,convert,mapper,mapperxml2.2 支持基于plantUML类图的代码生成

2021-07-28 13:50:01 1285

原创 轻蜗牛直租平台-天画项目简介

一、背景我正在建设一个租房平台,进行基于租房业务的架构实践。在实践过程中发现作为开发人员缺乏大规模微服务,大数据量实战的经验,自己独立捣鼓的话往往无法掌控全局,不能很好的获取实战经验,而如今各个培训机构割韭菜非常多,把架构设计等主题炒的非常热,但是作为中级,初级人员想进行微服务架构设计实战,大数据量应用往往门槛偏高。我经过两个多月的业务实战发现我也陷入其中,在业务应用和大规模微服务实战的过程中缺乏很多基础服务能力,导致业务架构无法快速落地。当前就我一个人在持续投入,进度和效率非常低,因此尽早通过一套基础

2020-12-26 18:55:35 4511 6

原创 面试连环炮(下)

上一篇面试连环炮整体讲述了业务中间件的应用实践和spring全家桶常见的面试题连环炮,以及分布式微服务相关的理论和实践,同时兼具深度和广度的面试问题。本篇将从程序开发架构设计等其他角度去整理一系列连环炮发文方式。手撕代码连环炮单例模式了解吗?有哪几种?写个单例模式?这个单例模式有什么问题?sychronized怎么用的?volatile呢?写个冒泡算法?假如有个数组[1,2,3,3,4,4,5,6,6,7],相对递增有序,给定一个值假如3,打印这个值在数组中出现的第一个索引下标?分析一下你写的这.

2020-08-22 12:25:16 866

原创 面试连环炮(中)

上一篇面试连环炮整体讲述了面试官会问的java基础和高级相关的知识点以及一些数据库和缓存相关的理论和实践,包括消息队列。发到各个技术群里引起了广泛的讨论,也支持我去继续写剩下的两篇文章。本篇将从项目实战的角度去看面试官会从哪些方面去考察应聘者的知识深度和广度。一、业务中间件&组件连环炮Tomcat项目部署用的是什么容器启动的?说一下tomcat的架构模型?说一下Tomcat的线程模型?底层原理是什么?跟Netty的线程模型相比有什么区别?做过Tomcat的调优吗?你们服务部署的时候Tomc.

2020-08-22 00:29:49 2092

原创 面试连环炮(上)

我最近从大厂离职之后在合肥呆了个把月,之前已经准备了半个多月,从7月底开始投简历面试,目前是java高级职位,到现在为止已经面了24+公司了,手上也有一些意向offer。现在把跟面试官对垒的面试问题总体记录一下。请注意这里只有问题,没有答案,也没有标准答案。参考答案在我的思维导图里。本系列会分为三个系列博客去讲我面过的一些公司出的一些题,以某个知识点或者框架出发扩展深入。来,看你能撑多少炮!##一、 redis连环炮redis数据结构redis有哪几种数据结构?zset用过吗,底层数据结构是什么?.

2020-08-22 00:27:39 2500

原创 送给23岁的风华年少

还记得那个邀请女生去跳华尔兹舞的体育课吗,你心中的悸动是否还在,是否还只是停留在想想而已的地步。现在,你是否还可以做一个优雅的动作去邀请心动的人来一场青春的华尔兹。-------题记     一晃自己已经23岁了,虽然170厘米的个头还行,但是心中总有长辈们的那句话:“23猛一串。”意思就是说人到了23岁的时候还能突然长高点,或许因为谐音的缘故总感觉自己还可以再高一点。虽然在身体上没什

2014-07-31 15:48:48 1288

原创 XxlJob深度性能优化实践

XxlJob性能优化,二次开发

2024-02-06 14:11:09 1105

原创 记一次CPU有规律飙高的线上问题排查过程

cpu问题排查过程

2024-02-06 11:34:36 1116

原创 看麻了呀,线程池日志错乱问题

初步怀疑是对象引用问题,导致 PushDataContext newPushDataContext虽然是新对象,但是其值却不是,由于排查过程中并不太方便打印sql,所以仅仅针对pushTaskList做了一次深拷贝,然后测试,结果也不对,另外也在多个地方打印了newPushDataContext对象的地址,印证了每个线程只会持有自己的对象,另外也排除掉了嵌套调用的情况。每个线程只处理一类数据,上下文是隔离的,但是当前日志的内容却打印了别的类型的数据,明显出现错乱,所以可能是组装数据的上下文不是纯隔离的。

2024-02-04 11:29:48 690 1

原创 记一次Mysql加字段加不上问题排查过程

另外一方面innodb_trx的线程有不少是昨天的,上面的图其实是我kill掉一些之后才截取出来的,根据提示执行select * from performance_schema.events_statements_current,也没发现异常,所以就想着将一些长时间不释放的事务会话kill掉,经过5分钟左右的kill操作之后,只剩一些当前时间段内产生的事务了,这里再执行alter table add 命令,执行成功了。出现这种情况就想到了两种可能,于是直接尝试百度了下:Mysql 加表字段超时。

2024-02-04 11:11:15 1016

原创 maven java 如何打纯源码zip包

cd 到src/java目录,打zip包。打纯源码包给第三方进行安全漏洞扫描。项目中加入下面的maven 插件。

2024-02-04 11:06:42 363

原创 分布式本地缓存刷新方案

通过上面的方案探讨和优缺点分析发现,想做好分布式本地缓存刷新功能借助不同的中间件实现是没有太多难度的,重点是上量之后出现的性能问题和可用性问题(实时性)。节点数量一定时间内的刷新量面对大规模的服务集群如果需要高可用性可能需要上面的多种方案结合才行。比如选消息中间件作为主方案,使用轮询的方式作为兜底方案等。

2022-10-05 12:14:44 3066 1

原创 用一个极致简单的场景演练领域建模

最近公司准备进行业务组件的开发,正好我也准备讲一下《DDD理论与实践》的技术分享,在进行通用业务组件设计方案的时候发现了一个特别容易理解也很容易讲明白的案例,这里专门记录一下,分享给大家。...

2022-08-17 23:17:14 387

原创 为何大佬喜欢用聚合当领域设计的基本单元

今年在DDDChina上认识了很多行业大佬,也跟着学习了一波,在领域建模的过程中关于实体,值对象和聚合的讨论比较多,也看了一些大佬的书。在大佬眼力进行领域模型设计的时候把聚合当作基本单元看着是比较随意的事情,但是对于初学者来说可能还需要一些时间消化。这里来简单探讨下整个问题。......

2022-08-07 12:54:41 266

原创 领域里的X能力是什么?

之前有群友讨论领域相关的业务能力,平台能力,领域能力,商业能力是什么?这个问题比较有意思,当即记下来后续专门讨论下,本文将从一些简单的方面来阐述这几个能力之间的区别。

2022-08-06 13:51:53 699

原创 如何衡量软件系统的复杂度(三)

前面两篇已经大体讨论了整个软件系统中的复杂度相关的衡量指标,但是如何相对客观的通过复杂度模型来构建出来并输出相关复杂度数据,就需要对不同的衡量指标和影响因素做量化,同时需要仔细考量不同复杂度因素之间的相关性和其在真实业务场景下的权重。本篇文章将通过一些分析思维和建模方法来构建一个软件复杂度评估模型。...

2022-08-06 13:45:56 3272

原创 如何衡量软件系统的复杂度(二)

上一篇重点讲述了软件复杂度的由来和现象,以及不同视角下的复杂度是怎么呈现的,本篇文章将从更细致的方面来阐述形成复杂度的一些指标数据,并按不同维度进行区分。这么做的一个原因就是希望通过本篇文章让软件复杂度更具象,让软件开发者更直白全面的感受复杂度。...

2022-06-23 09:47:21 2610

原创 如何衡量软件系统的复杂度(一)

自从Eric的书名中提到如何应对软件复杂度的问题,后面的很多其他大佬都在尝试用自己的方式来阐述软件复杂度和如何应对软件复杂度。但是我们可能忽略了一个基本的问题就是我们如何衡量它。在软件架构工程中有一些复杂度函数,比如neal的适应度函数等。比如一些衡量耦合相关的指标和数学函数信息,但是这只是整个软件工程中的某个方面的复杂度的信息,对大多数软件从业者来说,这显得有点专业了。...

2022-06-23 09:44:00 2217

原创 基于上下文的业务流建模法(四)

基于上下文的业务流建模法的文章系列已经到了第四篇了,本篇也是最后一篇,来讲一下关于这个建模方法的一些缺点以及如何优化它,基于这个建模方法我们如何更好更快的构建业务模型。

2022-06-22 09:11:04 99

原创 基于上下文的业务流建模法(三)

前面两篇文章已经给大家展示了一个相对新颖的建模方法,也简单实战了下,这里我通过一个生活中的例子来模拟快递业务中的模型构建过程,本篇将完整的展示一下基于上下文的业务流建模法的操作过程。...

2022-06-22 09:08:07 583

原创 基于上下文的业务流建模法(二)

上一篇文章说到了我提出了一种新的建模方法,并对建模方法的大概内容做了阐述,本次我将继续对这个建模方法做进一步的说明,并提供一个小小的案例来熟悉一下建模套路。下一篇文章将通过其他案例来展示这种建模方法的优势。...

2022-06-22 09:01:08 505

原创 基于上下文的业务流建模法(一)

DDD相关的建模方法就目前看已经在实践的建模方法已有6种之多,之前的技术分享中也有大佬尝试通过一些新的方法或者理论来帮助统一DDD建模,这其中的原因也是因为希望找到一个比较好的或者适用性更广的建模方法。当然我也在思考这个问题,并且尝试用一些新的方式来优化当前已经使用的建模方法中存在的缺点。因此在本系列中我将尝试通过3篇左右的文章来提出一个新的建模方法,有可能读完之后感觉就是之前所有的建模方法的结合体,但是这并不妨碍你更好的运用建模方法来构建软件模型。...

2022-06-22 08:56:18 513

原创 统一语言为什么不能统一(四)

前面几篇已经从各个方面说统一语言不能统一的一些原因,但是我们终究希望让统一语言可以在团队中达成一些共识,并让统一语言在沟通,代码和应用上面提供一些帮助。本文将是统一语言的最后一篇文章,将重点探讨统一语言有可能统一的一些方法。文末也有整理关于本系列的完整思维导图,需要的话可以收藏。

2022-05-29 15:26:58 262

原创 统一语言为什么不能统一(三)

上一篇我们讲到了统一语言与各个方面因素的关系,从这些关系中可以看出如果要让统一语言统一,同时带来一定的收益,我们就要深入去了解统一语言可管理可控制的一些方法或者工具,本篇将从工具的角度来阐述一下统一语言在用工具管理过程中出现的一些问题,以及为什么这些工具没有发挥最好的效果。

2022-05-29 15:22:16 165

原创 统一语言为什么不能统一(二)

在上一篇文章中,重点讲述了统一语言在文化等方面存在的一些差异,这些差异本身也体现了世界的差异,包括国与国之间,人与人之间等的互动是客观存在不一致的,那么统一语言本身而言就无法达到高度统一,但是有可能是可以达到共识的,本篇将从统一语言与其他方面的关系来简单阐述一下统一语言为什么不能统一的问题。

2022-05-26 15:59:12 224

原创 统一语言为什么不能统一(一)

学了DDD也大半年了,看事物也总喜欢从更多的维度去看,因此对于需求而言,总可以归为从问题空间到解空间的映射。不过有时候这种从领域的角度或者领域驱动设计的方式去跟人沟通的时候发现是挺痛苦的,毕竟需要去理解不同的人在不同的上下游说的不同的词是什么意思,是不是指的同一个事物,同一个系统,同一个场景。所以,当从领域驱动设计的统一语言模式去应用的时候,其实还是非常难的。因此,本系列将探究一个关于DDD统一语言模式的问题,以及可能的解决方法。

2022-05-26 15:57:32 520

原创 DDD之跨层调用的思考

最近通过COLA构建篮球运营管理平台演示源码的时候对跨层调用做了一些深度思考,在跨层调用中有些调用并不是严格按规范或者相对固定的分层模式去走的,这就出现了一些疑问,比如不按规范来我怎么控制代码质量,我怎么知道最佳实践是什么?

2022-02-12 22:50:54 3280

原创 DDD中的领域拆分和合并

在DDD讨论群中与一位群友讨论了一个关于领域服务拆分的问题,这个也涉及到了代码层面的操作和设计,比如一个领域服务中包含多个子领域,随着业务的发展或者迭代,某个子领域需要拆出来独立迭代。很多程序员多少都会遇到这种情况,尤其是分布式微服务下的架构模式,因此本文就这个话题着重讨论一下DDD中的领域上下文的拆分和合并。

2022-02-11 22:47:34 2520

原创 业务建模的三种境界

这个话题是突然间从脑海中闪过的,感觉有点意思,可以聊一下,类似于学习的三种境界。很多技术文章或者技术人都会有这三种境界,现在带大家感受一下。

2022-02-09 20:30:58 518 2

原创 为何都喜欢用事件驱动进行领域建模?

最近看了一些大佬的公众号以及一些培训DDD的宣传课程,发现有很多都在宣传基于事件驱动的领域建模方法,这里就简单分析一下为什么大佬们都喜欢用这个方法来构建领域模型。

2022-02-09 20:28:42 541

原创 DDD独立类模式你用到了吗

一、背景在前一段时间里有一篇文章比较火,说service必须要有个实现接口吗?这个在各大公众号上进行转载,引起Java技术网友的广泛评论,我也简单说了下个人的观点。最近正好也在不同的场景用到了独立类,没有实现接口。本文将结合DDD的独立类模式来重点探讨如何用好独立类,如果才不一刀切的看待独立类的使用。二、独立类简述2.1 独立类的简单概括简单来说就是没有实现接口,没有实现抽象类的Java类,当然枚举和注解这里不是我们讨论的话题。2.2 哪些算是独立类通常来说很少有机会对模型进行实现接口比如DTO

2022-02-08 19:52:16 338

原创 各种视角带你做扣库存的逻辑

之前群里有人分享基于贫血模型和充血模型相关的一些代码实战,同时也有一些小伙伴不太理解这些模型之间的真正内容,本文将通过一个扣库存的代码工程实践来阐述不同视角下的扣库存逻辑的实现。

2022-02-08 19:47:54 769

原创 领域划分的规则是什么?

最近有微信朋友在公司内部分享的时候有人问领域划分的规则是什么?意思就是你怎么知道一个领域需要划分哪些子领域?有没有依据,是凭直觉吗?本文将重点讨论下这个比较现实的问题。同时根据网友的试读建议本文进行了思维导图的总结,可以保存收藏。

2022-01-27 14:42:06 4222 3

原创 component-kv设计与实现

这个组件是接着这篇文章《用一个极致简单的场景演练领域建模》进行设计的,根据不同业务场景实现不同的业务场景Service能力。从组件的应用架构图上看,麻雀虽小,五脏俱全。这个组件可以方便的进行集成和二次开发,基本可以作为组件小而美的典型。

2022-01-27 14:39:27 1088

原创 天画-codeMaker组件化架构升级实践

在两个月前我扩展了基于调用时序的代码生成,将代码生成的粒度从代码方法级别提升到了代码行级别,从整个迭代过程来看也逐步积累了一些问题,在一些模块设计上实现的不够好,同时没有扩展到springcloud体系,另外也在这一段时间重点看了很多低代码的实现,比如易鲸云,简道云,金蝶云等等,我发现如果需要把codeMaker提升到企业级的层次就不能一点点优化,而是要做一个大的架构升级,提高兼容性,扩展性,并在易用性上下功夫。因此准备设计并实现了本次1.2.2版本的组件化架构升级的版本。

2022-01-13 19:42:45 1112

原创 DDD的架构风格

![DDD的架构风格 (1).png](https://img-blog.csdnimg.cn/img_convert/0ef62550c53355ce587e8ca209a25c34.png#height=341&id=gfrdS&margin=[object Object]&name=DDD的架构风格 (1).png&originHeight=341&originWidth=835&originalType=binary&ratio=1&s

2021-09-24 18:03:41 793 1

原创 DDD之Service革命

一、传统架构下的Service1.1 SSH时代到目前为止还好,曾经用过SSH框架,那时候不懂分层,前后端还不分离。当然,走出校园之后SSH就没有碰过了。在SSH中使用struts action做控制层路由,hibernate做持久化。spring 做bean容器,最后的业务就是在一个项目工程中由struts action类到service bean然后到hibernate dao就可以了。1.2 MVC时代在MVC框架思想中MVC基本上代表了前后端之间的桥梁,服务层依然在幕后操作。但是mybati

2021-09-24 18:00:12 543

原创 DDD下的代码文档生成

一、背景目前低代码生成领域非常火爆,而且市场价值在逐步上升,很多巨头都在重金投入。低代码的出现意味着程序员可以从大量重复低效的劳动中脱离出来,同时可以更好更快的支持业务解决实际问题,极大的提高了交付价值的效率。那么在DDD中实际上也有一些人尝试使用低代码的方式进行建模,意图将建模过程程序化,自动化,通过模板或者预设脚本得到建模结果。本章内容则重点讨论DDD下的代码文档生成的意义,以及这种思路将带给我们什么启示。二、观点2.1 观点1–手动构建很多研究DDD的人都会遇到这个问题–是否使用低代码来降低建

2021-09-24 17:56:43 668

原创 DDD中的建模方法有哪些

一、背景在之前的文章中已经介绍了DDD相关的概念模式,DDD相关的业务技术架构,但是我们还没有找到一个核心的抓手去实践DDD。DDD的一个核心本质就是对业务建模,或者领域建模。说的很简单,但是做好确实很难,一个需求过来意淫几个实体对象就差不多解决了。深入看,全局看只在脑海中进行的建模实际上并不一定正确和稳定。因此我们需要找到正确的方法帮助对业务领域进行分析,得到建模结构,共享建模成果。二、四色建模法2.1 起源&概念&要素关于四色建模的概念我们可与追溯到90年代,起源于四色原型。四色

2021-09-11 10:58:24 2561

原创 DDD中的通用语言是什么

一、通用语言模式回顾1.1 通用语言模式(UBIQUITOUS LANGUAGE)通用语言有时也叫统一语言,但是这里我们叫它通用语言。摘录:UBIQUITOUS LANGUAGE(通用语言)的词汇包括类和主要操作的名称。语言中的术语,有些用来讨论模型中已经明确的规则,还有一些则来自施加于模型上的高级组织原则。​1.2 注意事项将模型作为语言的支柱。确保团队在内部的所有交流中以及代码中坚持使用这种语言。在画图、写东西,特别是讲话时也要使用这种语言。通过尝试不同的表示方法(它们反映了备选模型)来消除

2021-09-05 21:31:55 986

myeclipse中java EE 6 的jar包全

在myeclipse中的java EE6的jar包,整合Spring和Hibernate中出现的jar包冲突。

2014-10-08

javaTCP/UDP网络编程

全面讲解java在网络编程方面的知识,有源代码,更加详尽。

2014-10-05

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

TA关注的人

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