![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UML OOAD
文章平均质量分 86
tof21
成功的人并不是一定比别人更有才智和更幸运。他们只是在不断的尝试、不断的失败,直到成功
展开
-
第8章分析之分析类图—知识篇Part11-类之间的关系
建模一张类图,需要很多个思考周期。如果这样的类图描述的是不同领域的类之间的协作,那还可以接受,如果类图上都是核心域的概念,那就要警惕了,可能建模人员根本没有去寻找泛化和关联关系。应该在某个用例的某张序列图(或通信图)上描述,在什么场景,进行到哪个步骤时,A需要调用B的什么操作,在什么场景,进行到哪个步骤时,A需要调用C的什么操作,如图8-95。我们阅读用例规约或其他素材,一边思考一边建模,不管识别出类、属性还是关系,画上去就是,并不需要假装看不见类的关系,非得先把类和属性都识别完了,再来识别类之间的关系。转载 2024-02-22 19:30:00 · 93 阅读 · 0 评论 -
该怎样设计API?
API定义哲学:要站在用户的角度定义接口,哪怕背后对应技术实现方式难度更大。我们应该把这些dirty laundry隐藏在API背后。而不是选择一条自己更容易实现的技术方式,却把dirty laundry都抛给了你的用户再次强调API定义哲学:当我们给用户提供API时,不应该由技术实现的难易程度来决定,而是站在用户的角度,消除掉一切不必要的复杂度,让用户可以最快速,最直接的达到他的目的至于实现时的细节和复杂度,都应该统统被隐藏在API的背后。首先站在客户的角度思考,怎样才是客户真正的需要。此时完转载 2020-09-09 17:23:39 · 109 阅读 · 0 评论 -
领域驱动设计part3
(点击蓝字可查看Part2篇)接下来是仓储,负责怎么去存取领域对象,以前有人经常问我,领域对象的结构和数据表的结构看起来很像,我为什么还要去建立领域模型,直接建立E-R图不就好了?究竟有什么差别?在某一些情况之下,确实很像,但多数时候,领域模型是对象在内存中的结构关系,而且不仅是数据结构,更是行为结构关系,为了优化行为的高内聚低耦合,这种内存结构可能会被拆得很细,还转载 2017-12-22 22:13:51 · 258 阅读 · 0 评论 -
对象的角色
对象的角色若要获得良好的对象设计,就必须对职责进行合理的分配。每个对象承担的职责不能太多,也不能太少,恰如其分即可。职责分配如乐谱中对音符的组织,高明的音乐家总是能让不同的音符放在合理的位置,奏成悦耳的心曲,表达音乐家的内心感情。然而,即使设计师明确职责分配的重要性,在面临纷乱复杂的需求时,常常被乱花迷了眼,或者无法识别正确的职责,又或者顾此失彼,将职责放错了位置,变成了对职责混乱的涂转载 2017-12-15 16:50:35 · 391 阅读 · 0 评论 -
DDD学习视频
http://www.itdks.com/eventlist/detail/1787原创 2018-01-07 14:41:04 · 2834 阅读 · 0 评论 -
架构师如何应对复杂业务场景?领域建模的实战案例解析
架构师如何应对复杂业务场景?领域建模的实战案例解析原创 2018-03-27 张建飞 阿里技术阿里妹导读:你还在用面向对象的语言写面向过程的代码吗?你是否正在被复杂的业务逻辑折磨?是否有时觉得应用开发没意思、没挑战、技术含量低?其实,应用开发一点都不简单,也不无聊,业务的变化比底层基础实施的变化要多得多,封装这些变化需要很好的业务理解力,抽象能力和建模能力。今天我们邀请阿里高级技术专家张建飞,一起...转载 2018-04-10 17:16:33 · 322 阅读 · 0 评论 -
TDD编码实战讲义
斑斓冷眼观斑斓,静坐写软件 首页 关于 标签 分类 归档TDD编码实战讲义 发表于 2018-04-01 | 分类于 Coding | 0 | 阅读次数: 166说明:本讲义是我在ThoughtWorks作为咨询师时,为客户开展TDD Code Kata而编写。案例为Guess Number,案例需求来自当时的同事王瑜珩。当时,我们共同在ThoughtWorks的Zynx交付团队,为...转载 2018-04-10 17:17:09 · 1384 阅读 · 0 评论 -
编程的智慧
编程的智慧 正义的花生 关注2015.11.22 15:28* 字数 13138 阅读 104501评论 0喜欢 2989赞赏 30编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋。然而由于软件行业喜欢标新立异,喜欢把简单的事情搞复杂,我希望这些文字能给迷惑中的人们指出一些正确的方向,让他...转载 2018-03-29 14:25:11 · 188 阅读 · 0 评论 -
Thinking in UML 学习摘要
面向对象提供一种处理复杂性问题的方式,我们能够通过提升抽象层级赖构建更大的,更复杂的系统。在特定的场景下,孤立对象之间进行某些信息交互才表现出我们所看到的一个过程。将世界视为过程的这个方法本身蕴含一个前提假设,即这个过程是稳定的,这样我们才有分析的基础,所有的工作成果都依赖对这个过程的步步分析。抽象层次的好处是不论在哪一个层次上,我们都只需要面对有限的复杂度和有限的对象结构,从而可以专...转载 2019-06-01 00:02:01 · 342 阅读 · 0 评论 -
Clean Architecture 2
在一般情况下,任何层次的软件设计如果依赖于不需要的东西,都会是有害的。从源代码层次来说,这样的依赖会导致不必要的重新编译和重新部署,对更高层次的软件架构设计来说,问题也是类似的。任何层次的软件设计如果它依赖了它并不需要的东西,就会带来意料之外的麻烦。依赖反转原则主要想告诉我们的是,如果想要设计一个灵活的系统,在源代码层次的依赖关系中就应该多引用抽象类型,而非具体实现。复用/发布等同原则...转载 2019-06-07 13:54:22 · 166 阅读 · 0 评论 -
领域驱动设计part2
做完顶层的分析,其实是业务架构分析,接下来就是领域设计,领域设计是最有艺术的部分,也就是提炼具体的领域概念和相关关系。这里有些概念需要先认识一下。先看“实体”,大家以前做过数据库的建模,建立E-R图,每个表通过ORM工具映射为实体类,也就是PO,领域模型中的实体很类似这个PO,不过PO只有数据没有行为,而领域模型的实体是有行为的,所以有所区别,再就是“值对象”,实体转载 2017-12-22 22:10:16 · 269 阅读 · 0 评论 -
领域驱动设计part1
以下为现场演讲内容王立:先做一个自我介绍,我是来自姚明众创,我目前是姚明众创的技术负责人,曾经在多家上市公司担任架构师和技术经理,包括阿里巴巴,今天很高兴能跟大家来分享领域驱动设计。领域驱动设计大家应该都听说过,你们在实际项目当中有用过的吗?能不能举个手?没有。确实说领域驱动开发是很有难度的,领域驱动开发我接触的时间比较早,10年前就接触。今天我把我这段时间从事领域驱动开发的心得跟大家做一转载 2017-12-22 22:08:49 · 299 阅读 · 0 评论 -
架构师心目中的关键词
前些日子,在闲聊中,一位媒体朋友问我:软件架构师(Software Architect)究竟与普通程序员有什么区别,软件架构师平时都在想些什么?这一问,倒提醒了我。想来自己从事软件架构设计这个行当也有十多年了,现在确实有必要以文字的形式,把自己这些年来对于软件架构设计这项充满魅力、极其有趣的工作的所思所想、经验所得,好好整理一下。 软件架构设计是一门建立在科学、工程基础之上的艺术。根据我本转载 2016-11-10 11:16:37 · 489 阅读 · 0 评论 -
建模和UML
1.利润=需求-设计在软件开发中,需求工作致力于解决 产品好卖的问题设计工作致力于解决降低成本的问题。二者不能相互取代。2.核心工作流业务建模:描述组织内部各系统如何协作,使得组织可以为其他组织提供有价值的服务。需求聚集于待开发系统的边界,详细描述系统要卖得出去必须具有的表现功能和性能。从卖的角度思考那些是涉众在意的,不能改变的契约,那些不是分析原创 2012-11-19 23:46:04 · 437 阅读 · 0 评论 -
愿景
第2章 愿景1.愿景回答这样一个问题:在老大看来,引进这个系统的目的是什么?2.老大就是平时我们所说的客户,是最有地位的涉众,权衡系统的各种需求,他的意见最重要。3.所以,我们需要具体到老大――客户中针对此系统最有发言权的人4.学会从老大(客户)的角度看问题,对开发人员来说不简单。开发人员很多时候习惯于从自己的视角看问题,而不是老大的视角5.把产品当项目--定位具体的组原创 2012-11-22 22:47:25 · 961 阅读 · 0 评论 -
业务建模
第3章 业务建模1.期望和承诺的平衡2,业务用例表达组织的本质价值3.最后需要说明的是,题目的第一句是“以医院为研究对象”。在讨论“有哪些用例”的时候,必须说清楚研究对象,否则讨论是没有意义的(同理,不说清楚执行者是谁,讨论用例也是没有意义的)。4.业务用例刷新了业务流程的概念。我们把业务流程看作是业务用例的实现,将其组织在业务用例的下面。组织内部之所以有业务流程原创 2012-11-23 23:31:43 · 728 阅读 · 0 评论 -
核心工作流
核心工作流要迈向“低成本制造好卖的各款产品”的境界,并非喊喊口号就能达到,需要静下心来,学习和实践以下各个核心工作流中的技能:1. 业务建模─描述组织内部各系统(人肉系统、机械系统、电脑系统......)如何协作,使得组织可以为其他组织提供有价值的服务。新系统只不过是组织为了对外提供更好的服务,对自己的内部重新设计而购买的一个零件。组织引进一个软件系统,和招聘一名新员工没有原创 2012-11-23 23:49:40 · 984 阅读 · 1 评论 -
UML建模的认识
1.7 但…仅限于开发团队内部但是,这里要注意一点:这种沟通仅限于开发团队内部,UML 模型不是用来和涉众沟通的!经常有人问:客户看不懂UML 怎么办?这个问题本身就有问题,提问者潜意识里可能认为“客户”是一个人,其实“客户”是一大堆“涉众”,他们所在领域不同,学历职位有高有低,年龄有大有小,健康有好有坏,关注的利益更是各自不同,怎么能寄望用一个模型和所有的涉众沟通?拿原创 2012-11-24 00:21:55 · 1430 阅读 · 0 评论 -
业务建模 之 业务序列图
第4章 业务建模 之 业务序列图4.1描述业务流程的手段活动图只关注人,序列图把人当作系统.活动图表示动作,序列图强迫思考动作背后的目的。4.2业务序列图要点 4.2.1 消息代表责任分配而不是数据流动。A指向B的消息,代表 A请求B做某事,或者A调用B做某事的服务。4.2.2聚焦于系统之间的协作业务建模研究的焦点是组织,所以业务序列图上对象的最小单位是人肉货非原创 2012-11-26 00:18:44 · 1332 阅读 · 0 评论 -
大象 ThinkingUML
1.现实世界映射到面向对象世界 业务建模2.面向对象表示现实世界 概念建模(分析建模)3.面向对象到现实世界的验证 设计建模 UML要结合软件过程,在软件工程中,会有工件的产生,这是就会考虑到UML的用处。原创 2013-05-25 01:06:03 · 724 阅读 · 0 评论 -
对象分析方法
对象分析方法的说明:1.一切都是对象在面向对象的眼里,一切有名字的东西都是对象,都应当使用对象的观点来看待它,分析他。哪怕这个东西的名字叫某某业务流程,他也应当看作一个对象,而不是一个过程。这意味着,无论什么时候都应当采用接下里讲述的一些观点和方法来看待和分析事物。 2.对象都是独立的独立性是面向对象的一大特点,承认对象的同时,就应该接纳这一观点。对象和对象之间是天然独立的原创 2013-05-28 21:19:24 · 1601 阅读 · 0 评论 -
UML学习推荐网站
http://www.umlgreatchina.org/_templates/main.aspx?sname=home 首席专家张恂老师原创 2016-11-07 22:11:55 · 1020 阅读 · 0 评论 -
GRASP
通用的对象职责分配原则创建者 Creator问题:谁创建A专家者给对象分配职责的基本原则:分配给拥有这些信息的对象。高内聚低耦合多态纯虚构间接性防止变异原创 2012-12-01 14:59:02 · 401 阅读 · 0 评论