前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何部署服务 & 要记住的 9 个干净代码原则

如何部署服务 & 要记住的 9 个干净代码原则

作者头像
BUG弄潮儿
发布2025-05-25 15:11:06
发布2025-05-25 15:11:06
1210
举报
文章被收录于专栏:JAVA乐园JAVA乐园

如何部署服务

部署或升级服务存在风险。在这篇文章中,我们将探讨风险缓解策略。

下图说明了常见的。

  • 多服务部署

在这个模型中,我们同时将新的更改部署到多个服务。这种方法很容易实现。但是由于所有服务都是同时升级的,因此很难管理和测试依赖项。安全回滚也很困难。

  • 蓝绿部署

使用蓝绿部署,我们有两个相同的环境:一个是暂存环境(蓝色),另一个是生产环境(绿色)。暂存环境比生产环境早一个版本。在暂存环境中完成测试后,用户流量将切换到暂存环境,暂存成为生产环境。此部署策略易于执行回滚,但拥有两个相同的生产质量环境可能会很昂贵。

  • 金丝雀部署

金丝雀部署会逐步升级服务,每次都升级给一部分用户。它比蓝绿部署更便宜,并且易于执行回滚。但是,由于没有暂存环境,我们必须在生产环境中进行测试。这个过程比较复杂,因为我们需要监控金丝雀,同时逐渐将越来越多的用户从旧版本迁移出去。

  • A/B 测试

在 A/B 测试中,不同版本的服务同时在生产环境中运行。每个版本都会为一部分用户运行一个 “实验”。A/B 测试是在生产中测试新功能的一种廉价方法。我们需要控制部署过程,以防某些功能被意外推送给用户。

系统设计主题图

有效的系统设计是一场权衡取舍的游戏,需要广泛的知识库才能做出最佳决策。此主题图根据类别对基本系统设计主题进行分类。

  • 应用层:它由核心概念组成,例如可用性、可扩展性、可靠性和其他 NFR。还涵盖设计和架构主题,如 OOP、DDD、微服务、干净架构、模块化整体式应用等。
  • 网络与通信:它涵盖通信协议、服务集成、消息传递、实时通信和事件驱动架构。
  • 数据层:它涵盖了数据库系统的基础知识(架构设计、索引、SQL 与 NoSQL、事务等)、各种类型的数据库以及分布式数据库的细微差别(复制、分片、领导者选举等)。
  • 可扩展性和可靠性:这包括可扩展性策略(水平、无状态、缓存、分区等)和可靠性策略(如负载均衡、速率限制等)。
  • 安全性和可观察性:它涵盖了身份验证和授权技术(OAuth 2、JWT、PASETO、会话、Cookies、RBAC等)和安全威胁。可观测性区域处理监控、跟踪和日志记录等主题。
  • 基础设施和部署:处理CI/CD管道、容器化和编排、无服务器架构、IaC和灾难恢复技术。

要记住的 9 个干净代码原则

  • 有意义的名称:为变量和函数命名以揭示它们的用途,而不仅仅是它们的值。
  • 一个功能,一个责任:功能应该做一件事。
  • 避免使用幻数:将硬编码值替换为命名常量以赋予它们含义。
  • 使用描述性布尔值:布尔值名称应说明条件,而不仅仅是其值。
  • 保持代码 DRY:重复代码意味着重复的错误。尝试在有意义的地方重用 logic。
  • 避免深度嵌套:扁平化代码流以提高清晰度并减少认知负荷。
  • 注释为什么,而不是什么:解释代码背后的意图,而不是明显的机制。
  • Limit Function Arguments:太多参数会让人困惑。将相关数据分组到对象中。
  • 代码应该是不言自明的:编写良好的代码需要较少的注释,因为它读起来像一个故事。

SQL 联接的 4 种类型

SQL 联接根据相关列合并两个或多个表中的行。以下是您可以使用的不同类型的联接:

  • Inner Join

仅返回两个表之间的匹配行。它只保留公共数据。

  • Left Join

返回左表中的所有行和右表中的匹配行。如果左表中的行与右表中的行不匹配,则右表中的列将在该行中包含 NULL 值。

  • Right Join

返回右表中的所有行和左表中的匹配行。如果左表中不存在与右表中的记录匹配的记录,则结果中左表中的列将包含 NULL 值。

  • FULL OUTER JOIN

返回两个表中的所有行,为缺少的匹配项填充 NULL。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何部署服务
  • 系统设计主题图
  • 要记住的 9 个干净代码原则
  • SQL 联接的 4 种类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档