从实际业务中来,到落地业务建模中去

bac153b641b28261ccba476b74756704.png

图片来源:pexels.com

做了这么多年项目,不知道你有没有发现一个有趣的现象:有时候面对同一个问题,当我们对它的定义不同,往往最终解决方案的差异也会非常大。

拿我司之前的一个需求来说,客户要求将一份带有大量文字介绍的图片报告转换成 PDF 格式,以方便用户下载。但由于每张图片具体说明信息不同,所以难免会出现一些排版格式的错误。

于是,我们项目组的一位技术骨干提出了一个看似“完美”的解决方案:

利用后台渲染技术,在服务器端的浏览器进程中渲染页面,再将渲染好的页面通过浏览器后台进程转存为 PDF 文档,并通过云端的大规模存储服务缓存;

另外,为了应对突发巨量下载的可能性,还得用上当时最先进的云计算,构造一组后台渲染集群,并根据下载量的大小,利用云计算的弹性动态调整集群的大小。

可以看出,他是这样定义该问题的:PDF 中保留的信息样式,要和用户在浏览器中看到的一致

方法是没错,但貌似看起来过于复杂?现在我们换个思路,解决这个问题前,先搞清楚客户为什么想保留图片的文字说明?一问才知道,图片上的是版权信息声明,保留是为了避免法务纠纷。

这时候,该问题的定义自然变成了:PDF 中确实要保留图片的版权信息,但读者只用知道其存在,并不一定要直接阅读它。

从这个定义出发,最终的解决方案就简单多了:当图片说明文字超过一定字数,直接选择一个很小的字号,以保证信息留存在 PDF 中即可。实现方案,也就只是一条 if 语句的事儿。

从一个后台渲染集群到一条 if 语句,两者的成本和实施难度的差距不用我多说。看到没,这就是有效定义问题的重要性。

而要想做到有效定义问题,首先得从业务实际出发,并尽力在业务中寻找简化问题的可能性,然后在技术中寻找对应的解决方案。这个过程,也叫做业务建模。

在上述例子中,我甚至还没有动用任何建模手段,只靠澄清了真正诉求,就极大地简化了解决方案。但在日常开发里,各个因素都可能极大提高问题的复杂度,所以除了清晰地理解业务诉求之外,更加需要我们通过建模的方式对这种复杂度进行简化与精炼。

作为业务建模的践行者和创新者,我发现平时不少人都有没搞清问题定义而去舍近求远做事情的困扰,所以,我和极客时间合作推出了《如何落地业务建模》专栏。在专栏中,我会系统讲解建模所掌握的多种方法、原则,以云时代时间轴为界,带你清晰定义业务问题,掌握在架构下,业务建模的最佳实践以及实现模式。

跟我学完这门课,相信你能快速重构建模技能,掌握业务建模精髓和切实有效的落地方法论。无论是作为帮你高效搞定项目的方法,还是一种思维的训练法,业务建模都非常值得你花时间去琢磨。

ecddde9eed0d65711a0289ad7736db23.png

秒杀+口令「jianmo666」立省 ¥80

到手六折,仅限前 50 人

我是谁?

我是徐昊(八叉),ThoughtWorks 全球技术策略顾问、中国区首席技术官(CTO),ThoughtWorks 技术雷达编撰人。谈话节目「八叉说」作者。

同时我也是北京 Java 用户组( BJUG:Beijing Java User Group)和 Agile China 主要创始人之一。从 2003 年起开始实践极限编程等敏捷方法,并多次以敏捷教练的角色帮助国内外多个团队实施极限编程,提高编码迭代效率。

此外,我也曾主持 ThoughtWorks 中国区技术特种兵小巨人管培计划,为行业输送了多位技术带头人。近年提炼了大规模工程实践方法 SEELE ,以进一步提升研发团队的工作效能。

如何学习业务建模?

业务建模的方法有很多种,它的吊诡之处就在于,使用的难度并不在于建模本身。无论是哪种建模方法,你总能按照书里教程中的例子,照猫画虎地做个七七八八。

但,业务建模存在两个真正的难点:

  1. 清晰地定义业务问题,并让所有干系人都接受你对业务问题的定义;

  2. 在特定架构的约束下,将模型实现出来。

为了帮你搞定这两点,以及更好地了解和掌握建模的最终落地,我在每一讲内容中,都按照步骤展示了很多领域模型,方便大家在阅读中能够清晰梳理整体脉络,同时也可以保存下来,随时查看复习。

下面这个就运用了四色建模法,以一个极客时间的专栏生产和售卖为例,按照关键数据项间的关联,将模型连载一起,稍加润色,补充描述对象,从而得到了如下的领域模型:

8bb4a2b9d459e16c3df611b76d8f1e90.png

回归主题,课程分为两大板块:

一、旧约:“前云时代”的领域驱动设计

这部分是过去十五年“前云时代”,我们对领域驱动设计应用的总结与提炼,因而称为“旧约”。

