ShouKai

人生在于体会,今时哪及昔时

领域知识:复式记账法

基本概念及理解

(仅用于个人理解及记录) 第1部分 复式记账 定义 复式记账法是以资产与权益平衡关系作为记账基础,对于每一笔经济业务,都要以相等的金额在两个或两个以上相互联系的账户中进行登记,系统地反映资金运动变化结果的一种记账方法。 复式记账是对每一项经济业务通过两个或两个以上有关账户相互联系起来进行登记的一种专门方法。任何一项经济活动都会引起资金的增减变动或财务收支的变动。 定义的理解: ...

DDD:DSL(领域专用语言)

领域驱动设计系列

DSL 概念 DSL定义 领域专用语言(DSL)是一种计算机语言专用于一个特定的应用领域。这与通用语言(GPL)相反,后者广泛适用于各个领域。DSL种类繁多,从用于公共领域的广泛使用的语言(例如网页的HTML)到只有一种或几种软件使用的语言(例如MUSH软代码)。DSL可以根据语言的种类进一步细分,包括特定于域的标记语言,特定于域的建模语言(规范语言)和领域特定的编程语言。专用计算机语言...

DDD:Zachman Framework

领域驱动设计系列

Zachman Framework Zachman框架(Zachman framework)是一种逻辑结构,它旨为信息技术企业提供一种可以理解的信息表述。它可以对企业信息按照要求分类和从不同角度进行表示。Zachman框架的创始人John Zachman早在1987年就提出了这种思想,它全称为: 企业架构和企业信息系统结构架构(Zachman Framework for Enterpris...

DDD:Business Architecture(业务架构)

领域驱动设计系列

业务架构演进 Zachman framework。虽然没有明确提出业务架构这个概念,但是已经包含了业务架构关注的一些主要内容:如流程模型、数据、角色组织等,既然没有提出业务架构概念,自然也就没有包含构建方法。Zachman 模型应该算是业务架构的开端,同时,它也表明了这一工具或者技术的最佳使 用场景——面向复杂系统构建企业架构。 TOGAF 进一步认为企业架构分 为两大部分:业务架构和 ...

DDD:EventStorming(事件风暴)

领域驱动设计系列

事件风暴 事件风暴定义 EventStorming是一种灵活的研讨会格式,用于协作探索复杂的业务领域 — Alberto Brandolini (Event Storming) EventStorming is a flexible workshop format for collaborative exploration of complex business domains....

Architecture 201907 摘录&搜索

一些博客摘记

本摘要为阅读 Architecture 过程中的摘录及相关搜索,书籍链接:架构师(2019年7月) HPCC(High Precision Congestion Control) HPCC 含义:High Precision Congestion Control- 高精度拥塞控制。 HPCC 是在高性能的云网络环境下,对现有的拥塞控制的一种替代方案。旨在同时实现高速云网络的极致性能和超...

Architecture 201906 摘录&搜索

一些博客摘记

本摘要为阅读 Architecture 过程中的摘录及相关搜索,书籍链接:架构师(2019年6月) API(RPC或者HTTP/RESTful)设计准则 设计准则: 提供清晰的思维模型 provides a good mental model Make things as simple as possible, but no simpler. 容许多个实现 allows ...

开源软件:Dubbo 04 核心流程

Dubbo 源码解析系列

导图 (点击查看大图) 参考 Apache Dubbo 精尽 Dubbo 原理与源码专栏

开源软件:Dubbo 03 核心概念和基础设施

Dubbo 源码解析系列

导图 (点击查看大图) 参考 Apache Dubbo 精尽 Dubbo 原理与源码专栏

开源软件:Dubbo 02 整体设计

Dubbo 源码解析系列

整体设计 设计图示(dubbo给出) 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。 图中绿色小块的为扩展接口,蓝色小块为...

开源软件:Dubbo 01 SPI

Dubbo 源码解析系列

Java SPI 相关概念 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 整体机制图如下: Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接...

开源软件:Feign 05 核心类及接口

Feign 源码解析系列

简介 本文在《拍拍贷基础框架团队博客-feign源码解析》的基础上,进行了版本更新、修改和补充 Feign makes writing java http clients easier Feign 是一款 java 的 Restful 客户端组件,Feign使得 Java HTTP 客户端编写更方便。Feign 灵感来源于Retrofit, JAXRS-2.0和 WebSocket。F...

开源软件:Feign 04 调用过程

Feign 源码解析系列

简介 本文在《拍拍贷基础框架团队博客-feign源码解析》的基础上,进行了版本更新、修改和补充 Feign makes writing java http clients easier Feign 是一款 java 的 Restful 客户端组件,Feign使得 Java HTTP 客户端编写更方便。Feign 灵感来源于Retrofit, JAXRS-2.0和 WebSocket。F...

开源软件:Feign 03 初始化

Feign 源码解析系列

简介 本文在《拍拍贷基础框架团队博客-feign源码解析》的基础上,进行了版本更新、修改和补充 Feign makes writing java http clients easier Feign 是一款 java 的 Restful 客户端组件,Feign使得 Java HTTP 客户端编写更方便。Feign 灵感来源于Retrofit, JAXRS-2.0和 WebSocket。F...

开源软件:Feign 02 手册翻译

Feign 源码解析系列

简介 Feign makes writing java http clients easier Feign 是一款 java 的 Restful 客户端组件,Feign使得 Java HTTP 客户端编写更方便。Feign 灵感来源于Retrofit, JAXRS-2.0和 WebSocket。Feign 最初是为了降低统一绑定Denominator 到 HTTP API 的复杂度,不区...

开源软件:Feign 01 整体概览

Feign 源码解析系列

学习过程 学习过程结合之前的文档进行开展:开源项目源码学习过程 相关文档 1 使用文档:清楚目标项目的使用方法、功能列表; Feign 功能介绍 Spring Cloud Feign 2 架构文档:一个系统可以(在重大的系统中也确实如此)同时出多种不同的构架类型. 以不同的方式检查同一系统,分析系统的不同部分,或使用不同级别的分解, 都有可能发现不同的构架类型 3 对...

读书笔记:大教堂和集市

1 大教堂和集市 1.1 问题域 世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到有,从小到大;还有一种是大教堂,几代人呕心沥血,几十年才能建成,投入使用。 当你新建一座建筑时,你可以采用集市的模式,也可以采用大教堂的模式。一般来说,集市的特点是开放式建设、成本低、周期短、品质平庸;大教堂的特点是封闭式建设、成本高、周期长、品质优异。 Eric Raymond就问了一个...

读书笔记:架构整洁之道

第一部分 概述 设计(Design)与架构(Architecture)区别是什么? 一丁点区别都没有! “架构”这个词往往使用于“高级层”的讨论中,这类讨论一般都把“底层”细节排除在外。而“设计”一词,往往用来指代具体的系统底层组织结构和实现细节。但是,从一个真实的系统架构师的日常工作来看,这样的区分是根本不成立的。 第二部分 编程范式 结构化编程是对程序控制权的...

分布式事务 02:Saga模式

分布式事务系列介绍

分布式事务:Saga模式 1 Saga相关概念 1987年普林斯顿大学的Hector Garcia-Molina和Kenneth Salem发表了一篇Paper Sagas,讲述的是如何处理long lived transaction(长活事务)。Saga是一个长活事务可被分解成可以交错运行的子事务集合。其中每个子事务都是一个保持数据库一致性的真实事务。 论文地址:sagas 1.1 ...

分布式事务 01:相关概念

分布式事务系列介绍

分布式事务:相关概念 相关概念整理 1 事务 1.1 ACID ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法...