随笔分类 -  Architecture Design

摘要:[Architecture] 系统架构正交分解法 前言 随着企业成长,支持企业业务的软件,也会越来越庞大与复杂。当系统复杂到一定程度,开发人员会发现很多系统架构的设计细节,很难有条理、有组织的用一张大蓝图去做分析设计。先前在InfoQ上看到一篇文章:「亿级用户下的新浪微博平台架构 - 卫向军」,在这 阅读全文
posted @ 2016-05-07 01:25 Clark159 阅读(1417) 评论(0) 推荐(3) 编辑
摘要:[Architecture Design] 三层式体系结构设计 阅读全文
posted @ 2016-03-14 07:59 Clark159 阅读(446) 评论(0) 推荐(0) 编辑
摘要:[Architecture Design] 面对移动化APP挑战的架构设计 阅读全文
posted @ 2016-01-08 00:00 Clark159 阅读(221) 评论(0) 推荐(0) 编辑
摘要:[Architecture Design] 累进式Domain Layer前言本篇的内容大幅度的简化了分析设计、面向对象等等相关知识,用以传达累进式Domain Layer的核心概念。实际开发软件项目时,建议还是采用DDD、TDD等等系统化方式来分析设计系统内容。问题情景软件项目套用三层式体系结构,... 阅读全文
posted @ 2015-05-17 15:09 Clark159 阅读(333) 评论(0) 推荐(0) 编辑
摘要:[Architecture Design] 跨平台架构设计跨越平台Productivity Future Vision 2011在开始谈跨平台架构设计之前,请大家先看看上面这段影片,影片内容是微软在2011年所描绘的未来生活蓝图。在观看的过程中,请大家以「软件开发人员」的角度来思考,想想软件开发人员... 阅读全文
posted @ 2015-02-06 21:53 Clark159 阅读(1042) 评论(0) 推荐(0) 编辑
摘要:[Architecture Design] 3-Layer基础架构三层式体系结构只要是软件从业人员,不管是不是本科系出身的,相信对于三层式体系结构一定都不陌生。在三层式体系结构中,将软件开发所产出的程序代码,依照不同用途归类为:系统表示层、领域逻辑层、数据存取层。其中:系统表示层 (Presenta... 阅读全文
posted @ 2014-09-09 01:04 Clark159 阅读(820) 评论(7) 推荐(0) 编辑
摘要:CLK.Prototype.Architecture最近找数据,看到了博客园在不久之前,办了一个架构分享的活动:.Net项目分层与文件夹结构大全。看完之后觉得获益良多,接着也忍不住手痒,开始整理属于自己的分层架构:「CLK Architecture」。CLK Architecture的设计,是以DDD(Domain-driven design)概念精神做为核心,并且选用微软.NET相关技术来实作。期望提供开发人员,在开发.NET相关应用程序时,有个基础的分层架构、命名惯例可以参考,省去每个项目都要重新思考设计的脑力消耗。另外CLK Architecture也做为开发技术的索引地图,在每个不同的 阅读全文
posted @ 2013-08-17 15:31 Clark159 阅读(696) 评论(0) 推荐(0) 编辑
摘要:套用IoC模式 在设计系统对象的时候,可以套用IoC模式来切割相依性。如下列范例程序代码,就是在Master、Slave两个对象之间套用IoC的小小范例,在这个范例中NormalSlave会透过MessageNotified事件,来将执行讯息通知给Master。 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{ class Program { ... 阅读全文
posted @ 2013-06-09 13:14 Clark159 阅读(217) 评论(0) 推荐(0) 编辑
摘要:做软件架构设计的时候,三层式体系结构是一个很常套用的分层模式。三层式体系结构中会将系统切割成为:PL(Presentation Layer)、BLL(Business Logic Layer)、DAL(Data Access Layer)。在这其中BLL是整个系统的系统核心,而DAL则是数据对象进出系统的系统边界。本篇文章讨论实作系统时,系统核心与系统边界之间的架构如何设计,才能提高内聚、减少耦合。我们先假设系统设计时,将BLL、DAL各自独立为一个DLL。而BLL里有Control对象操作Object对象、ObjectReposository对象用来提供功能给PL使用、DAL里则有Objec 阅读全文
posted @ 2012-07-30 23:32 Clark159 阅读(2405) 评论(4) 推荐(3) 编辑
摘要:接续...[Architecture Design] DDD经验分享 (中)系统设计阶段 (SD)「系统设计阶段」主要的工作是对设计完成的系统架构,做每个功能模块的对象设计。一般会采UML的「类别图」、「循序图」等等工具,来完成系统设计的工作。最终将设计完毕的解决方案,整理成一份「系统设计规格书」。如果说需求分析阶段是建立骨架,那么系统设计阶段就是填补血肉的工作。从系统分析阶段要跨到系统设计阶段,说真的也是一种无中生有的创造过程。只不过不同的是,系统分析阶段是整个系统架构无中生有,系统设计阶段是针对模块对象要无中生有。这时候领域模型就发挥了指引的功能。透过分析设计领域模型的方式,可以有限度的将 阅读全文
posted @ 2012-03-14 08:07 Clark159 阅读(1570) 评论(0) 推荐(2) 编辑
摘要:接续...[Architecture Design] DDD经验分享 (上)系统分析阶段 (SA)「系统分析阶段」主要的工作是对客户的需求内容,提出解决方案并且分析系统架构。一般会采UML的配置图、套件图等等工具,来完成系统分析的工作。最终将设计完毕的解决方案,整理成一份「系统需求规格书」。系统分析阶段要做的事很多很杂,甚至可以说是一种无中生有的创造过程。 经验不足的开发人员进入这个阶段,通常会不知所措。这时可以将系统分析阶段的工作,切割为不同角度来做分析设计,这也就是所谓的「视图方法」。透过视图方法去分析设计整个系统架构,决定系统架构所需要的软件分层、功能模块....等等。同时也以分析设计需 阅读全文
posted @ 2012-03-13 22:34 Clark159 阅读(1392) 评论(0) 推荐(2) 编辑
摘要:前言身为一个开发人员,应该会有听过「软件开发流程」、「领域驱动开发」等等,这些开发技术名词。但是...开发人员心底话,包含我自己都觉得:数据文件都写的跟天书一样,模模糊糊的、项目压力下赶工都来不及了,谁有空搞这些的东西。今天要来扭转这种印象,让开发人员搞懂「软件开发流程」、「领域驱动开发」这些开发技术。并且以自身的开发经验,说明这些开发技术该在哪用、怎么用。让项目的开发不再是无中生有,而是一个循序渐进的过程慢慢「长」出来的。*在文章开始之前,一定要先提一个最重要的重点:开发技术没有最好的只有最适合的。硬搬教条式的项目到自己团队中,让成员做的很累,这样一定不会长久。例如用来当作本篇文章议题内容的 阅读全文
posted @ 2012-03-13 11:49 Clark159 阅读(1770) 评论(1) 推荐(2) 编辑
摘要:前言 :上篇发表之后 朋友们的反应,大多是说太抽象了,好像啥都没讲。 其实观念的东西真的就是抽象,本质真的就是简单两字而已。呵呵~说的有点多了, 这第二篇主要是补充一个实作的例子, 看会不会比较那么虚无飘渺噜。架构 :蓝色框框代表一个独立的DLL 特别标明出来是要传达, 数据存取层的接口定义是跟逻辑层绑在一起的 数据存取层的实作成是是相依于逻辑层内的数据存取层接口常常工程师在设计软件的时候 会写成 : 逻辑层==>数据存取层 建议的作法是 : 逻辑层(数据存取接口<=)=数据存取层 把相依的方向改变,这是面向对象设计中一个很重要的观念。范例 :namespace Clark.Exa 阅读全文
posted @ 2011-10-10 08:52 Clark159 阅读(231) 评论(0) 推荐(0) 编辑
摘要:前言 :一般说到应用程序架构 大家最容易联想的应该就是「三层式体系结构」 但笔者所要讨论的应用程序架构 抽象逻辑上是架构在三层式体系结构的上一层 针对软件设计所规划的应用程序架构 相关数据可以参考 : 微软文件「.NET 的应用程序架构:设计应用程序和服务」 本篇将焦点放在「数据存取层」简介 :所有的程序都离不开数据存取。 「数据存取层」所定义的就是将数据的存取,与应用程序的逻辑分开。动机 :开发应用程序有时会遇到变更数据库的需求, 例如将数据库从SQL换到Oracle。遇到这种问题 比较常碰到的解法是,把与SQL数据库沟通的程序代码跟SQL语句,改成Oracle。 甚至高深一点的会将SQL语 阅读全文
posted @ 2011-10-10 08:50 Clark159 阅读(270) 评论(0) 推荐(0) 编辑