美文网首页
系统设计的原则

系统设计的原则

作者: Robin92 | 来源:发表于2022-05-11 11:39 被阅读0次

好的系统是迭代出来的,个人对于系统设计原则的理解也从个人成长的迭代进度来考虑。

  • 幂等原则
  • 可重复原则
  • 可扩展原则
  • 可追溯原则
  • 反馈原则
  • 无状态原则
  • 切分原则
  • 备份原则

在最初根据任务来写 API 阶段时,主要考虑:

幂等原则

每个 API 重复访问结果一致。
如用 Restful API时 Put 请求修改资源指定修改后的结果是什么样,而不是根据当前资源进行 switch 类的切换。

可重复原则(DRY 原则)

开发可复用的逻辑块,而不是一直 Copy-Paste。

可扩展原则

当需求变化或使用技术进行变化的时候,都会引发代码的变动,如果能在写代码之初就能考虑到扩展性,那遇到变化的时候会有所准备。

可追溯原则

自己写完 API 一定要有观测、调试的方法,最基本的就是日志,日志的输出位置和分级就很重要。l
根据日志的输出可以追溯到某个业务链(Request-ID)执行逻辑是什么样的。
根据日志的分级,可以筛选出重要的和不重要的信息,如按以下原则:

  • Info 的用于普通记录;
  • Warning 的用于记录警告性的,原则上要引起注意,但可以不修复的日志;
  • Error 级别的日志都是要修复处理的。

反馈原则

如 HTTP 返回,用状态码 + 辅助信息向请求者进行反馈,尤其是 4xx 的错误,返回具体直观的描述信息可以方便他人和自己定位问题。
但同时也要考虑隐私性,如返回用户不存在和用户密码错误可能会招致一些攻击。如果用输入验证码能 cover 住这些攻击的话就可以放开一些。


当自己有能力负责一个模块后,涉及到表的结构设计和整个系统如分布式的考虑,要考虑:

无状态原则

每个服务不记录自己请求的状态,这样可以方便地进行复制扩展。
当然,如果像 Sip 这样本身有状态的协议,就必须有状态了,需要从系统架构方面增加有会话状态的负载均衡来处理。

切分原则

当业务压力大或系统复杂的时候,就需要考虑按一定规则进行分片(分成多个微服务、或仅一个服务但各自处理不同)。

分片原则按不同的维度有不同的策略,如:

  • 按地域切分(根据用户 IP 所在位置)
  • 按系统切分(分服务,如订单系统、商品系统等)
  • 按功能切分(可以分服务,也可以服务复制后将某 URL 固定定位到某服务下,如个人订单、商业订单等)
  • 服务化原则(使用节点集群的服务化,用集群提供服务需要考虑:自动注册和发现,熔断、限流、降级,隔离和恢复等)
  • 按读写原则切分,将热资源和冷资源进行切分,热资源使用更多的系统资源,或进行服务复制,冷资源使用更少的资源或复制

在表的设计上也能体现切分的原则。

备份原则

当服务变大的时候,新人很难很快地了解业务以及代码,这时就发现备份原则的重要性。
要注意将业务文档化,将配置信息文档化等等,以及还要考虑人才流失的人员备份。

相关文章

  • 系统设计原则

    什么是原则 设计原则是构成任何优质产品基础的一系列考虑因素。 都有什么样的原则 SOLID: 面向对象的原则 ht...

  • 系统设计的原则

    好的系统是迭代出来的,个人对于系统设计原则的理解也从个人成长的迭代进度来考虑。 幂等原则 可重复原则 可扩展原则 ...

  • 工作那么久,才知道的 SOLID 设计原则

    认识 SOLID 原则 无论是软件系统设计,还是代码实现,遵循有效和明确的设计原则,都利于系统软件灵活可靠,安全快...

  • 架构中的设计原则

    架构中的设计原则 在使用面向对象的思想进行系统设计时,前人共总结出了7条原则:单一职责原则、开闭原则、里氏替换原则...

  • Material Design与IOS Human Interf

    一、Material Design设计原则 Material Design是谷歌Android系统的视觉设计语言,...

  • [Code Design] 六大设计原则之"开闭原则&

    六大设计原则之开闭原则 定义 开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开...

  • [系统设计] TinyUrl

    系统设计SNAKE原则 Scenario: case/interface 情景,case,functionalNe...

  • Salesforce Lightning 设计原则:The Sa

    Salesforce Lightning 设计系统包括创建符合 Salesforce Lightning 原则、设...

  • CAP理论介绍

    CAP原则 CAP原则又称CAP定理,指的是在分布式系统的设计中,没有一种设计可以同时满足 Consistency...

  • 秒杀系统设计总结(持续更新中。。)

    一、前言 秒杀系统其实是一个比较复杂的设计,文章先介绍设计秒杀系统的思路脉络和设计系统的原则。后面章节再详细介绍使...

网友评论

      本文标题:系统设计的原则

      本文链接:https://www.haomeiwen.com/subject/cyjdurtx.html