欢迎光临汤雪华的博客

一个人一辈子能坚持做好一件事情就够了!坚持是一种刻意的练习,不断寻找缺点突破缺点的过程,而不是重复做某件事情。
posts - 141, comments - 2098, trackbacks - 0, articles - 0
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
共 8 页: 首页 上一页 2 3 4 5 6 7 8 下一页

2013年2月4日

摘要:原文链接:http://blog.tianya.cn/blogger/post_read.asp?BlogID=83331&PostID=49513622如果火星访客觉得地球人说着同一种语言,很可能是因为他们发现,这个世界上所有语言的短语都有着相同的结构。关于短语的规则和特点,有很多话可说。不过史蒂... 阅读全文

posted @ 2013-02-04 10:16 netfocus 阅读 (456) 评论 (0) 编辑

2012年10月18日

摘要:安装完Mono for Android(简称:MonoDroid)之后,可以用MonoDevelop或Visual Studio来开发Mono for Android应用程序;目前只能在模拟器上调试和部署,必须购买后才能在真机上调试和部署;目前遇到的最大的问题是:模拟器上调试速度非常慢,通过单步调试每一行代码都需要几秒钟。有人开了个帖子抱怨以及一些回复的相关讨论:http://mono-for-android.1047100.n5.nabble.com/Free-version-Emulator-only-Bye-bye-td5091443.html,另外,如果购买了正式版,那支持直接用设备来 阅读全文

posted @ 2012-10-18 16:15 netfocus 阅读 (4881) 评论 (4) 编辑

2012年9月8日

摘要:是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念形式的值类型。这是一种创建比物理数据模型具有更高粒度的对象模型的方式。举例,看下表中的数据:对应的对象模型:它们十分不同,在一个单一表中包括了所有物理数据,我们想在对象模型中调整为用两个分离的类型来映射该表。这就是的用法:这个映射将会在物理数据模型和对象模型中转换。我们还可以让NHibernate对进行排序并给我们所预期的对象图。 阅读全文

posted @ 2012-09-08 21:10 netfocus 阅读 (1363) 评论 (0) 编辑

摘要:DDD的核心是聚合。这没有问题,大家都认同。但关于DDD中的聚合方式,其实我还是有些担心,下面说说我的想法,希望大家参与讨论。其实当初第一次看到DDD中关于聚合根部分论述的时候,就感觉有些僵化。DDD中的聚合根的分析设计思路大致是这样:1、业务本质逻辑分析;2、确认聚合对象间的组成关系;3、所有的读... 阅读全文

posted @ 2012-09-08 20:50 netfocus 阅读 (6972) 评论 (14) 编辑

2012年9月6日

摘要:基于DDD+Event Sourcing设计的模型如何处理模型重构? 问题背景:ddd的核心是聚合,一个聚合内包含一些实体,其中一个是根实体,这个大家都有共识;另外,如果将DDD与Event Sourcing结合,那就是一个聚合根会产生一些event;那么这里的问题是:如果一个领域对象,一开始是en... 阅读全文

posted @ 2012-09-06 12:22 netfocus 阅读 (4332) 评论 (3) 编辑

摘要:大家看看能否看得懂哦,呵呵!最早的想法是产生于对OO方法的不满,主要的想法是将对象拆开为方法和属性以实现更加灵活的组合,在此之上构想了很多特性,但是过于零散,没有统一的理论,还肯定存在严重的特性冲突问题。将计算机代码看做一个由逻辑实现的符号运算展开的结果,类似于元编程,自称为“逻辑宏”,用逻辑宏实现... 阅读全文

posted @ 2012-09-06 00:31 netfocus 阅读 (1707) 评论 (2) 编辑

摘要:本人在翻看帖子的时候,发现很多网友不太喜欢哲学部分。认为那是漫无边际、浪费时间。但是多了解一些还是有帮助的。以下是我自己在编程时的一些感受。有点杂乱,将就着看看吧。一、对象和事物好像听过这么一句话:人类永远无法认识完整的事物。因为我们认识到的总是事物的某一方面。我们所说的对象实际上是客观事物在人头脑... 阅读全文

posted @ 2012-09-06 00:12 netfocus 阅读 (1268) 评论 (1) 编辑

2012年2月12日

摘要:1. 聚合根、实体、值对象的区别?从标识的角度:聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法;从是否只读的角度:聚合根除了唯一标识外,其他所有状态信息都理论上可变;实体是可变的;值对象是只读的;从生命周期的角度:聚合根有独立的生命周期,实体的生命周期从属于其所属的聚合,实体完全由其所属的聚合根负责管理维护;值对象无生命周期可言,因为只是一个值;2. 聚合根、实体、值对象对象之间如何建立关联?聚合根到聚合根:通过ID关联;聚合根到其内部的实体,直接对象引用;聚合根到值对象,直接对象引用;实体对其他对象的引用规则:1)能引用 阅读全文

posted @ 2012-02-12 14:22 netfocus 阅读 (25623) 评论 (38) 编辑

摘要: 阅读全文

posted @ 2012-02-12 14:08 netfocus 阅读 (1270) 评论 (1) 编辑

摘要: 阅读全文

posted @ 2012-02-12 14:06 netfocus 阅读 (538) 评论 (0) 编辑