首先,我会为你介绍领域驱动设计方法。作为一种建模方法,虽不是那么出色,然而却能够在如何引领需求发掘,如何建立沟通反馈,如何与业务方共建模型等问题上,提供到一套出色的框架

而后,我会为你介绍在多层架构成为主流架构选择的时代中,领域驱动设计在模型实现上遇到了哪些挑战,以及如何应对,帮助我们理解架构约束会对模型带来何种影响。

最后我会介绍四种建模方法,分别是:催化剂法、角色-目标-实体法、事件风暴与四色法,以弥补领域设计在建模能力上的缺陷

二、新约:“云时代”的业务建模

如今,云时代彻底改变了我们构造软件的方式,微服务、中台、软件的 SaaS 化都是这一影响的体现。新的架构约束会极大影响我们业务建模的方法,但同时也大大扩展了业务建模的内涵。

我会来和你聊聊云到底带来了哪些观念上的改变,它具体的颠覆性体现在什么地方,以及对我们构造业务系统有多少影响。

其次,我会介绍一种由我发明的业务建模方法 8X Flow 法,用于解决微服务、分布式事务为主导的架构风格中的业务建模问题。这个方法同样可以用于构建中台系统,也是我司目前用于中台建模的主要方法。

最后,我会介绍另一个同样是我发明的用于 SaaS 化业务建模的方法:魔球服务建模法(Money Ball Offering Modeling)一种从运营角度出发构造SaaS化服务的实用方法。

还有很多具体内容,可以看看课程目录。

db49157a0b2eeb1c5832c505d0c19a29.png

我的粉丝仍有专属福利:

拼团 + 秒杀口令「jianmo666」
立省 ¥80,仅限前 50 人!

订阅后生成海报发给好友,

每成功邀请 1 位好友,可得 ¥20 返现。

a7d4dc51409c5741890aadf5950f83ec.png

👇 点击「阅读原文」

输入优惠口令 「jianmo666」

立省 ¥80 入手,仅限前 50 人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STRIDE是一种常用的威胁建模模型,用于帮助分析系统中可能存在的威胁。下面是一些关于如何在实际中使用STRIDE的建议: 1. 确定系统范围:在开始分析之前,需要明确分析的系统是什么。这可以帮助确定需要考虑的所有方面以及可能的威胁。 2. 理解STRIDE分类:STRIDE将威胁分为六类:Spoofing(欺骗)、Tampering(篡改)、Repudiation(抵赖)、Information disclosure(信息泄露)、Denial of service(拒绝服务)和Elevation of privilege(提权)。了解这些分类可以帮助确定可能的威胁类型,并更好地规划威胁建模的过程。 3. 识别系统中的重要资产:重要的资产通常是攻击者的目标,因此需要特别关注它们。对于每个重要的资产,需要确定可能的威胁并对其进行建模。 4. 使用威胁建模工具:有许多威胁建模工具可以帮助自动化威胁建模的过程。例如,Microsoft的“威胁建模工具”(Threat Modeling Tool)提供了一个图形界面,可以使用STRIDE等模型来识别威胁,并生成威胁建模文档。 5. 定期评估威胁模型:由于威胁环境不断变化,威胁建模应该是一个持续的过程。定期评估模型可以帮助识别新的威胁,并对现有模型进行修正和更新。 6. 考虑安全措施:在确定威胁之后,需要考虑适当的安全措施来减轻或消除威胁。这些措施可以包括物理措施、网络安全措施、身份验证和访问控制等。 总之,STRIDE可以作为一种帮助识别系统中潜在威胁的有用工具。然而,为了最大限度地利用STRIDE,需要结合实际情况和经验,不断完善和更新威胁建模的过程。 ### 回答2: 微软威胁建模模型STRIDE是一种用于评估软件系统安全的框架。在实际中,可以按照以下步骤运用STRIDE模型。 首先,确定系统的边界和功能。了解系统的功能和范围,确定系统与外部环境之间的边界。这将有助于识别潜在的威胁来源和可能的攻击路径。 其次,对系统进行分析,并使用STRIDE模型识别潜在威胁。STRIDE模型是基于六种不同的威胁类别:Spoofing(伪装)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)和Elevation of Privilege(提权)。通过应用STRIDE模型,可以识别潜在的威胁并进行分类。 然后,对特定的威胁进行分析和评估。为每个被识别的威胁,进行详细的分析,评估其潜在影响和可能性。这将有助于确定哪些威胁是最严重的,以及应该优先处理哪些威胁。 接下来,制定相应的安全对策。针对每个被识别的威胁,制定相应的安全对策。这些对策应该能够阻止或减轻威胁的发生,并提供一定的保护措施。 最后,实施和监控安全对策。将安全对策纳入软件开发和维护过程中,并进行监控和评估。定期检查和更新安全对策,以适应不断变化的威胁环境。 总的来说,STRIDE模型可以帮助软件系统的开发者和维护者全面评估和处理潜在的安全威胁。通过识别和分析威胁,制定相应的对策,并不断监控和更新安全措施,可以提高系统的安全性,并减少遭受攻击的风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值