随笔分类 - 读书笔记
摘要:第13章 微服务架构的重构策略 绞杀者模式 13.1 重构到微服务需要考虑的问题 13.1.1 为什么要重构单体应用 交付缓慢 充满故障的软件交付 可扩展性差 理解这些问题的存在是非常重要的。因为这表明应用的需求已经超过了当前架构的承载能力。缓慢交付和错误百出的交付的常见原因是软件开发流程不佳(而不
阅读全文
摘要:部署包含两个相互关联的概念:流程和架构。部署力促包括一些由开发人员和运维人员执行的步骤,以便将软件投入到生产环境。部署架构定义了该软件运行的环境结构。 生产环境必须实现四个关键功能: 服务管理接口:使开发人员能够创建、更新和配置服务。理想情况下,这个接口是一个可供命令行和图形部署工具调用的REST
阅读全文
摘要:第11章 开发面向生产环境的微服务应用 11.1 开发安全的服务 应用程序开发人员主要负责实现安全性的四个不同方面: 身份验证 访问授权:基于角色的安全性和访问控制列表(ACL)的组合 审计:跟踪用户在应用中执行的所有操作,以便检测安全问题 安全的进程间通信:理想情况下,所有进出服务的通信都应该采用
阅读全文
摘要:第9章 微服务架构中的测试策略(上) AI问答: 在越来越复杂的软件开发场景下,测试到底该怎么做。 我们一开始聊的是最基础的自动化测试概念。你提到了自动化测试、TDD和测试用例这三个词,我帮你理清了它们的关系。测试用例就是具体的验证点,比如输入什么数据、预期得到什么结果。自动化测试是用代码代替人工去
阅读全文
摘要:第8章 外部API模式 8.1 外部API的设计难题 FTGO 使用服务 API 的客户端一共有四种: web 应用程序,如 consumer web 应用程序(基于浏览器的用户界面),以及供内部管理员使用的用户界面 移动应用程序,一个供消费者,一个供送餐员 第三方开发人员编写的程序 API 的一种
阅读全文
摘要:第7章 在微服务架构中实现查询 在微服务架构中实现查询操作有两种不同的模式: API 组合模式:这是最简单的方法,应尽可能使用。它的工作原理是让拥有数据的服务的客户端负责调用服务,并组合服务返回的查询结果 命令查询职责隔离(CQRS)模式:它比 API 组合模式更强大,但也更复杂。它维护活多个视图数
阅读全文
摘要:第6章 使用事件溯源开发业务逻辑 6.1 使用事件溯源开发业务逻辑概述 事件溯源是构建业务逻辑和持久化聚合的另一种选择。它将聚合以一系列事件的方式持久化保存。每个事件代表聚合的一次状态变化。应用程序通过重放(replaying)事件来重新创建聚合的当前状态。 事件溯源:使用一系列表示状态更改的领域事
阅读全文
摘要:第5章 微服务架构中的业务逻辑设计 由于业务逻辑散步在多个服务上,因此在微服务架构中开发复杂的业务逻辑更具挑战性。我们需要解决两个关键问题。 首先,典型的领域模型是由各种类(class)交织在一起的一个网络。虽然这在单体应用程序中不是问题,但在微服务架构中,类分散在不同的服务中,你需要避免跨越服务边
阅读全文
摘要:第4章 使用Saga管理事务 它的主要内容是提出了“Sagas”(传奇)这个事务模型,核心是为了解决长事务(Long-running transactions)在分布式系统中遇到的难题。 为了解决长事务容易长时间占用资源、失败后恢复代价高昂的问题,Sagas模型的核心思想是: 将长事务拆分成一系列子
阅读全文
摘要:第3章 微服务架构中的进程间通信 3.1 微服务架构中的进程间通信概述 3.1.1 交互方式 一对一 一对多 同步 请求/响应 无 异步 同步请求/响应单向通知 发布/订阅发布/异步响应 3.1.2 在微服务架构中定义API 首先编写接口定义,然后与客户端开发人员一起查看这些接口定义。只有在反复迭代
阅读全文
摘要:第2章 服务的拆分策略 2.1 微服务架构到底是什么 传统上,架构的目标是可扩展性、可靠性和安全性。但是今天,该架构能够快速安全地交付软件,这一点非常重要。 2.1.1 软件架构是什么,为什么它如此重要 O'Reilly的软件架构会议 SATURN会议 卡耐基梅隆大学软件工程研究所Len及其同事:
阅读全文
摘要:microservices patterns with examples in java 微服务架构设计模式 [美]克里斯·理查森(chris richardson)著 喻勇 译 2019.6 第一版第 3 次印刷 ISBN:9787 1116 24127 第一,要记住微服务不是解决所有问题的万能“
阅读全文
摘要:技术人员相当善于估算,但却不善于为他们得到的估算结果进行解释 23.1 主管们的特点 23.2 对估算有影响的政治因素 外部约束 预算和日期 对估算时还是对承诺进行谈判 23.3 解决问题和原则谈判法 谈判涉及的是有利益冲突的当事人。其重点是在两组或更多的当事人之间“切蛋糕”,或者说划分利益。在敌对
阅读全文
摘要:22.1 就估算假设进行沟通 22.2 表达不确定性 正负修正量 量化风险 基于场景的估算 22.3 使用(各种类型的)范围
阅读全文
摘要:项目估算和项目计划之间的界限很模糊,而且涉及到很多方面。有大量的计划参数需要估算,主要包括:要给构造、测试、需求和设计活动分配多少工作量、每个开发人员要配备多少测试人员、在一周内或一个月内可以完成特定项目多少人时的工作量、风险缓冲应有多大、以及制定计划所需的许多其他数值。 在项目的计划工作达到本章所
阅读全文
摘要:20.1 基本进度公式 项目早期 \[进度月数 = 3.0 * 人月数^{\frac{1}{3}} \]20.2 使用与历史项目的非正式比较来计算进度 \[估算的进度 = 历时进度 * (估算的工作量 / 历史工作量)^{\frac{1}{3}} \]20.3 Jones的一阶估算实践 20.4 使
阅读全文
摘要:19.1 影响工作量的因素 对项目工作量影响最大的因素是待构建软件的规模。其次的因素是开发组织的生产率 19.2 根据规模计算工作量 1)使用和历史项目的非正规比较来计算工作量估算值 2)估算值中包括哪类工作量? 由于是使用历史数据得到估算值的,所以估算值中包括历史数据中的那些工作量。如果历史数据中
阅读全文
摘要:一旦从直接估算工作量和进度转为基于历史数据来对其进行计算,项目的规模就成为了最难估算的量。在迭代式项目中使用规模估算有助于确定在一次迭代中可以交付多少特性,但人们通常关注的还是可直接估算特性的方法。而在顺序式项目的后期,估算则更关注由负责特定工作的人自底向上地进行工作量估算。因此,规模估算主要适用于
阅读全文
摘要:标准化估算规程就是在开发组织一级采用的定义好的估算过程,它可以为单个项目的估算提供指导。标准规程可以避免诸如即兴估算和猜测之类的不良估算实践的影响,可以避免由于某个强势的干系人不喜欢某一结果而任意改变估算值,还可以促进整个机构采用一致的估算过程。而且,在出现特别不良的估算时,它们还有助于对估算步骤进
阅读全文
摘要:16.1 未获得良好估算的项目中的单个估算流程 不要对估算的输出结果进行争论。应该将估算的输出结果作为约定的结果。只能通过改变输入和重新计算来改变输出结果 16.2 获得良好估算的项目中的单个估算流程 首先关注对规模的估算。然后根据规模估算值计算出工作量、进度、成本和特性 16.3 按照时间顺序描述
阅读全文

浙公网安备 33010602011771号