业务能力_业务能力一级 - CSDN
精华内容
参与话题
  • 同样是毕业于名牌大学,同样是本科文凭,同样是...“90后”应届毕业生是职场新人的最大群体,对他们而言,学校培养的能力与公司所要求的能力并不完全一致。“90后”毕业生进入职场,最重要的是要拥有一个良好的职业心态

    同样是毕业于名牌大学,同样是本科文凭,同样是**,为什么有的人进入一家公司很快就能打开局面,有的人需要很长一段时间才能适应工作环境?两者之间的差别,很大程度体现在“软实力”。

      软实力1:“90后”要有“自动自发”的职业心态

    “90后”应届毕业生是职场新人的最大群体,对他们而言,学校培养的能力与公司所要求的能力并不完全一致。“90后”毕业生进入职场,最重要的是要拥有一个良好的职业心态,“良好”的体现之一是“自动自发”。

    何谓“自动自发”?许多人对岗位的认识和对自己的认识并不清晰,从而没有工作动力,频频跳槽。其实,新员工如果换一种职业心态,认识到员工与企业是相互依存和对等的关系,员工不仅为企业打工,也是为自己打工,只要转变职业心态,工作动力才会源源不断,并且是“自动自发”的状态。

    这种“自动自发”的状态,有时也被称为“原动力”。这是驱使职场人走向成功的关键因素。原动力与就职的企业并没有多大关系,再好的单位也有跳槽,如果你的原动力是建立在薪水上,那将会永不满足,除了薪水,还有什么让你开心的事,那些可以带来满足感和认同感的事,或许才是真正的原动力。

      软实力2:口才是新人的一道“入门关”

    口才是行政和销售类职场新人的一项基本功,在广州一家通讯企业工作的王小姐有过这样一份经历:毕业找工作时,她因口头表达比较拘谨,与南航失之交臂,后来到一家通讯企业做行政工作,又因沟通能力,影响了自己的升职。王小姐认识到口头表达对文职女性的重要,工作之余报读了相关培训课程。

    由于口才等软实力的提升,从而获得升职加薪的,黄先生就是一例。黄先生目前在广州某保险公司做销售总监,三年前,他和所有做保险的人一样是一位新人,面临着巨大的销售压力,如果在三个月的考核期内拿不到一份订单,很有可能就会被淘汰出局。

    第一个月,黄先生在前线冲锋陷阵,但没有业绩,应该说颗粒无收。第二个月,情况依然如此,工作慢慢进入低谷,和所有销售人员一样,放弃的想法开始萌生。第三个月,黄先生开始反思自己,并在人际关系与口才技巧方面不断改进,最后情况有了改观,黄先生争取了两个小订单。

    在大浪淘沙的保险行业坚持三年,并成为一名销售高管,黄先生的成功来自于口才这项“软实力”的提升。广州卡耐基培训学校校长、资深职业教练许统文认为,软实力是让职场新人走进别人内心的能力,它包括与人沟通的能力,影响他人的能力,以及积极的职业心态和各种情商等,这些软实力是核心竞争力的重要组成部分。

    软实力3:“沉下心”是白领一种可贵的软素质

    如果说应届毕业生是比较纯粹的职场新人,那么拥有工作经验的职场白领,跳槽到新东家,应该算比较特殊的职场新人。再有经验的老手,刚去一家公司也是一个新人,对于他们,有哪些软实力或软素质需要格外注意呢?

    “沉下心来做事的白领更吃香,这种‘沉下心’的素质就是一种难能可贵的软素质。”许统文认为,白领首先要有一个理念,不要轻易跳槽,要把工作变成职业,最好变成事业,打造自己的核心竞争力,用心去呈现自己的职业价值。如果白领已经跳槽到一个新岗位,职业心态也要亲善,学会欣赏别人、关注别人,而不是指责抱怨以前的老板,懂得你要什么而不是你不要什么。

    软实力4:特定技能为部分职场新人“加分”

    软实力包括一些特殊能力,比如抗压能力,在企业招聘中就被屡屡提到。这类软实力在面试中并不容易看到,多数是招聘方的良好心愿,许多人有无抗压能力只能在工作三个月或半年之后才能看出来。所以,职场新人进入公司之后,一定要有吃苦耐劳的思想准备,体现出应有的抗压能力与职业素养。

    某些特定技能在招聘中也会出现,比如个别医院、国企等在招人时要求应聘者具有篮球特长,拥有这种“软技能”的职场新人无疑会受欢迎。但唱歌、喝酒、抽烟等“灰色技能”也是常常被人提及的“软技能”。对于这些有损于个人健康的“软技能”,

    本文由PM圈子—项目经理牛人聚集地转载

    展开全文
  • 上下文 您正在开发一个庞大而复杂的应用程序,并希望使用微服务架构。微服务架构将应用程序构造为一组松散耦合的服务。微服务架构的目标是通过实现持续的交付/部署来加速软件开发。 ...1.简化测

    http://microservices.io/patterns/decomposition/decompose-by-business-capability.html

    上下文

    您正在开发一个庞大而复杂的应用程序,并希望使用微服务架构。微服务架构将应用程序构造为一组松散耦合的服务。微服务架构的目标是通过实现持续的交付/部署来加速软件开发。


    微服务架构有两种方式:

    1.简化测试并使组件能够独立部署

    2.将工程组织结构化为小型(6-10名成员)的团队,自主团队,每个团队负责一个或多个服务

    这些好处不能自动保证。相反,它们只能通过将应用程序细致的功能分解成服务来实现。

    服务必须足够小,由小团队开发,并且易于测试。面向对象设计(OOD)中一条有用指导是单一责任原则(SRP)。SRP定义了一个类的责任(responsibility)作为可变的理由,并声明一个类只应该有一个理由来改变。将SRP应用于服务设计以及设计高内聚的服务、并实现一个小的强相关的功能集是有意义的。


    应用程序以某种方式进行分解,以便大多数新的和变更的需求仅影响单个服务。因为影响多个服务的变化需要跨多个团队进行协调,这会减慢开发速度。来自OOD的另一个有用的原则是通用关闭原则(CCP),其中指出,由于相同原因而改变的类应该在同一个包中。也许,例如,两个类实现相同业务规则的不同方面。目标是当业务规则改变时,开发人员只需要更改一小部分代码(理想情况下只需一个)。在设计服务时,这种思维是有意义的,因为它将有助于确保每个更改只会影响一项服务。


    问题

    如何将应用程序分解为服务?


    目标

    • 架构必须稳定
    • 服务必须高内聚。一个服务应该实现一个小的强相关功能的集合。
    • 服务必须符合通用关闭原则 - 一起变化的事项应该打包在一起,以确保每个更改仅影响一个服务
    • 服务必须松散耦合 - 每个服务作为封装其实现的API。可以在不影响客户端的情况下更改实现
    • 服务应该是可测试的
    • 每个服务都足够小,由“两个比萨”团队开发,即一个6-10人的团队
    • 拥有一个或多个服务的每个团队必须是自主的。一个团队必须能够通过与其他团队的最小协作来开发和部署他们的服务。


    方案

    定义与业务能力相对应的服务。业务能力是业务架构建模的一个概念。这是企业为了产生价值而做的事情。业务能力通常对应于业务对象,例如。

    订单管理负责订单

    客户管理负责客户

    业务能力通常被组织成一个多层次的结构。例如,一个企业应用程序可能具有顶级类别如产品/服务开发、产品/服务交付,需求生成等。


    示例

    网上商店的业务功能包括:


    产品目录管理
    库存管理
    订单管理
    交货管理
    ...

    相应的微服务架构将具有与这些能力中的每一个对应的服务。


    结果上下文

    这种模式具有以下好处:

    •稳定的架构,因为业务能力相对稳定

    •开发团队是跨职能,自主的、围绕提供业务价值而不是技术特性进行组织的

    •服务高内聚和松散耦合

    问题

    有以下问题需要解决:

    •如何识别业务能力?识别业务能力以及服务需要了解业务。通过分析组织的目的,结构,业务流程和专业领域来确定组织的业务能力。边界上下文最好使用迭代过程来识别。识别业务能力的良好起点是:

    组织结构 - 组织内的不同组织可能对应于业务能力或业务能力组。

    高级域模型 - 业务能力通常对应于域对象


    展开全文
  • 一、业务能力 对于业务能力的部分,无论是主动描述,还是被动回答,包括如下几点: 我做过什么业务 负责的业务有什么业绩 使用了什么技术方案 突破了什么技术难点 遇到了什么问题 最大的收获是什么 对于以上,...

    一、业务能力

    1. 对于业务能力的部分,无论是主动描述,还是被动回答,包括如下几点:
    • 我做过什么业务
    • 负责的业务有什么业绩
    • 使用了什么技术方案
    • 突破了什么技术难点
    • 遇到了什么问题
    • 最大的收获是什么
    1. 对于以上,进行举例,如下所示:
    • 我做过什么业务,独立负责 360数据彩票走势图的开发
    • 负责的业务有什么业绩,历时3周完成所有彩种开发,用户量上涨 15%
    • 使用了什么技术方案,区别常规 canvas方案,使用 vml + svg 方案
    • 突破了什么技术难点,解决了走势图高级绘图板的开发
    • 遇到了什么问题,橡皮擦的问题、动态连线计算等
    • 最大的收获是什么,对业务的理解更加深入,对技术图表更有把控

    二、团队协作能力

    1. 对于团队协作能力,也需要主动描述,比如如下所示:
    • 对彩票足球的奖金算法有深入研究,业内第一
    • H5、客户端讲解算法并协助完成开发
    • JavaPM 同学在一天的时间内快速支持足球竞猜活动
    • leader 独立负责彩票 PC
    1. 对于事务推动能力,也需要主动描述,比如如下所示:
    • 对历史算法更新换代
    • 推动专题的 CMS 架构
    • 主导客服系统的建设
    • 完成多项专利的申请
    1. 对于带人能力,也需要主动描述,比如如下所示:
    • 带一个社招完成数字彩的开发和描述
    • 带一个实习生完成专题活动的开发
    • 代码规范、Review
    1. 对于其他方面的能力,比如组织能力、学习能力和行业经验等等。

    三、职业竞争力

    1. 对于职业竞争力,可以分为,如下所示:
    • 业务能力,可以做到行业第一
    • 思考能力,对同一件事可以从不同的角度去思考,找到最优解
    • 学习能力,不断学习新的业务和技术,沉淀、总结
    • 无上限的付出,对于无法解决的问题可以熬夜、加班

    四、职业规划

    1. 对应职业规划,可以分为,如下所示:
    • 目标是什么,在业务上成为专家,在技术上成为行业大牛
    • 近阶段的目标,不断的学习积累各方面的经验,以学习为主
    • 长期目标,做几件很有价值的事情,如开源作品、技术框架等等
    • 方式方法,先完成业务上的主要问题,做到极致,然后逐步向目标靠拢
    展开全文
  • 如何定义一个微服务架构呢?跟所有的软件开发过程一样,一开始我们需要拿到领域专家或者现有应用的需求文档。跟所有的软件开发一样,定义架构也是一项艺术而非技术。本文我们将介绍一种定义应用程序架构的三步式流程...

    如何定义一个微服务架构呢?跟所有的软件开发过程一样,一开始我们需要拿到领域专家或者现有应用的需求文档。跟所有的软件开发一样,定义架构也是一项艺术而非技术。本文我们将介绍一种定义应用程序架构的三步式流程,如图1所示。世界上并没有一个机械化的流程可以遵循,然后指望这个流程输出一个合理的架构。我们只能介绍一个大概的方法,现实世界中,这是一个不断迭代和持续创新的过程。 

    640?wx_fmt=jpeg

    图1 用于定义应用程序的微服务架构的三步式流程

     

    应用程序是用来处理客户端请求的,因此定义其架构的第一步是将应用程序的需求提炼为各种关键请求。但是,不是根据特定的进程间通信技术(如REST或消息)来描述这些请求,而是使用更抽象的系统操作这个概念。系统操作(systemoperation)是应用程序必须处理的请求的一种抽象描述。它既可以是更新数据的命令,也可以是检索数据的查询。每个命令的行为都是根据抽象领域模型定义的,抽象领域模型也是从需求中派生出来的。系统操作是描述服务之间协作方式的架构场景。

     

    该流程的第二步是确定如何分解服务。有几种策略可供选择。一种源于业务架构学派的策略是定义与业务能力相对应的服务。另一种策略是围绕领域驱动设计的子域来分解和设计服务。但这些策略的最终结果都是围绕业务概念而非技术概念分解和设计的服务。

     

    定义应用程序架构的第三步是确定每个服务的API。为此,你将第一步中标识的每个系统操作分配给服务。服务可以完全独立地实现操作。或者,它可能需要与其他服务协作。在这种情况下,你可以确定服务的协作方式,这通常需要服务来支持其他操作。你还需要确定选用第3章中描述的哪种进程间通信机制来实现每个服务的API。

     

    服务的分解有几个障碍需要克服。首先是网络延迟。你可能会发现,由于服务之间的网络往返太多,特定的分解将是不切实际的。分解的另一个障碍是服务之间的同步通信降低了可用性。你可能需要使用第3章中描述的自包含服务的概念。第三个障碍是需要维护跨服务的数据一致性。你需要使用第4章中讨论的Saga。分解的第四个也是最后一个障碍是所谓的上帝类(God Class),它广泛应用在整个应用程序中。幸运的是,你可以使用领域驱动设计中的概念来消除上帝类。

     

    本节首先介绍如何识别应用程序的系统操作。之后,会研究将应用程序分解为服务的策略和指南、分解的障碍以及如何解决它们。最后,将描述如何定义每个服务的API。

     

    1 识别系统操作 

     

    定义应用程序架构的第一步是定义系统操作。起点是应用程序的需求,包括用户故事及其相关的用户场景(请注意,这些与架构场景不同)。使用图2-6中所示的两步式流程识别和定义系统操作。这个流程的灵感来自Craig Larman的名著《Applying UML and Patterns》中介绍的面向对象设计过程。第一步创建由关键类组成的抽象领域模型,这些关键类提供用于描述系统操作的词汇表。第二步确定系统操作,并根据领域模型描述每个系统操作的行为。

    640?wx_fmt=jpeg

    图2 使用这个两步式流程从应用程序的需求识别系统操作。第一步是创建一个抽象领域模型。第二步是定义系统操作,这些操作是根据领域模型定义的

     

    领域模型主要源自用户故事中提及的名词,系统操作主要来自用户故事中提及的动词。你还可以使用名为事件风暴(Event Storming)的技术定义领域模型,我将在第5章中讨论。每个系统操作的行为都是根据它对一个或多个领域对象的影响以及它们之间的关系来描述的。

     

    系统操作可以创建、更新或删除领域对象,以及创建或破坏它们之间的关系。

     

    我们来看看如何定义抽象领域模型。之后,我将根据领域模型定义系统操作。

     

    创建抽象领域模型

     

    定义系统操作的第一步是为这个应用程序描绘一个抽象的领域模型。注意这个模型比我们最终要实现的简单很多。应用程序本身并不需要一个领域模型,因为我们在稍后会学到,每一个服务都有它自己的领域模型。尽管非常简单,抽象的领域模型仍旧有助于在开始阶段提供帮助,因为它定义了描述系统操作行为的一些词语。

     

    创建领域模型会采用一些标准的技术,例如通过与领域专家沟通后,分析用户故事和场景中频繁出现的名词。例如Place Order用户故事,我们可以把它分解为多个用户场景,例如这个:

    640?wx_fmt=jpeg

    在这个用户场景中的名词,如Consumer、Order、Restaurant和CreditCard,暗示了这些类都是需要的。

    同样,Accept Order用户故事也可以分解为多个场景,如下:

    640?wx_fmt=jpeg

    这个场景暗示需要Courier类和Delivery类。在经过几次迭代分析之后,结果显然就是这个领域模型应该包括一些类,如MenuItem和Address等。图3显示了核心类的类图。

    640?wx_fmt=jpeg

    图3 FTGO领域模型中的关键类

    每一个类的作用如下:

    • Consumer:下订单的用户。

    • Order:用户下的订单,它用来描述订单并跟踪状态。

    • OrderLineItem:Order中的一个条目。

    • DeliveryInfo:送餐的时间和地址。

    • Restaurant:为用户准备生产订单的餐馆,同时也要发起送货。

    • MenuItem:餐馆菜单上的一个条目。

    • Courier:送餐员负责把订单送到用户手里。可跟踪送餐员的可用性和他们的位置。

    • Address:Consumer或Restaurant的地址。

    • Location:Courier当前的位置,用经纬度表示。

    类似上面这张类图描述了应用程序架构的一个方面。但如果没有对应的场景,这个图也就是仅仅好看而已,并不实用。下一步开始定义对应架构场景的系统操作。

    定义系统操作

    当定义了抽象的领域模型之后,接下来就要识别系统必须处理的各种请求。我们并不讨论具体的用户界面,但是你能够想象在每一个用户场景下,前端的用户界面向后端的业务逻辑发出请求,后端的业务逻辑进行数据的获取和处理。FTGO是一个Web应用,这意味着它的大部分请求都是基于HTTP的。但也有可能一些客户端会使用消息。相比绑定到具体的通信协议,使用抽象的词汇来描述跟系统操作有关的请求更为合理。

    有以下两种类型的系统操作。

    • 指令型:创建、更新或删除数据的系统操作。

    • 查询型:查询和读取数据的系统操作。

    从根本上说,这些系统操作都会对应到具体的REST、RPC或消息端口。但现阶段我们不必在意这些实现细节。让我们先开始识别一些指令。

    识别系统指令的切入点是分析用户故事和场景中的动词。例如Place Order用户故事,它非常明确地告诉架构师,这个系统必须提供一个Create Order操作。很多用户故事都会直接对应或映射为系统命令。表1列出了一些关键的系统命令。

    640?wx_fmt=png

    640?wx_fmt=png

    表1 FTGO应用程序的重要系统命令

    命令规范定义了命令对应的参数、返回值和领域模型类的行为。行为规范中包括前置条件(即当这个操作被调用时必须满足的条件)和后置条件(即这个操作被调用后必须满足的条件)。例如,以下就是createOrder()系统操作的规范。

    640?wx_fmt=png

    前置条件对应着Place Order用户场景中的givens,后置条件对应着场景中的Then。当系统操作被调用时,它会检查前置条件,执行操作来完成和满足后置条件。

    下面是acceptOrder()的系统操作规范:

    640?wx_fmt=png

    前置条件和后置条件对应着之前用户场景中的描述。

     

     多数与系统操作相关的架构元素是命令。查询虽然仅仅是简单地获取数据,但是也同样重要。

    应用程序除了实现指令以外,也必须实现查询。查询为用户决策提供了用户界面。在目前阶段,我们并没有开始为FTGO应用程序构思任何用户界面,但是需要注意,当消费者下订单时往往是如下所示的过程。

     

    1.用户输入送餐地址和期望的送餐时间;

    2.系统显示当前可用的餐馆;

    3.用户选择餐馆;

    4.系统显示餐馆的菜单;

    5.用户点餐并结账;

    6.系统创建订单。

     

    这个用户场景包含了以下的查询型操作:

    findAvailableRestaurants(deliveryAddress,deliveryTime):获取所有能够送餐到用户地址并满足送餐时间要求的餐馆。

    findRestaurantMenu(id):返回餐馆信息和这家餐馆的菜单项。

     

    在这两项查询中,findAvailableRestaurants()也许是在架构层面尤其重要的一个。它是一个包含了地理位置等信息的复杂查询。地理查询的组件负责找到送餐地址周围所有满足要求的餐馆位置。同时它也需要过滤那些在订单准备和送餐时间范围内没有营业的餐馆。另外,这个查询的性能尤其重要,因为执行这个查询时,客户多数都是“在线急等”的状态,耽误不得。

     

    抽象的领域模型和系统操作能够回答这个应用“做什么”这一问题。这有助于推动应用程序的架构设计。每一个系统操作的行为都通过领域模型的方式来描述。每一个重要的系统操作都对应着架构层面的一个重大场景,是架构中需要详细描述和特别考虑的地方。现在我们来看看如何定义应用程序的微服务架构。

     

    系统操作被定义后,下一步就是完成应用服务的识别。如之前提到的,这并不是一个机械化的流程,相反,有多种拆分策略可供选择。每一种都是从一个侧面来解决问题,并且使用它们独有的一些术语。但是殊途同归,这些策略的结果都是一样的:一个包含若干服务的架构,这样的架构是以业务而不是技术概念为中心。

     

    我们先来看看第一个策略:使用业务能力来定义服务。

     

    2. 根据业务能力进行服务拆分

    创建微服务架构的策略之一就是采用业务能力进行服务拆分。业务能力是一个来自于业务架构建模的术语。业务能力是指一些能够为公司(或组织)产生价值的商业活动。特定业务的业务能力取决于这个业务的类型。例如,保险公司业务能力通常包括承保、理赔管理、账务和合规等。在线商店的业务能力包括:订单管理、库存管理和发货,等等。

    模式:根据业务能力进行服务拆分

     

    业务能力定义了一个组织的工作

    组织的业务能力通常是指这个组织的业务是做什么,它们通常都是稳定的。与之相反,组织采用何种方式来实现它的业务能力,是随着时间不断变化的。这个准则在今天尤其明显,很多新技术在被快速采用,商业流程的自动化程度越来越高。例如,不久之前你还通过把支票交给银行柜员的方式来兑现支票,现在很多ATM机都支持直接兑现支票,而今,人们甚至可以使用智能手机拍照的方式来兑现支票。正如你所见,“兑现支票”这个业务能力是稳定不变的,但是这个能力的实现方式正在发生戏剧性的变化。

    识别业务能力

    一个组织有哪些业务能力,是通过对组织的目标、结构和商业流程的分析得来的。每一个业务能力都可以被认为是一个服务,除非它是面向业务的而非面向技术的。业务能力规范包含多项元素,比如输入和输出、服务等级协议(SLA)。例如,保险承保能力的输入来自客户的应用程序,这个业务能力的输出是完成核保并报价。

    业务能力通常集中在特定的业务对象上。例如,理赔业务对象是理赔管理功能的重点。能力通常可以分解为子能力。例如,理赔管理能力具有多个子能力,包括理赔信息管理、理赔审核和理赔付款管理。

    把FTGO的业务能力逐一列出来似乎也并不太困难,如下所示。

    • 供应商管理。

          Courier management:送餐员相关信息管理;

    Restaurantinformation management:餐馆菜单和其他信息管理,例如营业地址和时间。

    • 消费者管理:消费者有关信息的管理。

    • 订单获取和履行。

    Order management:让消费者可以创建和管理订单。

    Restaurant ordermanagement:让餐馆可以管理订单的生产过程。

    送餐。

    Courieravailability management:管理送餐员的实时状态。

    Deliverymanagement:把订单送到用户手中。

    • 会计记账。

    Consumeraccounting:管理跟消费者相关的会计记账。

    Restaurantaccounting:管理跟餐馆相关的会计记账。

    Courieraccounting:管理跟送餐员相关的会计记账。

    其他。

     

    顶级能力包括供应商管理、消费者管理、订单获取和履行以及会计记账。可能还有许多其他顶级能力,包括与营销相关的能力。大多数顶级能力都会分解为子能力。例如,订单获取和履行被分解为五个子能力。

     

    这个能力层次的有趣方面是有三个餐馆相关的能力:餐馆信息管理、餐馆订单管理和餐馆会计记账。那是因为它们代表了餐馆运营的三个截然不同的方面。

     

    接下来,我们将了解如何使用业务能力来定义服务。

     

    从业务能力到服务

     

    一旦确定了业务能力,就可以为每个能力或相关能力组定义服务。图4显示了FTGO应用程序从能力到服务的映射。某些顶级能力(如会计记账能力)将映射到服务。在其他情况下,子能力映射到服务。

    640?wx_fmt=jpeg

    图4  将FTGO业务能力映射到服务。能力层次结构各个级别的能力都映射到服务

     

    决定将哪个级别的能力层次结构映射到服务是一个非常主观的判断。我对这种特定映射的理由如下:

     

    • 我将供应商管理的子能力映射到两种服务,因为餐馆和送餐员是非常不同类型的供应商。

    • 我将订单获取和履行能力映射到三个服务,每个服务负责流程的不同阶段。我将送餐员可用性管理(Courier availability management)和交付管理(Deliverymanagement)能力结合起来,并将它们映射到单个服务,因为它们交织在一起。

    • 我将会计记账能力映射到自己的独立服务,因为不同类型的会计记账看起来很相似。

     

    之后将针对餐馆和送餐员的费用支付和针对消费者的订单收款分开是有意义的。

    围绕能力组织服务的一个关键好处是,因为它们是稳定的,所以最终的架构也将相对稳定。架构的各个组件可能会随着业务的具体实现方式的变化而发展,但架构仍保持不变。

     

    话虽如此,重要的是要记住图4中显示的服务仅仅是定义架构的第一次尝试。随着我们对应用程序领域的了解越来越多,它们可能会随着时间的推移而变化,特别是架构定义流程中的一个重要步骤是调查服务如何在每个关键架构服务中协作。例如,你可能会发现由于过多的进程间通信而导致特定的分解效率低下,导致你必须把一些服务组合在一起。相反,服务可能会在复杂性方面增长到值得将其拆分为多个服务的程度。此外,在第5节中将描述可能导致你重新审视当前分解决策的几个障碍。

     

    下一篇我们来看看基于领域驱动设计分解应用程序的方法。

    本文摘自《微服务架构设计模式》,经出版方授权发布。

    微服务架构设计模式

    作者:[美] 克里斯·理查森(Chris Richardson) 著

    译者:喻勇 译

    推荐语:

    微服务架构的先驱、Java 开发者社区的意见领袖 Chris Richardson亲笔撰写,微服务实用落地指南 

    涵盖44个架构设计模式,系统解决服务拆分、事务管理、查询和跨服务通信等难题

    易宝支付CTO陈斌、PolarisTech 联合创始人蔡书、才云科技CEO张鑫等多位专家鼎力推荐。

    点击“阅读原文”挑选更多微服务好书!

    往期推荐:

    展开全文
  • 架构模式: 根据业务能力拆分 上下文 您正在开发一个大型,复杂的应用程序,并希望使用微服务架构。微服务架构将应用程序构建为一组松散耦合的服务。微服务架构的目标是通过实现持续交付/部署来加速软件开发。 ...
  • 接下来,下面将从以下技术能力和业务能力两个方面进行阐述。    提到技术能力这无疑是衡量一个工程师水平最重要的依据,对于独当一面的工程师技术能力的要求又是怎样的呢?下面我们就以前端工程师为例,看...
  • 应用架构、业务架构、技术架构和业务流程图详解

    万次阅读 多人点赞 2019-10-11 16:00:14
    企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他...
  • 程序员需要具备的能力

    千次阅读 2018-11-08 10:06:07
    一、编程能力体现: 点:算法(解决问题的能力) 线:设计模式(组织代码的能力) ...二、业务能力体现: 理解问题或需求的能力 沟通和协调资源的能力 预估和安排计划的能力 调研和解决问题的能力 ...
  • 产品架构能力之一 业务架构图

    千次阅读 2019-12-10 15:52:43
    业务架构,简单的说就是,“企业希望从这个产品身上得到什么”,以及“用户想从产品身上得到什么”,比如:电商平台这种战略性目标是显而易见的,用户买到想要的东西,企业卖出可以赚钱的商品。 客户的期望才是产品...
  • 业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进。 平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便于定制化扩展。 前后端分离,通过服务接入层进行...
  • IMS系统简介及增值业务能力分析

    千次阅读 2016-09-22 18:50:05
    主要介绍了IMS产生的相关背景,IMS及其业务的基本概念、IMS系统的特性,最后简要分析了IMS的市场需求,以及针对市场需求IMS提供的不同业务类型,为运营商部署下一代网络提供了有益的参考。
  • 今天我们就从以下几个方面聊聊这个话题:什么是业务业务和技术的关系业务和因解决业务而衍生的业务业务的态度因你在团队中的角色而不同如何从写业务代码中跳出来,做你所谓的有技术含量的工作首先,我们先来看看,...
  • 一、技术能力系统设计和开发能力。技术Leader要熟悉业务领域内的系统架构和相关技术,能根据业务特性,合理进行分层设计,实现最高效率、低运维成本等等。对于重要而复杂的系统,要求做好过载保护措施...二、业务能力...
  • 程序员基本能力

    千次阅读 2018-02-24 17:08:21
    之前一位同事告诉我说:学习编程语言主要是要学习各个语言中的设计思想和算法,并且还要理解清楚其中的各种数据结构...一个优秀的程序员是如何炼成的程序员基本能力:1.问题分解能力2.场景分析能力3.命名能力4.构...
  • 复杂业务代码要怎么写

    千次阅读 多人点赞 2019-08-02 10:26:12
    面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,我有了一些新的思考,在此分享给大家。我相信,同样的方法论可以复制到大部分复杂业务场景。 一个复杂业务的处理过程 业务背景 简单的介绍下业务背景...
  • 新型领导设计模式—设计可扩展性的业务架构开闭原则是软件设计最重要的原则之一,设计具有良好可扩展性的业务架构极其依赖该原则。业务品种在增多,已有业务自身也在发展,需要设计一套统一,灵活,互相独立的业务...
  • 业务组件封装了一系列业务是可以独立编译、部署
  • 互联网产品经理核心素质能力模型

    千次阅读 2014-03-11 10:21:21
     产品经理在业务侧最核心的能力就是:系统化需求分析的能力;  之前做软件系统的“系统分析师”的时候,那个时候的用户是相对固定的,只要把软件使用者的各个角色找到进行详细访谈,把业务流程理解透彻,就可 以写...
  • 等保测评--通信网络安全测评要求

    千次阅读 2020-07-28 11:54:35
    信息安全等级保护,是对信息和信息...应保证网络设备的业务处理能力满足业务高峰期需要。 应保证网络各部分的带宽满足业务高峰期需要。 应划分不同的网络区域,并按照方便管理和控制的原则为各网络区域分配地址。 应
  •  业务理解力,数据分析之前,首先要进行的是业务梳理,每个业务都是由很多规则和基本元素组成的,比如一个优惠返券活动,基本的活动规则是买100返20,需要设定投放量和使用量,以及在哪种规模和类型中的店铺,以及...
1 2 3 4 5 ... 20
收藏数 578,422
精华内容 231,368
关键字:

业务能力