Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 79|回復: 0

但这是一个完全主观的过程,并且没有“正确

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
發表於 2023-11-1 15:21:48 | 顯示全部樓層 |閱讀模式
的答案。然而,这在实践中意味着什么呢? 我所说的“虚拟”是指一般情况下,您不需要物理地更改现有的应用程序:以任何形式确定结构就足够了,即使只是在纸面上。 我们必须将当前的应用程序明确划分为以下服务: 独立的; 专注于一项小工作。 用于向数据库添加新项目的输入字段可以是服务的一个示例:它专用于一项特定作业(添加新项目)并且在不依赖于任何其他服务的情况下完成该作业。或者,已添加到数据库中的整个项目列表:它的功能很简单,并且不依赖于其他组件来列出项目。我相信这听起来并不太复杂,但这可能是一种欺骗性的感觉。 让我们从简单的部分开始:如果您当前项目中的框架基于“组件”的概念(React、Vue),那么您可能已经为此类迁移奠定了合理的基础。您可以将应用程序的每个组件视为微服务架构中的单独服务。 如果您的项目目前是基于遗留项目(例如 jQuery),您应该发挥您的想象力,仔细考虑如何构建您的应用程序,遵循微服务的独立性和每个服务一项工作的原则。

只要遵循微服务的原则,我们就可以以任何我们想要的方式构 美国手机号码列表 建我们的应用程序。 只要遵循微服务的原则,我们就可以以任何我们想要的方式构建我们的应用程序。(大预览) 如果需要的话重构  我讨厌多次重复事情的能力,但在这种情况下,它很有意义:确保您的服务(或组件、容器或任何您喜欢称之为构建块的东西)不依赖于其他服务。否则,为了独立和隔离,这两种服务应该被视为一个服务。 一个简单的测试可确保您的服务适当独立:从主机中删除组件/服务的 HTML 并重新加载应用程序。如果控制台中没有 JS 错误并且应用程序的其余部分按预期工作,则相关服务很可能足够独立于应用程序的其余部分。 为了给您更好的解释,让我们考虑以下人为简化的遗留示例: ; 复制 在这里,现在标记中,因为它的submit处理程序直接更新列表。因此,这两者相互依赖,我们不能将它们分成单独的服务:它们是同一工作的一部分,并相互帮助以服务于同一目的。



然而,作为一个可能更好的替代方案,我们可以重构这段代码,使两个组件相互独立并满足独立性的要求: 索引.; 复制 现在,我们g组件不直接相互通信,而是通过 DOM 事件(它可以是状态管理或任何其他带有通知的存储机制):当添加新项目时,调度一个事件,订阅听听这个事件。现在任何组件都可以调度此事件。此外,任何组件都可以监听它:我们的组件变得彼此独立,因此我们可以在迁移中单独对待它们。 服务太小另一件需要记住的事情是:当将应用程序与现有组件(如 React 或 Vue)拆分为服务时,某些组件可能太小而无法提供适当的服务。这并不是说它们不能很小,因为没有什么可以阻止您按照自己的意愿将应用程序构建为原子的,但是大多数简单的可重用 UI 组件(如上一个示例中的表单按钮或输入字段)最好包含在为您提供更广泛的服务,最大限度地减少您的工作量。 在更大的范围内,您可以按照您希望的方式进行步 。您不需要从全局计划开始弗兰肯斯坦迁移:您可以仅从应用程序的一个元素开始。

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|DiscuzX

GMT+8, 2024-11-19 07:44 , Processed in 0.033381 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表