摘要: 在上一部分,分层架构的目的是为了将业务规则剥离出来在单独的领域层中进行实现。再回顾一下领域驱动设计的分层中应用层代码的实现。 所有的业务规则都抽象到领域对象,比如“order.pay(amount)”抽象了付款的业务规则。领域对象由状态(对象的字段、属性)和操作(对象的方法)构成,领域对象的操作用于阅读全文
posted @ 2019-04-24 08:23 道法自然 阅读(554) 评论(3) 编辑
摘要: 反映业务规则的代码是整个软件的核心,但是它一般只占很小的一部分,在传统的基于贫血模型的分层软件架构中,业务规则可能分散到各个层、各个代码段,从而使得通过代码来还原业务规则或者保证代码与业务规则一致将变得非常困难。DDD分层架构的核心思想就是将所有业务规则的代码抽取到领域层,保证领域层的编码与领域模型阅读全文
posted @ 2019-01-12 18:53 道法自然 阅读(952) 评论(1) 编辑
摘要: 1 为什么我要研究领域驱动设计 1.1 设计方法各样且代码无法反映设计 我大概从2017年10月份开始研究DDD,当时在一家物流信息化的公司任职架构师,研究DDD的初衷在于为团队寻找一种软件设计的方法论。作为架构师,经常参与设计评审,包括:需求评审、设计评审、代码评审。在评审过程中,有一点感受非常深阅读全文
posted @ 2019-01-12 12:13 道法自然 阅读(884) 评论(2) 编辑
摘要: 本文介绍我开发的一个JavaScript编写的插件化框架——minimajs,完全开源,源码下载地址:https://github.com/lorry2018/minimajs。该框架参考OSGi规范,将该规范定义的三大插件化功能在Node上实现了。MinimaJS三个功能:动态插件化,服务和扩展。阅读全文
posted @ 2017-10-25 20:52 道法自然 阅读(1696) 评论(0) 编辑
摘要: 1 背景近来参与一个较大团队的项目实施,项目的金额两千万,人数近百。但是,项目实施后,暴露出以下几个问题:(1)质量不佳,团队成员水平参差不齐,软件外部质量、内部质量一致性差;(2)需求不确定,时间非常紧,代码频繁修改,越来越丑,效率变低。为了保证项目按时按质交付,质量改善刻不容缓。因此,在项目的初...阅读全文
posted @ 2015-08-24 09:05 道法自然 阅读(7791) 评论(24) 编辑
摘要: 本文将用尽可能简单的文字来描述插件框架原理。很多人以为插件化很复杂,所以就一直将这类框架阻挡在门外。实际上,在我们的实践过程中,从框架的使用角度来看,它非常简单,我们团队里面非正规院校毕业的女生也可以来实际使用。如果说插件框架难的地方,我反倒觉得克服人的天然惰性更加困难。我们不能习惯于墨守成规,日复阅读全文
posted @ 2013-09-06 12:16 道法自然 阅读(28130) 评论(93) 编辑
摘要: 在这个文章里面我将用一个实际的案例来分享如何来构建一个能够接受3000+个连接的GPRS通讯服务器软件。在这里,我将分享GPRS通讯服务器设计过程中面临的问题,分享通讯协议的设计,分享基于异步事件的设计,分享避免内存泄露的解决方案,分享软件的发布与升级方法,分享通讯协议的单元测试构建等。 1 GPR阅读全文
posted @ 2013-07-08 08:24 道法自然 阅读(4262) 评论(21) 编辑
摘要: 1 CLR加载器CLR加载器负责装载和初始化程序集、模块、资源和类型。CLR加载器加载尽可能少的这些资源。不像Win32加载器,CLR加载器不会解析和自动加载子模块或程序集。相反,子模块只有当它们真正需要的时候,才进行加载。这不仅缩短了程序初始化时间,而且减少了运行程序消耗的资源。在CLR,加载一般是基于类型且由JIT触发。当JIT编译器尝试将一个方法从公共中间语言编译成机器码,它需要使用声明的类型的类型定义和该类型的字段定义。此外,JIT编译器还需要使用由任何被JIT正在编译的方法的本地变量或参数使用的类型定义。装载一个类型,意味着装载包含类型定义的程序集和模块。按需装载类型的策略,意味着程阅读全文
posted @ 2013-02-27 09:25 道法自然 阅读(6523) 评论(5) 编辑
摘要: 4 基于RoundTrip(往返)的通讯协议设计 通讯服务器插件的核心为3部分:(1)与通讯方式、业务逻辑无关的通讯协议实现;(2)和通讯方式、业务逻辑有关的通讯业务逻辑的实现;(3)远程通讯消息队列。在这里我将重点描述通讯协议的实现。这个通讯协议的实现比较灵巧。 4.1 通讯协议基本单元——消息 阅读全文
posted @ 2012-12-27 21:54 道法自然 阅读(2737) 评论(3) 编辑
摘要: 1 远程分布式监控与控制系统设计概述1.1 概述该系统由通讯服务器、Web管理平台、消息队列服务器和数据库服务器构成。这里,我将在本文要描述的内容摘要如下。(1) 基于OSGi.NET的动态部署(自动升级)、模块化开发方法:整个系统由Web管理平台(这个文章不详细描述)和通讯服务器组成,由5个软件开发人员协作开发(硬件开发工程师若干),目前有多个地域的部署。(2) 基于异步事件的可视化跟踪消息显示:在通讯方式中,有一个用于显示系统通讯过程中的监控信息,这个监控信息对于软件开发/调试以及硬件开发/调试有极大的帮助,它能够详细显示每一个通讯指令的执行过程,方便软件开发工程师和硬件开发工程师的协作与阅读全文
posted @ 2012-12-27 17:01 道法自然 阅读(2603) 评论(6) 编辑