企业架构研究总结(42)——企业架构与建模之ArchiMate详述(中)
2.4 技术层模型元素
技术层模型元素包括了企业在信息基础设施方面(企业中基本的软硬件环境,包括物理设备、系统软件等为信息化提供基本支持的设施)的各种概念元素,以及他们之间的关系。与应用层模型元素相类似,技术层模型元素中的大部分概念元素也来源于UML 2.0,这同样也是因为UML 2.0在这一领域已经成为被广泛接受的事实标准。在ArchiMate 2.0中,对企业技术层进行建模的各种概念元素以及他们之间的主要关系(元模型)被定义如下:
2.4.1 结构元素
2.4.1.1 节点(Node)
- 定义:用于表示存储或部署执行各种制品的计算资源的主动性概念元素。这一概念与UML 2.0中的节点概念是相同的,是构成技术层结构方面的基本单元,也是此领域建模中的核心元素。节点可以用来对应用服务器、数据服务器或客户工作站来进行建模,概括来讲,其所描述的内容是组合了硬件资源以及系统软件并对外提供计算资源的逻辑单元。节点所涉及到的主要关系可归纳为:
- 节点元素之间通过通信路径进行互联。
- 制品可以被分配给节点,用于表示该制品被存储或部署在此节点之上。
- 表示图符:
- 实例:在本案例中,“应用服务器”节点包含了“刀片服务器设备”这一硬件资源,以及“J2EE服务器”这一系统软件资源。
2.4.1.2 设备(Device)
- 定义:用于表示存储或部署执行各种制品的硬件资源。设备概念元素是节点元素的特化,他代表了具有处理能力的各种物理资源,例如大型机、个人计算机或路由器等。设备所涉及到的主要关系可归纳为:
- 设备可以组合或聚合其他的子设备。
- 设备之间通过网络进行互联。
- 制品可以被分配给设备,用以表示制品被存储或部署到此设备之上。
- 系统软件可以被分配给设备,用以表示系统软件的安装或部署位置。
- 一个节点可以包含一个或多个设备。
- 表示图符:
- 实例:本案例展示了三种设备,分别为:“前台应用服务器”、“后台应用服务器”和“Web服务器”,并且他们之间通过“局域网”这一网络概念元素进行互联。
2.4.1.3 系统软件(System Software)
- 定义:用于表示一种软件环境,使得各种特定类型的软件组件和对象能以制品的形式部署于其中。系统软件概念元素也是节点的特化,专门用于对各种制品所处的软件环境进行建模。系统软件和设备通常组合在一起来形成一个节点。系统软件所涉及到的主要关系可归纳为:
- 系统软件可被分配给设备。
- 制品可被分配给系统软件。
- 节点可以组合或聚合系统软件。
- 表示图符:
- 实例:在本案例中,“大型机”这一设备之上部署了两个系统软件,他们分别是:“客户交易服务器”和“数据库管理系统”。
2.4.1.4 基础设施接口(Infrastructure Interface)
- 定义:表示用于获取由节点提供的基础设施服务访问点。与前面介绍过的接口概念相仿,基础设施接口也具有双向性,一个用于表示节点通过此基础设施接口对外提供服务,另外一个则用于表示节点需要从外界获取何种基础设施服务。不同的基础设施接口可以提供相同的基础设施服务。基础设施接口所涉及到的主要关系可归纳为:
- 基础设施接口可以通过组合关系而作为节点的一个组成部分。
- 基础设施接口可以被其他节点所使用。
- 基础设施服务可以被分配给基础设施接口,用于表示该服务是通过此接口而被提供给外界环境的。
- 表示图符:
- 实例:在本案例中,名为“数据库管理系统”的系统软件具有“数据访问接口”这一基础设施接口,因而外界对数据的操作都可以通过此接口来实现。
2.4.1.5 网络(Network)
- 定义:用于表示在两个或两个以上设备之间进行通信的媒介,同时它也是不同节点之间各种通信路径的物理实现。网络元素一般具有诸如带宽、延迟之类的属性。网络所涉及到的主要关系可归纳为:
- 网络连接两个或两个以上的设备。
- 网络实现了一个或多个通信路径。
- 网络可以包含其他子网络。
- 表示图符:
- 实例:在本案例中,“大型机”和“终端机”这两台设备之间通过带宽为100Mbits/s的局域网进行互联。
2.4.1.6 通信路径(Communication Path)
- 定义:用于表示多个节点之间的逻辑连接,并且通过这些链接节点才可以进行节点之间的数据交换。通信路径所涉及到的主要关系可归纳为:
- 通信路径连接两个或两个以上的节点。
- 一条通信路径可由一个或多个网络所实现。
- 表示图符:
- 实例:在本案例中,节点“应用服务器”和节点“客户端”之间通过“消息队列”这一通信路径进行数据交互。
2.4.2 行为元素
2.4.2.1 基础设施功能(Infrastructure Function)
- 定义:用于对节点所执行的基础设施行为进行组织的行为元素,他描述了节点的内部功能。基础设施功能所涉及到的主要关系可归纳为:
- 基础设施功能可以实现基础设施服务。
- 基础设施功能可以使用由其他基础设施功能所实现的基础设施服务。
- 基础设施功能可以访问制品。
- 基础设施功能可被分配给节点,用于表示该节点所能够执行的行为。
- 表示图符:
- 实例:在本案例中,“数据库管理系统”节点具有(需要注意是,这里虽然采用嵌套的表述方式,但节点与基础设施功能之间是通过指派关系来联系的)“提供数据访问功能”和“管理数据功能”这两个基础设施功能,并且前者实现了名为“数据访问服务”的基础设施服务,而后者则实现了“数据管理服务”。
2.4.2.2 基础设施服务(Infrastructure Service)
- 定义:用于表示由一个或多个节点通过基础设施接口对外提供的对外界具有意义的功能单元。基础设施服务所涉及到的主要关系可归纳为:
- 基础设施服务可以被应用组件或节点所使用。
- 基础设施服务可以被节点所实现。
- 基础设施服务可以被基础设施功能所实现。
- 基础设施服务可以被分配到基础设施接口之上。
- 基础设施服务可以访问制品。
- 表示图符:
- 实例:在本案例中,“面向消息中间件”系统软件实现了“消息服务”这一基础设施服务。
2.4.3 信息元素
2.4.3.1 制品(Artifact)
- 定义:用于表示在软件开发过程或系统的部署和运行过程中使用和产生的数据的物理表现。制品通常被用来描述诸如源文件、可执行文件、脚本、数据库表、消息、文档、规范说明,以及模型文件这样的软件产品。制品所涉及到的主要关系可归纳为:
- 一个应用组件或系统软件可以被一个或多个制品所实现,即可执行组件类型的制品。
- 一个数据对象可以被一个或多个制品所实现,即数据文件类型的制品。
- 制品可以被分配到节点之上,用于表示该制品被部署到此节点之上。
- 表示图符:
- 实例:在本案例中,“风险管理EJB”这一制品被指派给(部署到)了系统软件“J2EE应用服务器”之上,而这其中“风险管理EJB”代表了一个可部署的代码单元。
2.5 模型元素扩展——动机
动机模型元素扩展是ArchiMate 2.0版本中依照ArchiMate扩展规则而新加入的内容。ArchiMate之前的版本从操作角度对企业的运行情况进行了描述和建模,但这些内容并不能说明采用当前方式进行建模的缘由。缺失了如此重要的一环,我们无法回答建模的合理性,因而更无法促使企业的战略目标与战术实现相协调。通过结合TOGAF标准,我们可以看出:这些缺失的内容实际上就是TOGAF中“预备阶段”、“架构愿景阶段”、“架构变更阶段”,以及充当各阶段运行引擎的“需求管理阶段”所要建立或维护的核心。为了填补这一空白,ArchiMate 2.0引入了新的概念元素、关系和视角。本章将详细描述其新加入的概念元素,而对于新加入的关系和视角将分别在后面的部分中进行描述。ArchiMate 2.0对于动机扩展所引入的新概念元素,以及他们之间的主要关系归纳如下:
由于动机扩展的目标是解释为何建模,以及建模与具体原因之间的关系,因而动机扩展中新加入的概念元素都是用来叙述缘由的描述性概念,他们既不具备结构化的实体,亦不会执行什么样的“行为”,同时在意义上还有着“信息元素”的影子,并且从上面的元模型图示中我们可以看到,动机元素(Motivational Element)并不继承于结构元素(Structure Element),所以不同于业务、应用和技术层面中对概念元素所采用的“结构元素”、“行为元素”和“信息元素”分类归纳方法,在ArchiMate中,动机扩展的概念元素被统一概括为“动机概念元素(Motivational Concepts)”。
2.5.1 动机概念元素
动机概念元素对企业架构建设的缘由进行了描述,并将这些元素与前面所说的企业三层领域建模元素联系了起来。从比较高的抽象层次来看,动机概念元素包括 “干系人(Stakeholder)”和“动机元素(Motivational Element)”这两个概念元素,他们之间的关联关系体现了:建立企业架构的每个动机都应该反映某干系人的意图。如果把抽象层次降低,我们会发现“动机元素”被特化成了六个更为具体的“动机”概念,他们分别是:“驱动力(Driver)”、“评估(Assessment)”、“目标(Goal)”、“原则(Principle)”、“需求(Requirement)”和“约束(Constraint)”。这六个概念元素以及他们之间的关系以一种从抽象到具体的顺序描述了建立企业架构的缘由:
- “驱动力”描述了企业架构建立的根本缘由,他既可以是由于外部环境的变化而引起,也可能是源自企业内部,而这种内部驱动力往往也反映了某个干系人的关注点,因而该元素通常与一个“干系人”元素相关联。
- 要想将“驱动力”做进一步的落实,企业需要对其进行分析和评估,而这正是“评估”概念元素所描述的目标。
- “驱动力”经过评估后,企业可由此分析出企业的优势、弱点、机会和风险,而这些内容可以转化为各个具体的企业战略“目标”。
- 为了将确立后的“目标”付诸实现,企业需要将其细化为若干“原则”和“需求”。这两者均是为了实现“目标”而建,但“原则”具有更加广阔的范围,它是在一定上下文环境之下针对若干具体需求共性的抽象,所以在元模型中我们可以发现:“需求”实现了“目标”,同时也实现了“原则”,而“需求”和“原则”都是为了实现“目标”而生的。
- “需求”不仅仅是对需要做什么所进行的描述,还可能是对不能做什么而进行的界定。对于后一种情况,ArchiMate采用特化了的“需求”概念元素,亦即“约束”概念元素,来进行描述。
动机概念元素并不是一套密闭的元模型,况且ArchiMate建模基本原则也不允许这种领域隔离的情况存在,因而他与前述三个领域有着紧密的关系。在后面的跨领域关联章节中,笔者将会对此进行更加详细的阐述。
2.5.1.1 干系人(Stakeholder)
- 定义:用于代表对于架构产生的结果具有利益关系,或对其进行关注的个人、团队或组织的类别。干系人涉及到的主要关系可归纳为:
- 干系人之间通过聚合关系来表现他们之间的组织结构。
- 干系人与其他动机概念元素之间通过关联关系来表示对其他各种动机概念具有的利益关系或关注点。
- 表示图符:
- 实例:在本案例中,名为“董事会”的干系人包含了三个子干系人,分别是:“CEO”、“CIO”和“CFO”。
2.5.1.2 驱动力(Driver)
- 定义:用于表示引起或驱动组织发生变化的事物。驱动力涉及到的主要关系可归纳为:
- 来源于组织内部的驱动力需要通过关联干系人来表示其具体来源,以及涉及到了谁的利益和关注。
- 驱动力之间可以通过聚合关系来表示其层级结构。
- 驱动力和评估之间通过关联关系来描述评估所对应的驱动力。
- 驱动力和目标之间通过关联关系来描述两者之间的相关性。
- 表示图符:
- 实例:在本案例中,“经济环境变化”是一个外部驱动力,而“股东满意”和“客户满意”则是两个内部驱动力,因而他们有相关干系人与之关联。“客户满意”这一内部驱动力涉及到了干系人“CEO”和“客户”的利益和关注,而“股东满意”这一内部驱动力仅与干系人“CEO”相关。驱动力“股东满意”还包含了两个子驱动力,分别为“股价”和“利润”,而且前者受外部驱动力“经济环境变化”所影响(两者之间通过“影响”关系相连,这是动机扩展新加入的关系,在后面章节将会对其进行详细描述)。
2.5.1.3 评估(Assessment)
- 定义:用于表示对于驱动力进行分析的结果。针对驱动力进行分析而获取的评估将会揭示企业的优势、缺陷、机会和风险,而这些内容将会直接引起现有目标的变化或新目标的设立,并触及到企业架构的变化。评估涉及到的主要关系可归纳为:
- 评估可以与一个或多个驱动力进行关联,而一个驱动力亦可以关联一个或多个评估。
- 评估之间可以通过聚合来表现其层次关系。
- 评估与目标之间通过关联关系来体现他们之间的相关性。
- 表示图符:
- 实例:本案例列举了两个驱动力,分别为“客户满意”和“技术支持”。对于驱动力“客户满意”来说,它具有两个评估结果:“客户流失”和“客户投诉”,而后者还可细分为“缺乏对索赔状况认识”、“索赔提交不便”、“缺乏对产品组合的认识”和“信息不完整或不一致”这四个评估元素;对于“技术支持”驱动力来说,其评估结果为“等待队列漫长”和“长服务时间”。
2.5.1.4 目标(Goal)
- 定义:用于表示干系人所期望达到的最终状态。对于目标的描述通常采用定性的词语,例如“增加”、“改善”等,并且一个目标可以被进一步解构为更详尽的子目标,例如“增加利润”目标可以被细分为“节省开支”和“增加销售”这两个目标。目标涉及到的主要关系可归纳为:
- 目标之间可以通过聚合关系来体现其层次关系。
- 目标与评估之间通过关联关系来体现两者之间的相关性。
- 目标与驱动力之间通过关联关系来体现两者之间的相关性。
- 原则、需求和约束可以用来实现目标。
- 表示图符:
- 实例:在本案例中,驱动力“利润”包含两个方面的驱动力,分别为“销售”和“成本”,而通过对驱动力“成本”的分析,我们得到了两个评估结果:“应用成本过高”和“人员成本过高”。针对两个评估做进一步分析后我们可以得出:“应用成本过高”可以通过实现“降低维护成本”和“降低应用的直接成本”这两个目标来解决,而“人员成本过高”则可以通过实现“降低人员工作量”来解决;“降低人员工作量”这一目标又可以被进一步细分为“减少人工工作”和“减少与客户交互”这两个子目标。
2.5.1.5 需求(Requirement)
- 定义:用于表示系统为了达成目标所必须做的实现。需求涉及到的主要关系可归纳为:
- 一个需求可以实现一个或多个目标,且一个目标可以被一个或多个需求所实现。
- 一个需求可以实现一个或多个原则,且一个原则可以被一个或多个需求所实现。
- 表示图符:
- 实例:在本案例中,为了改善“缺乏对产品组合的认识”这一评估结果,企业制定了“提高产品组合管理”的目标,而这一目标可以通过实现“指派个人助理”和/或“提供在线产品组合服务”这两个需求来达成。在这两个需求中,前者可以通过一个人工服务来实现(通过参与者“助理”提供的名为“个人产品组合服务”的业务服务),而后者则可以通过一个自动化服务来实现(通过应用组件“产品组合管理应用”实现的名为“在线产品组合服务”的应用服务)。
2.5.1.6 约束(Constraint)
- 定义:用于表示针对系统实现方式的限制。约束概念元素是需求概念元素的特化,因而他继承了需求的属性和关系,但约束并不描述系统需要实现什么,而是界定了系统实现所不能触及的领域。
- 表示图符:
- 实例:本案例展示了实现一个“产品组合管理应用”受制于两个约束:其一是“需要采用Java实现应用”,而另外一个是“软件实现项目”的预算被限制于“500k欧元”之内。
2.5.1.7 原则(Principle)
- 定义:用于表示在给定的上下文环境下所有系统的共通性质或实现方式。原则与需求相类似,他们都描述了为了达成目标而必须遵循的规则,但从适用范围来讲,原则比需求具有更广泛的适用性,它所描述的是确定的环境下所有系统必须遵循的通用规则,而需求则是针对特定系统而制定的。原则所涉及到的主要关系可归纳为:
- 一个原则可以实现一个或多个目标,而一个目标可以被一个或多个原则所实现。
- 一个原则可以被一个或多个需求所实现。
- 表示图符:
- 实例:在本案例中,为了实现“减少与客户交互”和“较少人工工作”这两个目标,系统需要遵循“系统必须面向客户”这一原则,而此原则可以通过实现“提供在线产品组合服务”和“提供在线信息服务”这两个需求来达成。
2.6 模型元素扩展——实施和迁移
与动机扩展一样,实施和迁移扩展模型元素也是ArchiMate 2.0中依照ArchiMate扩展规则而新加入的内容。通过对各种项目管理领域中的标准和最佳实践进行抽象和概括,这些新的概念元素以及他们之间的关系能够用来支持TOGAF后期的几个将企业架构付诸实现的阶段(“机会与解决方案阶段”、“迁移规划阶段”和“实施治理阶段”)。不过作为高层次的抽象,这些概念元素并不能涵盖某一具体项目管理方法(例如PMBok, PRINCE2等)中的具体细节,但是在实际应用中建模者可以通过“特化”来进一步丰富这一扩展中的内容,从而达成与实际环境的无缝连接。ArchiMate 2.0对于实施和迁移扩展所引入的新概念元素以及他们之间的主要关系归纳如下:
2.6.1 实施和迁移概念元素
2.6.1.1 工作包(Work Package)
- 定义:用于表示为了在指定时间内完成某一特定目标的一系列行为。由此可见,一个工作包具有明确的起止时间,并应具备清晰的目标,它既可以对各个项目进行建模,也可以用来描述方案、项目或项目组合中的子项目或任务。工作包所涉及到的主要关系可归纳为:
- 一个工作包可以被一个或多个交付物所实现。
- 业务角色可以被指派给工作包。
- 工作包可以被指派到某个位置之上。
- 表示图符:
- 实例:在本案例中,为了将应用组合进行合理化建设,公司启动了“应用组合合理化方案”,并通过工作包概念元素对其进行建模。该方案包含两个前后衔接的项目(均用工作包概念元素进行描述):首先是通过“后台系统集成项目”对除了客户关系管理系统之外的各个后台系统进行集成,然后通过“客户关系管理系统集成项目”来对客户关系管理系统进行整合。
2.6.1.2 交付物(Deliverable)
- 定义:用于表示经过精确定义的工作包的输出产物。工作包执行的最终结果是产生一系列的交付物,这些交付物既可以用来描述报告、服务、软件和硬件产品等有形事物,可以对诸如组织架构变动等无形事物进行建模。交付物所涉及到的主要关系可归纳为:
- 交付物之间通过聚合关系来体现其层次结构。
- 交付物可以被工作包所实现。
- 交付物可以被指派到某个位置之上。
- 交付物可以实现架构或架构的一个部分,因而交付物和各个核心元素(应用组件、业务流程或服务等)之间可以通过实现关系进行关联。并且由于工作包与交付物之间具有实现关系,工作包与核心元素之间也具有着间接的实现关系。
- 表示图符:
- 实例:在本案例中,“集成的后台系统”这一交付物所包含的子交付物体系被解构为下图:
2.6.1.3 稳定阶段(Plateau)
- 定义:用于表示在一个有限的时间区间内架构所处的相对稳定的状态。从前面关于TOGAF的介绍中我们可以知道,在“业务架构”、“信息系统架构”和“技术架构”这三个阶段中,企业可以制定出基线架构以及目标架构,由于这两个架构可能差距很大,且这一从“基线”到“目标”的转变会持续很长一段时间,因而在接下来的“机会与解决方案”阶段中,企业可以制定一系列过渡架构,将原本冗长繁复的变革过程细化为一系列的过渡阶段,并且以此为基础将一个个独立的工作包和项目组织为受管控的项目组合和方案。为了对这些中间过渡状态进行描述,实施和迁移扩展便引入了“稳定阶段”这一概念元素。稳定阶段所涉及到的主要关系可归纳为:
- 稳定阶段可以聚合一系列核心元素,从而体现了稳定阶段对应的是哪些架构元素(应用组件、业务流程或服务等)。
- 表示图符:
- 实例:本案例描述了从基线架构到目标架构的迁移过程,以及在此期间所需经历的几个过渡状态。
2.6.1.4 差距(Gap)
- 定义:用于表示在两个稳定阶段之间进行差距分析的结果。差距可以通过关联关系与稳定阶段相关的各个核心概念元素相联系,用以表示在两个稳定阶段之间是哪些元素形成了“差距”。
- 表示图符:
- 实例:本案例展示了基线架构与目标架构之间在基础设施方面的差距:增加“后 台应用服务器”;删除“车辆保险应用服务器”和“法律援助后台服务器”。
企业架构研究总结(42)——企业架构与建模之ArchiMate详述(中)的更多相关文章
- 企业架构研究总结(43)——企业架构与建模之ArchiMate详述(下)
2.7 关系模型元素 企业架构模型包括了各种概念元素以及他们之间的关系,这其中的概念元素已经在前面几节中进行了阐述,而这些概念元素之间的关系则是本节的叙述重点.虽然ArchiMate中具有种类繁多的概 ...
- 企业架构研究总结(41)——企业架构与建模之ArchiMate的由来和详述(上)
终于完成了关于企业架构框架理论的总结,谢谢各位看官的支持,能挺过之前过于理论化的叙述而坚持到现在着实不易,笔者也自愧没有实践经验可以分享,希望日后有兴趣的看官能够不吝赐教.在本系列后面的也是最后一个大 ...
- 企业架构研究总结(39)——TOGAF架构能力框架之架构委员会和架构合规性
3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要干系人的需求,并且通常还需要对整个架构的审查及维 ...
- 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...
- 企业架构研究总结(36)——TOGAF企业连续体和工具之企业连续体构成及架构划分
又回头看了之前文章的评论,本人也同样感慨这些文章的确像政治课本般的虚无缥缈,所以对费力看完却觉得无从下手的看官致以诚挚的歉意和理解,因为这个问题也同样困扰着笔者本人,而我能做的也只能是纸上谈兵.之前也 ...
- 企业架构研究总结(34)——TOGAF架构内容框架之架构制品(下)
4.2.31 数据生命周期图(Data Lifecycle Diagram) 数据生命周期图是在业务流程的约束之下对业务数据在其整个生命周期(从概念阶段到最终退出)中对其进行管理的核心部分.数据从本质 ...
- 企业架构研究总结(45)——企业架构与建模之使用ArchiMate进行分析(全系列完)
4. 使用ArchiMate进行分析 正如前面所说的那样,一个企业整体效率的提升有时并不是通过某一个领域内的优化就能达到的,而且这种忽视全局的做法往往还会造成不必要的浪费.由此可见,一个能够跨越各个领 ...
- 企业架构研究总结(44)——企业架构与建模之Archimate视图和视角
3. ArchiMate的视角与视图 创建.维护一个企业架构是一件非常复杂繁琐的事情,因为这项工作需要面对许多背景.利益各异的干系人,对他们所关注的问题进行解答,并能够在他们之间形成无障碍的沟通流.为 ...
- 企业架构研究总结(40)——TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架
5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施行.通过对合同的管理施行一个治理方法,如下几点将会得到保障: ...
随机推荐
- Android4.4 Framework分析——startService创建过程
我们经常使用context.startService()要启动service.下面就来分析这service启动过程,下图是service启动序列图: watermark/2/text/aHR0cDov ...
- 【转】细说Cookie
阅读目录 开始 Cookie 概述 Cookie的写.读过程 使用Cookie保存复杂对象 Js中读写Cookie Cookie在Session中的应用 Cookie在身份验证中的应用 Cookie的 ...
- java:高速排序算法与冒泡排序算法
Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /** * * @Description: * @author:cuiyaon ...
- HDU 1102 Constructing Roads, Prim+优先队列
题目链接:HDU 1102 Constructing Roads Constructing Roads Problem Description There are N villages, which ...
- CSharp设计模式读书笔记(24):访问者模式(学习难度:★★★★☆,使用频率:★☆☆☆☆)
模式角色与结构: 示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- 对[yield]的浅究到发现[async][await]
原文:对[yield]的浅究到发现[async][await] 上篇对[foreach]的浅究到发现[yield]写完后,觉得对[yield]还没有理解清楚,想起曾经看过一位大牛的帖子讲的很深刻(链接 ...
- Cassandra C++/NodeJs开发环境
工作的需要,开始更多地倾向于去中心化的结构,目前看来Cassandra算是去中心化DB中性能/管理最热门的选择,崇尚其P2P的理念. 自身原因对JAVA不擅长(周围写C的好少),还是更热衷于C++/J ...
- vim的复制粘贴小结
vim帮助文档里与粘贴板有关的内容如下: vim有12个粘贴板,分别是0.1.2.….9.a.“.+:用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到“(双引号)粘贴板里,同样用 ...
- Oracle执行计划——Oracle 如何启用执行计划
AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计.SQL*Plus AUTOTRACE可以用来替代SQL Trace使用,AUTOTR ...
- rpt水晶报表制作过程
原文:rpt水晶报表制作过程 最近公司安排一个以前的项目,里面需要用到水晶报表,由于原来做这个项目的同事离职,所在公司的同事报表做成了rdlc类型的,而这类报表在加载的时候很难动态的从数据库加载数据, ...