理解专题提供理解的最新资讯内容,帮你更好的了解理解。
文章链接:https://yq.aliyun.com/articles/69036 领域驱动设计是一种软件设计思想 领域模型驱动代码实现 在传统的软件设计思想中,分析、设计和编码这几个阶段被割裂。 DDD中,我们总是以领域为边界,分析领域中的核心问题(核心关注点),然后设计对应的领域模型,再通过领域模型驱动代码实现。而像数据库设计、持久化技术等这些都不是DDD的核心,而是外围的东西。 领域驱动设计
前言:在学习UML视频的时候,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,下面就来详细的论述一下如何区分依赖、关联、聚合和组合。 首先看一看书上对这四种关系的定义: 依赖(Dependency)关系是类与类之间的联接。依赖关系表示一个类依赖于另一
从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。 再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备。但是最近由于各种原因,导致服务经常出故障。
领域: 很广, 可以将任何空间成为领域, 当然其也包含子域 子域: 领域下包含的域 限界上下文: 在多个领域或者子域下又相互有联系,但是又有界限的一种称呼
前言 在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。 一 描述 依赖(Dependency)关系是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Person)可以买车(car)和房子(House),Person类依赖于Car类和House类的定义,因为Pers
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有所提及,下面就来详细的论述一下在Java中如何准确的体现依赖、关联、聚合和组合。 首先看一看书上对这四种关系的定义: 依
   1、有了DDD的概念后,可以从领域模型去思考,我们应该拆出多少个子域,从而更好的规划系统,是逻辑更清晰。 如果你是作为一个领域行业的负责人,你可以从复杂的领域里逻辑清晰的拆解出几个子域,和支撑子域。 2、从DDD的角度去思考写代码,会有意想不到的逻辑,简单明亮(贫血领域对象是几乎所有人的毛病)。 如果你是个不知道业务的人,当读着代码你就会完全了解其中的业务,维护交接成本大大降低。 附上图:
Single Responsibility Principle
元表概念 ( Metatable)   元表由键名为 事件 (event) 和其中的值叫作元方法 (metamethod)组成。     在lua中每个值都有一个元表。而table和userdata所定义的值允许自定义对应的元表,   其他都是用统一的元表。   我的理解,元表,其实有点类似 值的属性的味道。 对元表的操作 getmetable 查询元方法 setmetable 替换元方法。 me
ngx_lua 是 模块将 Lua 语言解释器(或者 LuaJIT  即时编译器)嵌入到了 Nginx 核心中,从而可以让用户在 Nginx 核心中直接运行 Lua 语言编写的程序。我们可以选择在 Nginx 不同的请求处理阶段插入我们的 Lua 代码。这些 Lua 代码既可以直接内联在 Nginx 配置文件中,也可以单独放置在外部  .lua  文件里,然后在 Nginx 配置文件中引用  .l
function newCounter()  local i = 0  return function()      -- anonymous function   i = i + 1   return i  end end c1 = newCounter() c2 = newCounter() print(c1())  -->1 print(c1())  -->2 print(c2())  --
     0、Lua与C有两种交互形式。在第一种形式中,C语言拥有控制权,Lua是一个库,这种形式中的C代码称为“应用程序代码”;在第二种形式中,Lua拥有控制权,这种形式中的C代码称为“库代码”。Lua的解释器程序(lua.c)就是“应用程序代码”的一个实例;而Lua标准库(lstrlib.c,lmathlib.c等)则是“库代码”的实例。应用程序代码和库代码(注意他们都是C代码,只是功能或者说
     0、对于能被Lua调用的C函数,必须注册这个C函数,以便用某种适当的方式将函数地址告诉Lua。当Lua调用C函数时,使用了与C调用Lua函数时相同的栈。C函数从栈中获取函数参数,并将结果压入栈中。为了在栈中将函数结果与其他值区分,C函数还应该返回其压入栈中的结果数量。 栈不是一个全局性的结果,这是一个重要的概念。每个函数都有自己的局部私有栈。当Lua调用一个C函数时,第一个参数总是这个局
   0、Lua中使用userdata类型来表示在C中定义的类型。userdata只是提供了一块原始的内存区域,可以用来存储任何东西,并且,在lua中userdata没有任何预定义的操作。在C中调用函数lua_newuserdata会根据指定的大小分配一块内存,并将相应的userdata压入栈中,最后返回这个内存块的地址:void *lua_newuserdata(lua_State *L,siz
本文来自:http://www.2cto.com/kf/201503/382691.html 闭包的概念 在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variable)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没有会访问的非局部变量
本文只讨论lua #取表长度。 官方解释: 3.4.6 – The Length Operator The length operator is denoted by the unary prefix operator #. The length of a string is its number of bytes (that is, the usual meaning of string len
        在读Lua程序设计这本书时,前五章我是抱着鄙视的态度去读的。因为那些被我称为奇淫巧计的语言写法,让我颇不以为然。但是从第六章的深入函数开始,逐渐转变了我对Lua的态度。不吐不快,Lua不愧为天下第一脚本。在Code武林中,众语言好比各武学深渊的正派绝技,而Lua好似天下第一暗器。言归正传,记录一下函数和closue闭合函数的思想。 词法域和第一类型          在C/C++,
-- lua中的coroutine提供了合作式的多线程支持,也就是说,它实际上不是在cpu上原生的多线程, -- 只是一个线程中可以保存多个执行环境.依赖于resume与yield进行执行环境的切换. -- 详见:http://manual.luaer.cn/2.11.html 协程中的几个函数:coroutine.create/coroutine.wrap,coroutine.resume,co
  lua元表理解 2015-08-23 22:13  237人阅读  评论(0)  收藏  举报   分类: lua 版权声明:本文为博主原创文章,未经博主允许不得转载。 在lua中任何变量都有一个元表(我相信每个字符串元表都是string相关,所以可以使用string:length()),元表中特殊的值有特殊的含义,比如__index,__call,__add等等。 函数setmetatabl
lua 之__index/__newindex的理解 2013-11-14 09:58  696人阅读  评论(0)  收藏  举报   分类: C/C++(158)   lua学习(48)  版权声明:本文为博主原创文章,未经博主允许不得转载。 [plain]  view plain  copy --example:   local temp_table ={       10,       1