- 博客(111)
- 资源 (13)
- 收藏
- 关注

原创 给新手程序员的一点学习建议
我是一个有几年经验的程序员,之前对于自己的发展却是一头雾水,不知道主流技术,不知道工作是迎合主流技术还是迎合公司发展。让我有感触的是这两年的坚持学习,在迎合公司的发展的前提下,有自己的学...
2020-02-06 17:05:18
12769
11

原创 项目中频繁的数据转换我们怎么优化
我们先来看一张数据扭转的图,这个是DDD思想下各种对象转换的过程。VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,用于展示层与服务层之间的数据传输对象。DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。PO(Persist...
2020-01-16 09:06:21
3219
2

原创 Springbean的几种注入方式都了解吗?
Spring注入方式可以分为三类,xml注入、注解注入、BeanDefinition注入;用法上可以分为三种,但是底层实现代码都是统一BeanFactory,这三种也有联系xml注入和annotation注入都是依赖BeanDefinition扩展的接口,注解也是从xml过渡过来的,我们简单的看下这三种的写法。XML注入在springboot框架没有出来之前,xml配置被大量的使用,配置过程比...
2020-01-15 09:21:30
2403

原创 三层架构到DDD分层架构的演变
参考极客时间《DDD实战》三层架构传统的三层架构主要分为业务接口层、业务逻辑层、数据访问层业务接口层:主要是API的定义,包括资源路径定义、请求报文接受、响应报文返回、请求编码等定义的内容;业务逻辑层:主要做业务逻辑处理,这一层包括数据映射DTO转VO,业务核心逻辑编写,组合不同数据仓库,做业务逻辑;数据访问层:主要做数据存储,包括数据映射VO转PO,数据接口的定义,映射XML的编写...
2019-12-26 16:58:27
6987
2

原创 设计模式之SOLID原则
什么是SOLID原则SOLID = SRP(职责单一原则) OCP(对扩展开发,修改关闭原则) LSP(里氏替换原则) ISP(接口隔离原则) DIP(依赖反转原则)SRP: Single Responsibility Principle,一个类或者模块只负责完成一个职责;OCP:Open Closed Principle,软件实体(模块、类、方法等)应该“对扩展开发,对修改关...
2019-12-18 18:27:50
1843
原创 微服务编排引擎Cadence简介
原文来源:https://cadenceworkflow.io/1、概述(Overview)2、使用案例(Use cases)2.1、定时轮询(aka Distributed Cron)...
2020-11-11 07:00:00
7046
转载 架构师考证要点(架构风格总结)
软件架构设计的一个核心问题是能否使用重复的软件架构模式,即能否达到架构级别的软件重用。也就是说,能否在不同的软件系统中,使用同一架构。基于这个目的,业界开始研究和实践软件架构的风格和类型...
2020-10-12 07:00:00
1048
原创 软件开发生命周期汇总
在开发模型知识点中,软件生命周期的概念、各种开发模型的特点和应用场合。主要的开发模型有瀑布模型、增量模型、螺旋模型、喷泉模型、智能模型、V模型、RAD模型、CBSD模型、原型方法、XP方...
2020-09-21 06:28:14
10016
原创 如何让写的代码达到开源的标准
不管工作几年能够写得一手优秀的代码那肯定是非常吃香的。怎样的代码才能够算的上优秀?业界还真没有一个评判标准,在开发人员每个阶段的代码的认知都是不一样的,跟工作经历和工作经验息息相关,每个...
2020-08-31 07:00:59
2758
原创 分布式事务怎么理解?看这篇文章就够了!
在基于微服务框架的前提下大家是否对分布式事务有以下疑惑呢?分布式事务框架是选择开源还是自研?CAP原理什么是什么?分布式事物为什么分为XA、TCC、SAGA?满足什么标准才能用分布式事务...
2020-08-17 07:00:00
631
原创 如何1年获得别人3年的工作经验(深度好文)
最近有同学问我,为什么你的工作年限不长,技术却这么厉害,我笑了笑,啥也没说。我不是不想回答,是不知道怎么回答。在他们的定位可能就是,每方面都懂一点,遇到问题能够快速解决,就是比较厉害的角...
2020-08-11 07:00:00
2568
6
原创 还在为微服务模块划分头痛!关于原则,你需要了解这些!
模块划分是这样做吗?你们有没有这样的苦恼,当我们自己想设计一个基础框架的时候需要做模块划分,但是该怎样去划分模块?先简单的说说大众所想的微服务框架模块划分;一般的设计思路:先确定基础框架...
2020-08-09 08:53:22
3639
原创 几个珍藏已久的开发技巧,这一波全部分享给你
一般在代码的过程中我们经常会有一个疑问,怎样的代码才是好代码,怎么评估写的这段代码是否有水平,在项目重构的中需要达到什么目标才可以,在写业务代码时怎么才能摆脱 CRUD 的简单代码。所述...
2020-07-28 07:18:23
932
原创 一文了解分布式中间ZooKeeper
分布式一致性算法PaxosPaxos角色提供三种角色Proposer 提案者、Acceptors接受者、Learner学习者;在分布式场景下需要作出一个决策时,需要给Proposer提交...
2020-07-14 06:41:27
2473
原创 一文了解MYSQL高可用
Mysql高可用主从复制互联网最开始就是一主一从服务器,读写分离用户请求,写操作进入主服务器,读操作进入从服务器;客户端向服务器发起操作命令,服务器接收到请求一边写入到本地数据库文件里面...
2020-07-13 08:00:00
356
原创 缓存的基础知识,你们都了解了吗?
1、什么是缓存?1.1、定义存储在计算机上的一个原始数据的复制集,以便于访问。缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用于监控读取的速度。缓存是有读操作...
2020-07-07 07:58:13
1369
原创 系统架构知识是架构师的常识而不是能力
互联网系统面临的挑战高并发、大流量QPS:每秒钟请求或者查询的数量,在互联网领域,指每秒钟请求数(指HTTP请求)吞吐量:单位时间没处理的请求数量(通常由QPS与并发数决定)响应时间:从...
2020-07-01 07:26:19
1078
2
原创 实战项目:设计实现一个流程编排框架(快速入门)
上几篇文章主要讲了《实战项目:设计实现一个流程编排框架(分析)》《实战项目:设计实现一个流程编排框架(设计》《实战项目:设计实现一个流程编排框架(实现)》,今天主要做一个快速入门手册。代...
2020-06-25 13:05:26
2632
1
原创 实战项目:设计实现一个流程编排框架(测试)
上几篇文章主要讲了《实战项目:设计实现一个流程编排框架(分析)》《实战项目:设计实现一个流程编排框架(设计》《实战项目:设计实现一个流程编排框架(实现)》,我们今天主要讲一下基于分析、设...
2020-06-25 13:05:26
1302
原创 实战项目:设计实现一个流程编排框架(实现)
上两篇文章主要讲了《[实战项目:设计实现一个流程编排框架(分析)(https://mp.weixin.qq.com/s/veLQZJqYNKbYvuCi7Pf_nA)]》《实战项目:设计...
2020-06-24 08:52:11
5968
6
原创 框架设计之设计模式
来源于架构师训练营第三章,总结。我们都知道设计模式和基础设计原则是架构师掌握的基础知识,就是学java的人掌握java语法一个道理,那我们在日常开发工作中又怎么对待设计模式呢?我们会刻意...
2020-06-22 08:00:00
574
1
原创 实战项目:设计实现一个流程编排框架(设计)
上一篇文章我们讲了《实战项目:设计实现一个流程编排框架(分析)》主要对流程编排框架产生的背景,并做了需求分析,这其中包含功能性需求和非功能性需求,算是在正式开始设计之前做一个铺垫。前面提...
2020-06-21 08:10:11
6639
2
原创 实战项目:设计实现一个流程编排框架(分析)
最近几篇文章,我会带大家一起设计一个流程编排框架,从项目的分析、设计、实现、重构、测试方面去了解整个编排框架,也会用到一些设计开发原则及设计模式,话不多说,我们先来看下编排框架的一个背景...
2020-06-20 08:47:05
5231
原创 设计原则之依赖倒置
依赖倒置简介我们经常在框架开发过程中听说依赖倒置、依赖反转、控制反转、依赖注入、IOC一些名词,我们常听的这些名词和开发设计原则中的依赖反转原则是有关系,我们来看看这几个名词:控制反转(...
2020-06-14 11:36:17
420
原创 基础框架之设计原则
框架开发概念简介面向对象分析:面向对象分析是将客观世界编程业务领域进行对象分析,有点一些概念这个过程中应该了解的;充血模型:数据和对应的业务逻辑被封装到同一个类中;贫血模型:数据和业务逻...
2020-06-14 11:36:17
519
原创 架构师训练营第一章总结
什么是软件架构?软件架构是整体结构与组件的抽象描述,用于指导大型项目在各个方面的设计;分析图解:1、一个架构最重要的是相关方,相关方包括客户、老板、开发人员、测试人员、运维人员,和项目有关的人都可以称之为相关方;2、相关方的关注点产生架构需求,整个架构基于关注点做分析;3、整个过程是为相关方做系统,系统提供的能力应该满足相关方;4、架构是系统的技术支持和实现,所有系统都是由架构支撑;5、架构升级需要架构文档的支撑,构架文档主要对相关方输出,作为架构的标准支撑;6、架构文档需要架构视图的组成
2020-06-10 16:45:04
426
原创 重新定义软件架构
什么是软件架构?软件架构是整体结构与组件的抽象描述,用于指导大型项目在各个方面的设计;分析图解:1、一个架构最重要的是相关方,相关方包括客户、老板、开发人员、测试人员、运维人员,和项目有...
2020-06-07 16:50:20
380
原创 架构设计文档之食堂就餐卡系统设计
练习题:食堂就餐卡系统设计系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。使用时将卡插入收款机则显示卡上金额,服务员按收款机上数字键,收款机自动计算并显...
2020-06-07 16:50:20
2671
原创 WEB框架搭建和配置说明
WEB框架是我们在项目中经常用到的一个框架,我们可以定位前端和后端的适配框架,前端请求发到的WEB容器,然后由WEB容器进行过滤,拦截,解析然后到业务逻辑;也就是说WEB容器是一个比较重要的组件,但是WEB组件是必须的,答案是否定的,我们还可以通过Reactive、socket去实现,但是现在WEB任然是大众所接受的一个框架,我们简单的介绍一下WEB框架的集成过程。新建工程准备工作:把IDEA打开,把MAVEN和JDK安装好;步骤:点击左上角File-settings选择新建项目NWE;
2020-05-28 07:32:14
534
原创 第三章-基础模块依赖
Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。依赖管理framwork-dependencies是独立于框架外的一个依赖管理,定义就是对第三方组件进行管理,主要有几点:我们通常在一个项目框架下有一个独立的第三方依赖管理;在最上层定义基础版本信息,减少基础模块的依赖冲突;版本统一管理便于基础组件升级;组件依赖framerork-parent为整个工程的父级pom文件,主要定义这
2020-05-27 08:16:49
406
原创 第二章-基础框架模块划分
基础模块定义是在框架开发过程中起始步骤,好的模块划分分工明确,促进任务开发迭代。但是我们在搭建框架的过程中怎么去定义模块,用什么标准去定义,怎么划分具体的模块点,不用的人员有不同的考量,只能找最适合企业的开发框架。划分标准划分标准是一个框架划分的基础准则,有不同的方法论支撑框架的合理性划分,为建企业级框架做出建模标准,下面是最基础的一些设计原则:稳定性:需要考虑到项目规模,可承受的数据量和容错能力,不能根据需求频繁的变更高内聚:模块实现应该完成强关联的相关内容低耦合:通过约定基于接口开发,
2020-05-27 08:14:25
1183
原创 第一章-微服务基础框架搭建大纲
大家好,从今天开始我会持续输出微服务相关的文档,其重要目的有几个:1、在编程生涯留有痕迹,将自己的所理解的东西和大家分享;2、保持持续学习,输出的过程也是学习的几种方式,持续输出能够保证持续学习;3、保持充实的业余生活,把工作当做生活,把编程当做乐趣。这一次的主要主题是围绕微服务框架,包括基础环境,微服务框架、组件功能点和基础功能;下面我们来看下主要涉及的内容。环境JDK版本:1.8下载地址:https://www.oracle.com/java/technologies/javase-jdk8-
2020-05-27 08:09:45
522
原创 一文读懂DDD
什么是DDD?ddd不是一种架构风格,而是一种方法论,什么是方法论,每个人按照自己的想法来设计就是一套方法论;ddd是一种业务比较认可,对于微服务拆分的一种方法论。为什么在微服务的大环境下DDD才流行?微服务区别于系统,服务是一组想对较小且独立功能单元,是用户感知最小功能集。DDD计的模型中具有边界的最小原子是聚合,聚合和聚合之间由于只通过聚合根进行关联,所以当需要把一个聚合根从一个限界上下...
2019-12-11 09:22:23
7724
1
原创 架构之基于接口编程
简介接口越抽象、越顶层、越脱离某一种实现的设计,越能提高代码的灵活性、越能应对为了需求的变化,好的代码设计,不仅能够应对当前的需求,而且在将来需求发生变化的时候,任然能够在不破坏原有设计的情况下灵活应对。抽象是提高代码的扩展性、灵活性、可维护性的有效手段。我们先来看一段代码:public class AliPayChannel { /** *支持宝支付 * @pa...
2019-11-28 19:07:46
1500
原创 架构之全局错误异常定义
异常简介说明一个开发框架少不了异常处理机制,让所有的错误集中在一个地方处理,在业务代码开发的时候,往外抛就可以了,由上层统一拦截处理、返回给调用方。这里我们使用了自定义错误码,并将错误码定义在了错误码枚举类中,当然如果你的系统比较庞大,错误码非常多,并且要实现错误码的动态调整,那么也可以将错误码存在数据库中,启动后放到内存缓存,这里为了方便大家理解只是提前将错误码定义在了枚举类中。UML图...
2019-11-27 14:37:02
3726
3
原创 Java代理设计模式(Proxy)的几种具体实现
Proxy是一种结构设计模型,主要解决对象直接访问带来的问题,代理又分为静态代理和动态代理(JDK代理、CGLIB代理。静态代理:又程序创建的代理类,或者特定的工具类,在平时开发中经常用到这种代理模式,这种一般在程序运行前就已经生成对应的class文件;动态代理:在程序运行时通过反射机制动态创建。下面通过一个场景实现以下三种代理方式步骤一:定义商店接口(Subject)步骤二:个人店家运营...
2019-09-10 09:04:22
1044
原创 Springboot基于enable模块驱动
enable作为模块驱动在Spring Farmework、Spring Boot、Spring Cloud使用,都是通过注解的形式以@enable作为前缀,一些常用注解如框架注解模块Spring Framework@EnableWebMvcWeb MVC模块Spring Framework@EnableTransactionmanagementWeb MVC模块...
2019-08-30 09:08:06
1717
原创 为什么NIO性能好?
简介核心API:Channels:channel像一种管道,数据可以从channel到Buffer,其主要实现FileChannel(文件读取数据)、DatagramCh...
2019-06-20 08:00:00
909
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人