自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 关于架构的思考

     作者: Anders小明   一、             架构是什么通常关于架构的第一个问题是架构是什么,很自然也很正常,本文也不能免俗。然而关于这个问题却没有一致性答案,同时也要注意到不同应用的架构实质上存在不同差异性。(一) 架构的定义架构,虽然人们一直在讨论它,甚至于每天都在同其工作,然而这个词并没有一个被业界广泛认可的定义。大致而言,架构的定义分为三类:

2011-07-01 16:13:00 1633

关于架构的思考

 作者: Anders小明   一、             架构是什么通常关于架构的第一个问题是架构是什么,很自然也很正常,本文也不能免俗。然而关于这个问题却没有一致性答案,同时也要注意到不同应用的架构实质上存在不同差异性。      (一) 架构的定义架构,虽然人们一直在讨论它,甚至于每天都在同其工作,然而这个词并没有一个被业界广泛认可的定义。大致而言,架构的定义分为三类:...

2011-07-01 16:07:09 219

原创 如何定义和建立架构

任何系统都有架构,无论多小的系统都有,区别在于其架构是否是经过明确设计并表达。一个合理的架构无疑是经过精心设计和维护的,如何定义和建立架构,本文分享一些实践和思考,希望能抛砖引玉。

2010-10-31 11:47:00 7081 9

如何定义和建立架构

作者: Anders小明   在牛津高阶词典(第7版)中,架构(architecture)一词的解释是:the design an structure of a computer system。这个解释实际上已经描述了架构的本质:架构是关于怎么做(构成系统)的,而非做什么的。更进一步,架构是由人来设计实施,因此架构实际上是一个文化(culture)——我们怎么认识或理解系统/产品的,并且我们准...

2010-10-31 11:41:36 260

原创 企业应用下的业务组件开发实践

