随笔分类 - [20]DesignAnalysis设计分析
-
Event Sourcing
摘要:Event Sourcing - ENode(二)接上篇文章继续http://www.cnblogs.com/dopeter/p/4899721.html分布式系统前篇谈到了我们为何要使用分布式系统,因为ENode本身就是一个分布式的框架。看了很多DDD、CQRS的框架,一般情况是一个上下文一个系统... 阅读全文
-
分布式系统
摘要:分布式系统Event Sourcing - ENode(一)2015-10-22 02:35 by DoPeter,165阅读,0评论,收藏,编辑分布式系统摩尔定律如果一直能实现,不管是涉及或者实现一个OLTP的系统,我们是不是都会轻松点,用硬件堆就可以了。但是现在硬件已经在求变了,那么我们也得求变... 阅读全文
-
大型网站架构
摘要:大型网站架构演化发展历程 前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。 大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像一颗大树的成长,历尽长时间的磨练,最后枝繁叶茂,服务他人。初始网站架构结构起初的网站鉴于用户量、... 阅读全文
-
Repository、IUnitOfWork和IDbContext
摘要:DDD 领域驱动设计-谈谈Repository、IUnitOfWork和IDbContext的实践上一篇:《DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(1)》阅读目录:抽离 IRepository 并改造 RepositoryIUnit... 阅读全文
-
架构/设计
摘要:随笔分类 -架构/设计软件架构设计模式简述2014-03-25 20:33 by 破狼, 2465 阅读,收藏,编辑在软件开发设计中我们经常会面对业务分析,提取领域问题,从而实现软件架构设计。关于 软件架构设计Martin Fowler在2004出版的《企业应用架构模式》中 概括了四种方式的架构模式... 阅读全文
-
业务层
摘要:业务层的实现方式在我的上一篇博客:对企业级应用开发的思考--分层中,从个人的经验分享了关于程序分层方面的内容,得到了众多园友的支持。里面包含对业务逻辑层三种实现方式(事务脚本、活动记录集和领域模型)的简单描述。并没有深入去实现。本文来深入探讨一下。本文以下面这个实体结构与数据库结构为例:两个分别表示... 阅读全文
-
DDD事件总线
摘要:DDD事件总线基本思路:(1) 在事件总线内部维护着一个事件与事件处理程序相映射的字典。(2) 利用反射,事件总线会将实现了IEventHandler的处理程序与相应事件关联到一起,相当于实现了事件处理程序对事件的订阅。(3) 当发布事件时,事件总线会从字典中找出相应的事件处理程序,然后利用反射去调... 阅读全文
-
Big ball of Mud
摘要:Big ball of Mud第一种死法:Big ball of Mud架构里最常用的反面案例是 big ball of mud。很大程度上可以说打格子,把复杂的系统拆解成小格子是架构师最重要的工作。这个小格子有很多种名字,比如:组件,模块,子系统,库,bounded context林林种种。但是仔... 阅读全文
-
存储架构
摘要:存储架构web应用从单点向高并发架构演变时往往遇到最大的问题就是数据库的分布式存储。因为web应用本身就可以集群部署,但其所使用的数据库确是单点的。如果一个web应用开始的时候没有考虑数据库的分布式架构,那么等到要进行数据库集群改造时会发现困难重重,此时通常的做法是将原系统拆分成多个子系统,然后每个... 阅读全文
-
Repository、IUnitOfWork
摘要:Repository、IUnitOfWork 在领域层和应用服务层之间的代码分布与实现本来早就准备总结一下关于Repository、IUnitOfWork之间的联系以及在各层中的分布,直到看到田园里的蟋蟀发表的文章:《DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 ID... 阅读全文
-
Repository、IUnitOfWork 和 IDbContext 的实践
摘要:Repository、IUnitOfWork 和 IDbContext 的实践好久没写 DDD 领域驱动设计相关的文章了,嘎嘎!!!这几天在开发一个新的项目,虽然不是基于领域驱动设计的,但我想把 DDD 架构设计的一些东西运用在上面,但发现了很多问题,这些在之前的短消息项目中也有,比如我一直想重构短... 阅读全文
-
忘记数据库
摘要:忘记数据库前面写了这么多,很大程度上就是为了这一章做准备。面向对象或者领域驱动,最重要的一点就是要忘记数据库!我花了很长很长的时间,才理解了这一点,从而真正的迈向一个崭新的天地;而后,我又花了很长很长的时间,才勉强做到这一点;我希望,有一天,这将不再是一个问题,我不需要考虑这一点……为什么业务层这么... 阅读全文
-
Kafka logo分布式发布订阅消息系统 Kafka
摘要:分布式发布订阅消息系统Kafkakafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性:通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。支持通过kafka服务器和消费... 阅读全文
-
Akka 简介与入门
摘要:Akka 简介与入门http://www.thinksaas.cn/group/topic/344095/参考官网 http://akka.io/ 开源代码 https://github.com/akka/akkaSlogan:Build powerful concurrent &distribut... 阅读全文
-
对象池的设计
摘要:对象池的设计及其实现对象池概述:对象池模型创建并拥有固定数量的对象,当程序需要一个新的对象时,如果对象池中有空闲对象,则立即返回,否则才创建新的该类对象。当一个对象不再被使用时,其应该应该将其放回对象池,以便后来的程序使用。由于系统资源有限,一个对象池模型应该指定其可容纳的最大对象数量。当达到该数量... 阅读全文
-
(DDD)仓储的思考
摘要:(DDD)仓储的思考为什么需要仓储呢?领域对象(一般是聚合根)的被创建出来后的到最后持久化到数据库都需要跟数据库打交道,这样我们就需要一个类似数据库访问层的东西来管理领域对象。那是不是我们就可以设计一个类似DAL层的东东来管理对象呢?是的,但是呢设计上有点区别,就是我们不希望上层如应用层直接访问数据... 阅读全文
-
ElasticSearch集群部署
摘要:ElasticSearch集群部署摘要:世上有三类书籍:1、介绍知识,2、阐述理论,3、工具书;世间也存在两类知识:1、技术,2、思想。以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指正。关键... 阅读全文
-
模板引擎
摘要:SimpleTemplate模板引擎开发模板引擎相信大家是经常使用的,但是实现原理估计没多少人知道(你要是说不就是replace嘛,那我也无话说了...)。先来看看这个SimpleTemplate想实现的是什么功能吧:是个C#端的模板引擎模板中能放普通变量(i, j, index, username... 阅读全文
-
领域服务
摘要:领域服务前言:之前一直在搭建项目架构的代码,有点偏离我们的主题(DDD)了,这篇我们继续来聊聊DDD里面另一个比较重要的知识点:领域服务。关于领域服务的使用,书中也介绍得比较晦涩,在此就根据博主自己的理解谈谈这个知识点的使用。DDD领域驱动设计初探系列文章:C#进阶系列——DDD领域驱动设计初探(一... 阅读全文
-
UnitOfWork应用
摘要:UnitOfWork以及其在ABP中的应用Unit Of Work(UoW)模式在企业应用架构中被广泛使用,它能够将Domain Model中对象状态的变化收集起来,并在适当的时候在同一数据库连接和事务处理上下文中一次性将对象的变更提交到数据中。从字面上我们可以我们可以把UnitOfWork叫做工作... 阅读全文