摘要:Reference URL:http://martinfowler.com/articles/lmax.html该架构主要基于:Disruptor + In Memory DDD + Event Sourcing通过高并发框架(Disruptor)实现用户事件的输入和Domain Event的输出;一个常驻内存的Business Logic Processor(DDD领域模型),它负责在纯内存中处理业务逻辑;关键点:首先确保用户输入事件被持久化到数据库,并定时创建快照,然后在内存中响应事件更改业务对象的状态;因为一切都是在内存中处理,所以没有IO,也不需要数据库事务,非常快;机器down了怎么 阅读全文

posted @ 2012-02-12 14:04 netfocus 阅读 (7702) 评论 (3) 编辑

摘要:一个对象从创建开始到消亡会经历很多事件,以前我们是在每次对象参与完一个业务动作后把对象的最新状态持久化保存到数据库中,也就是说我们的数据库中的数据是反映了对象的当前最新的状态。而事件溯源则相反,不是保存对象的最新状态,而是保存这个对象所经历的每个事件,所有的由对象产生的事件会按照时间先后顺序有序的存... 阅读全文

posted @ 2012-02-12 13:51 netfocus 阅读 (18585) 评论 (16) 编辑

摘要:CQRS on itself is a very simple pattern. It only describes that the component of an application that processes commands should be separated from the c... 阅读全文

posted @ 2012-02-12 13:49 netfocus 阅读 (5616) 评论 (6) 编辑

摘要:数据有两个重要属性:首先数据是基于时间的,数据是表达一段时间内一个逻辑为真的事实。另外一个属性是数据本质上是不可变的,因为和时间有关,我们是不能回到过去改变数据的真实性。这两个属性就意味着:对数据你其实只有两个主要的操作:读取现有数据,并(随着时间)添加更多新的数据,CRUD(增删改查)称为CR(增读)。这样,CRUD其实没有U修改,因为修改对不可变数据是不其作用的(非常类似DDD中值对象不可变,不能修改,只能更换)。CRUD中也没有删除Delete,其实大部分删除其实是一种创建新数据,如果Bob停止跟随Mary,但是他们不能改变他曾经跟随过他的事实,删除那个他不跟随她的数据,你会增加一个数据 阅读全文

posted @ 2012-02-12 13:43 netfocus 阅读 (2591) 评论 (3) 编辑

摘要:人类社会的一切事物都是来源于对造物主智慧的学习,人类本身是不会创造任何东西的。外国新技术并不能作为软件架构的终极准则,因为老外也是人。我认为客观世界的架构应该是软件架构的唯一准则,换而言之,上帝也是一个架构师,而这个客观世界就是他的作品。有这么完美的学习对象,为什么要舍本逐末呢?就拿领域对象的设计来说,在客观世界中,人如果要做某件事情,比如扫地这个动作,扫地难道是人自己完成的吗?其实扫地是人借助扫帚这个工具完成的。换而言之,领域对象的一些动作,也根本不属于他自己,如果你把这些动作硬要强加在领域对象身上,就肯定会出现类似领域对象中调用技术层这种别扭的问题。比如,经常有什么贫血对象,和充血对象之类 阅读全文

posted @ 2012-02-12 13:43 netfocus 阅读 (2889) 评论 (3) 编辑

摘要:经典的DDD的告诉我们如果一个领域概念是一个跨多个聚合的动作,比如转帐,那么就应该用领域服务来实现这样的业务概念。领域服务的输入和输出参数都是聚合根,领域服务内部按照业务逻辑规定的执行顺序,按照面向过程的方式,逐个调用相关聚合根的相关方法完成整个业务操作。这种方式的优点是:1)清晰的表达和封装了业务... 阅读全文

posted @ 2012-02-12 13:42 netfocus 阅读 (4899) 评论 (4) 编辑

摘要:Business value of the events, the value of having a log, the fact that the Event Store is additive only.The biggest advantage of this architecture is ... 阅读全文

posted @ 2012-02-12 13:40 netfocus 阅读 (2509) 评论 (0) 编辑

摘要:If you are wondering “What comes after agile?,” you should look towards continuous delivery. While your development processes may be fully optimized, ... 阅读全文

posted @ 2012-02-12 13:38 netfocus 阅读 (655) 评论 (0) 编辑

2012年1月31日

摘要:CQRS is just a concept that we can seperate the application to two parts: the write part and the read part, that's all;Command: A command represents w... 阅读全文

posted @ 2012-01-31 00:06 netfocus 阅读 (2980) 评论 (3) 编辑

2011年12月3日

摘要:1. 书是学习知识最快的最系统的方法;2. 看名人Blog是学习正统知识第二个非常有效的方法;3. 我热衷于微软.NET平台下的web应用开发,对软件设计,软件工程也有一定兴趣;4. 近一年来以及将来重点关注DDD的理论研究和逐步实践;5. 知识就是金钱;6. 学习知识是一个循序渐进的过程,看的书也是有层次的;7. 只有有恒心和毅力,坚定的意志才能深入了解某门技术或设计或架构,才又机会知道某个领域中哪些问题值得去研究;8. 当你研究到一定程度,会发现国内与国外的差别,你才会感叹学好英语非常重要;9. 不要以为工作多年,写过很多软件,就是水平高,就具有设计能力;提高设计能力我觉得首先看你学习的方 阅读全文

posted @ 2011-12-03 20:44 netfocus 阅读 (2454) 评论 (10) 编辑

共 8 页: 首页 上一页 2 3 4 5 6 7 8 下一页