作者:  Anders小明 什么是企业应用下的业务组件首先,这是一个组件,这意味着它需要在容器里运行,因此不包括任何中间件服务,同时以一定结构(文件结构或者压缩格式)组成,被容器识别;其次,这是一个业务组件,即提供的是应用服务,而非技术服务;第三,这是企业应用,在业务上包括功能和服务(Service,当前最时髦的说法,你可以理解为API),技术上(以J2EE来讲)包括:UI资源(JSF、J...

2010-02-21 14:14:23 104

原创 企业应用下的业务组件开发实践

作者:  Anders小明 什么是企业应用下的业务组件首先,这是一个组件,这意味着它需要在容器里运行,因此不包括任何中间件服务,同时以一定结构(文件结构或者压缩格式)组成,被容器识别;其次,这是一个业务组件,即提供的是应用服务,而非技术服务;第三,这是企业应用,在业务上包括功能和服务(Service,当前最时髦的说法,你可以理解为API),技术上(以J2EE来讲)包括:UI资源(JSF、J

2010-02-21 14:09:00 1791 1

浅谈领域驱动设计

作者:anders小明2009年5月7日  需求背景现在的样子如PoEAA中提到的:事务脚本(Transaction Script)和表模型(Table Moduel)模式。存在问题事务脚本看到的是零散的数据,而表模型混合了下文要说领域模型和领域服务界限。1.     两者都导致了分析和设计的割裂,领域模型只存在于分析中;数据间的内在关系无法通过代码体现;2.   ...

2009-05-07 22:32:33 101

原创 浅谈领域驱动设计

作者:anders小明2009年5月7日  需求背景现在的样子如PoEAA中提到的:事务脚本(Transaction Script)和表模型(Table Moduel)模式。存在问题事务脚本看到的是零散的数据,而表模型混合了下文要说领域模型和领域服务界限。1.     两者都导致了分析和设计的割裂,领域模型只存在于分析中;数据间的内在关系无法通过代码体现;2.   

2009-05-07 22:28:00 1546 1

浅谈基础平台

作者:anders2009年5月5日 一、什么是基础平台基础平台对应于业务应用,主要处理技术问题,是为业务应用提供技术支撑以及技术方案的模块或者组件。其目的是使得应用组件可只关注于业务逻辑,而不考虑或者少考虑技术问题。基础平台通常包括如下:基础功能,开发类库,开发模式以及开发部署工具。 二、为何要基础平台应用系统的设计可以说是将一个业务语言翻译成程序语言的过程,这个...

2009-05-06 01:20:01 204

原创 浅谈基础平台

作者:Anders小明2009年5月5日  一、什么是基础平台基础平台对应于业务应用,主要处理技术问题,是为业务应用提供技术支撑以及技术方案的模块或者组件。其目的是使得应用组件可只关注于业务逻辑,而不考虑或者少考虑技术问题。基础平台通常包括如下:基础功能,开发类库,开发模式以及开发部署工具。 二、为何要基础平台应用系统的设计可以说是将一个业务语言翻译成程序语言的过程,这

2009-05-06 01:14:00 1520

浅谈企业应用架构(二)

作者:Anders小明2009年5月5日五、架构的技术层面(一)基础手段提高开发效率和品质的基本手段是分解——即充分的分离系统中不同的关注点,好处不用说了,可以并发的工作,每个人面对的问题都简单而容易操作。而与分解对应的集成,只有提供了好的集成能力,分解才成为现实,而只有分解了,才能清晰的提供业务更多适应性。分解和集成的手段分为编程语言和技术框架两个层面。所谓语言就是强框架,而框架就是...

2009-05-06 00:59:46 104

原创 浅谈企业应用架构(二)

五、架构的技术层面(一)基础手段提高开发效率和品质的基本手段是分解——即充分的分离系统中不同的关注点,好处不用说了,可以并发的工作,每个人面对的问题都简单而容易操作。而与分解对应的集成,只有提供了好的集成能力,分解才成为现实,而只有分解了,才能清晰的提供业务更多适应性。分解和集成的手段分为编程语言和技术框架两个层面。所谓语言就是强框架,而框架就是弱语言。A. 开发语言现代面

2009-05-05 23:24:00 1701

浅谈企业应用架构(一)

作者:Anders小明2009年5月5日  一、什么是架构在牛津高阶词典(第7版)中,架构(architecture)一词的解释是:the design an structure of a computer system,而架构师(architect)一词的解释是:a person who is responsible for planning or creating an idea, a...

2009-05-05 23:23:37 171

原创 浅谈企业应用架构(一)

作者:Anders小明2009年5月5日  一、什么是架构在牛津高阶词典(第7版)中,架构(architecture)一词的解释是:the design an structure of a computer system,而架构师(architect)一词的解释是:a person who is responsible for planning or creating an idea, a

2009-05-05 22:24:00 1512

AOSD的实践冲动——Use Case的实现

Author:Anders小明目前采用是面向对象设计方法,设计的粒度分为两级:类和方法(属性),类似于数据库设计的表和字段;在现有实现体系下,一个方法内部将包容多个Use Case;同时因为Use Case本身的横向扩展,也会导致一个Use Case将关联到多个方法;这是一个多对多的关系,为我们的开发管理带来巨大的成本。为了有效管理Use Case及其实现映射,AOP技术成...

2008-01-12 21:42:08 123

原创 AOSD的实践冲动:Use Case的实现

 Author:Anders小明目前采用是面向对象设计方法,设计的粒度分为两级:类和方法(属性),类似于数据库设计的表和字段;在现有实现体系下,一个方法内部将包容多个Use Case;同时因为Use Case本身的横向扩展,也会导致一个Use Case将关联到多个方法;这是一个多对多的关系,为我们的开发管理带来巨大的成本。为了有效管理Use Case及其实现映射,AOP技术成为一个好的

2008-01-12 21:35:00 2719 1

业务流程的层次和内容

Author:Anders小明(2008-1-12更新)业务流程依据不同层次分为3个0. 领域流程领域流程即领域对象生命周期,是流程中的核心;1. 工作流程工作流是处理多人协同工作,三权分立的过程;该过程是建立在领域对象生命周期上;生命周期的不同状态在工作流中都有映射;工作流处理的是领域中Request对象的生命周期;2. 页面流程页面流是处理工作中一个工作...

2008-01-08 22:42:48 178

Domain Model的三种类型及其级别

Author: Anders小明(2008-1-12更新)从以上的分析中,我们可以了解到Domain Model分为三种类型:0. 全局常量对象1. 长生命周期业务对象(类似保单对象);2. 交易过程的Transaction对象,几乎没有生命周期的;3. Request/Response对象。这类对象以前没有识别的,通常和VO混在一起;但是在IAA中以及电信业的模型...

2008-01-08 22:41:33 145

原创 业务流程的层次和内容

Author:Anders小明(2008-1-12更新)业务流程依据不同层次分为3个0. 领域流程领域流程即领域对象生命周期,是流程中的核心;1. 工作流程工作流是处理多人协同工作,三权分立的过程;该过程是建立在领域对象生命周期上;生命周期的不同状态在工作流中都有映射;工作流处理的是领域中Request对象的生命周期;2. 页面流程页面流是处理工作中一个工作请求的分步申请;该过程建立在

2008-01-08 22:36:00 4013

原创 Domain Model的三种类型及其级别

Author: Anders小明(2008-1-12更新)从以上的分析中,我们可以了解到Domain Model分为三种类型:0. 全局常量对象1. 长生命周期业务对象(类似保单对象);2. 交易过程的Transaction对象,几乎没有生命周期的;3. Request/Response对象。这类对象以前没有识别的,通常和VO混在一起;但是在IAA中以及电信业的模型是这类对象是独立存在

2008-01-08 22:31:00 4033

原创 小议领域模型(Domain Model)补充以及更新

Author: Anders小明为何要Domain Model传统的开发方式:基于数据库的设计开发。数据库提供的设计模型是表和字段两种粒度,这两种粒度有时并不合适于系统设计:1. 模型的结构化能力1.1. 同一模块组件下的设计优势;一个model可以来自多张表的数据聚合而成,一张表可以聚合多个Model;一个逻辑是由几个固定字段或者非固定字段聚合;Model间的关联关系也是使用表无法展示的(外键的

2007-12-15 01:24:00 3366

原创 基于业务模块组件的系统架构

 Author:Anders小明以前写过一篇《基于抽象的分层结构》,这里补充一篇《基于业务模块组件的系统架构》一些内容在《项目笔记:dao,web,模块边界以及Model分类》以及《模块的接口设计》随笔中已经提到,这里补充总结一下。任何一个有一定规模系统,通常会把系统做一定分解降低分析设计开发的难度,模块划分是一个比较常见的方式。而在模块的划分及其分析设计的实践中,包括了两种层次的边界。第一是

2007-12-15 01:20:00 2491

基于业务模块组件的系统架构

Author:Anders小明以前写过一篇《基于抽象的分层结构》,这里补充一篇《基于业务模块组件的系统架构》一些内容在《项目笔记:dao,web,模块边界以及Model分类》以及《模块的接口设计》随笔中已经提到,这里补充总结一下。任何一个有一定规模系统,通常会把系统做一定分解降低分析设计开发的难度,模块划分是一个比较常见的方式。而在模块的划分及其分析设计的实践中,包括了两种层次的边界。第一是交互行...

2007-12-15 01:14:08 316

小议领域模型(Domain Model)补充以及更新

Author: Anders小明[b]为何要Domain Model[/b]传统的开发方式:基于数据库的设计开发。数据库提供的设计模型是表和字段两种粒度,这两种粒度有时并不合适于系统设计:1. 模型的结构化能力1.1. 同一模块组件下的设计优势;一个model可以来自多张表的数据聚合而成,一张表可以聚合多个Model;一个逻辑是由几个固定字段或者非固定字段聚合;Model间的关...

2007-12-15 01:07:54 220

软件架构乱弹——问题域及其解决方法(2007.12.14更新)

作者:Anders小明(2007.12.14日补充更新了部分内容,其中有关Web网站性能特点部分内容来自网络) 一、什么是架构1. 和架构相关的几个问题域架构需要解决的非业务问题域包括如下:A 系统目标:系统性能,稳定性.B.项目目标:开发成本,质量C.项目过程:需求的不确定性和开发过程的团队协作性不同的问题域,解决之道也不相同!而同一问题域的不同层次的要求,解决之道也不尽相同。2. 什么是架构 ...

2007-09-20 23:09:23 227

原创 软件架构乱弹——问题域及其解决方法

作者:Anders小明(2007.12.14日补充更新了部分内容,其中有关Web网站性能特点部分内容来自网络) 一、什么是架构1. 和架构相关的几个问题域架构需要解决的非业务问题域包括如下:A 系统目标:系统性能,稳定性.B.项目目标:开发成本,质量C.项目过程:需求的不确定性和开发过程的团队协作性不同的问题域,解决之道也不相同!而同一问题域的不同层次的要求,解决之

2007-09-20 23:01:00 3955

软件工程中的经济行为与软件架构师的工作

Author:Anders小明软件工程中的经济行为1. 在传统财务概念下,软件公司或者商业公司IT部门的员工,是公司的成本中心。对于一个定额合同项目,员工工资成为项目中唯一的可变成本。2. 因此,尽可能的缩短工期,减少人员投入就成为缩减成本的基本方式。3. 软件的分工模式,以及传统的waterfall——流水线的工作方式,决定了问题发现的越早,修正的成本越低。4. 有两种手段来减少工期,工程上采用...

2007-06-19 22:22:19 134

原创 软件工程中的经济行为与软件架构师的工作

Author:Anders小明软件工程中的经济行为1. 在传统财务概念下,软件公司或者商业公司IT部门的员工,是公司的成本中心。对于一个定额合同项目,员工工资成为项目中唯一的可变成本。2. 因此,尽可能的缩短工期,减少人员投入就成为缩减成本的基本方式。3. 软件的分工模式,以及传统的waterfall——流水线的工作方式,决定了问题发现的越早,修正的成本越低。4. 有两种手段来减少工期,工程上

2007-06-19 22:20:00 2567

Web框架比较

Blog好久没有更新了, 最近一直忙于一个新项目,在这个项目中尝试很多新的做法,准备收集一下放上blog来,这里先放一篇关于Web框架的,基本是老调重谈了. 该文写于4月,主要是为了和朋友讨论问题,有些地方可能不正确   Struts ...

2007-05-23 23:06:25 268

原创 Web框架比较

Blog好久没有更新了, 最近一直忙于一个新项目,在这个项目中尝试很多新的做法,准备收集一下放上blog来,这里先放一篇关于Web框架的,基本是老调重谈了. 该文写于4月,主要是为了和朋友讨论问题,有些地方可能不正确   Str

2007-05-23 22:44:00 3582

编译器的春天

为什么这么说呢?这样说是有理由的:先来看看Java世界中看看最近新热的groovy,以及早已名声在外的aspectj,无一不是通过编译器支持新的语法结构:一个提供了全新动态语言,一个支持面向方面扩展语法。而MS世界里,且按下各个动态语言的CLR实现不表,就单看C#语法本身,其delegate,partial等都是利用编译器来完成处理的。想想也是:VM的更新工程浩大且影响面广,而在编译器中动...

2007-04-11 23:24:16 93

模块的接口设计

Author: Anders小明          任何一个有一定规模系统,通常会把系统做一定分解降低分析设计开发的难度,模块划分是一个比较常见的方式。        而在模块的划分,及其分析设计的实践中,模块和模块的交互接口最为重要,通常我们认为这些接口应该通用稳定,然而如何设计每个模块对外提供的接口却是一个不易的问题。        实践中,极有可能出现两种状况:接口维护失控或者过严而死板(而...

2007-03-12 20:36:08 2470

对Robbin《domain model的延伸讨论(重新编辑) 》一文质疑

《domain model的延伸讨论》 http://www.iteye.com/topic/57075robbin试图用两个例子来支撑其观点似乎太过牵强!1. ruby的代码中是domain model直接包含了操作集合的代码,java的理念则不是如此。用来比较优劣是否妥当暂且不说,首要的问题在于:domain model理念是哪个?是允许一个对象包含自己的集合操作还是不可以?我以为目前并...

2007-03-05 18:53:53 124

原创 AspectJ应用--软件产品化的新方法

 Author: Anders小明产品化和客户化两个词语是一个对孪生兄弟,一个没有强大客户化能力的软件是不能称为产品化的软件.产品化也就意味着软件公司的开发至少分为两个不同性质的角色:一个负责产品化,一个负责客户化.除去传统的参数化, 继承以及plugin技术外,aspectJ为我们提供另一种能力.如前所述, 公司有两个不同角色的团队在开发和维护—研发组和项目组,更进一步,本文所说适应

2007-02-12 23:47:00 3542

AspectJ应用--软件产品化的新方法

Author: Anders小明产品化和客户化两个词语是一个对孪生兄弟,一个没有强大客户化能力的软件是不能称为产品化的软件.产品化也就意味着软件公司的开发至少分为两个不同性质的角色:一个负责产品化,一个负责客户化.除去传统的参数化, 继承以及plugin技术外,aspectJ为我们提供另一种能力.如前所述, 公司有两个不同角色的团队在开发和维护—研发组和项目组,更进一步,本文所说适应如下的开发团队...

2007-02-12 23:40:48 138

Interface plays as Placeholder, without any class implement

Interface play as Placeholder, without any class implement itAuthor:Anders小明有个这个题目是在ApectJ的应用,以及博客园子中一个blog讨论什么时候用接口(一个很古老的话题)。接口作为一种重要的抽象能力,重要意义在于:模型上看:接口代表做什么,而实现表示怎么做!在框架上:接口代表稳定,而实现代表多变!在语言上...

2007-02-09 15:48:24 78

原创 Interface plays as Placeholder, without any class implement it

Interface play as Placeholder, without any class implement itAuthor:Anders小明有个这个题目是在ApectJ的应用,以及博客园子中一个blog讨论什么时候用接口(一个很古老的话题)。接口作为一种重要的抽象能力,重要意义在于:模型上看:接口代表做什么,而实现表示怎么做!在框架上:接口代表稳定,而实现代表多变!在语言上:接口代

2007-02-09 15:41:00 2247

转载 [转贴]做好个人时间管理

新的一年做的最有意义的第一件事就是学习了“时间管理”。之所以想起来学习一下时间管理,是因为在过去的一年中自己迷失了目标,浪费了许多的好时光;因此痛定思痛,决定在这一年中利用好所有自己的时间,实现自己年度目标。 一、  为什么要进行时间管理?时间是财富!想想吧,如果你每天都收到86400美元,而要求你每天必须把它用完,那你会如何运用?天下真有如此的好事?事实上,有。那就是时间。我们每个人每天都有

2007-02-07 19:52:00 1970

[转贴]做好个人的时间管理

新的一年做的最有意义的第一件事就是学习了“时间管理”。之所以想起来学习一下时间管理,是因为在过去的一年中自己迷失了目标,浪费了许多的好时光;因此痛定思痛,决定在这一年中利用好所有自己的时间,实现自己年度目标。 一、  为什么要进行时间管理?时间是财富!想想吧,如果你每天都收到86400美元,而要求你每天必须把它用完,那你会如何运用?天下真有如此的好事?事实上,有。那就是时间。我们每个人每天都有...

2007-02-07 19:46:19 128

基于抽象的分层结构

基于抽象的分层结构Author:Anders小明 (2008-1-8更新)前言:现有已知的分层结构基本上是基于技术结构的,无论是SpringSide(早的还有AppFuse)还是DDD提出的分层结构,都是基于职责角色划分的。然而对于复杂的企业应用系统来说,仅仅以该纬度来划分,是无法完成逻辑的分解的。我们还需要基于抽象的分层纬度。基于抽象的分层结构众所周知:抽象是有排列的。进一步,在企业应用中,抽象...

2007-01-05 01:09:04 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除