美文网首页
声明式设计

声明式设计

作者: 一舍 | 来源:发表于2020-03-24 09:46 被阅读0次

    Kubernetes的重要设计理念之一,即声明式设计(Declarative)。

    什么是声明式设计(Declarative)

    声明式设计(Declarative),指的是这么一种软件设计理念和做法,我们向一个工具描述我们想要让一个事物达到的目标状态,由这个工具自己内部去处理如何令这个事物达到目标状态。

    和Declarative(声明式设计)相对的是命令式设计(Imperative)或者过程式设计(Procedural)

    命令式设计(Imperative)或者过程式设计(Procedural),描述的是一系列的动作,这一系列的动作如果被正确执行,最终结果将达到我们期望的目标状态。

    声明式设计和命令式设计有什么区别

    声明式设计,是告诉计算机你想要什么,由计算机自己去设计执行路径,如SQL;

    命令式设计,是直接向计算机发出服务器要执行的操作命令;

    相比于更关注状态和结果的声明式设计方式,命令式设计方式更强调过程。

    声明式设计在分布式系统或者微服务架构场景下有什么优势

    命令式设计方式需要提前设想目标环境可能出现的各种状况,并加以处理。在分布式系统和微服务架构中,环境更加动态、复杂,想要实现状态的一致性、事务性和版本化,需要付出巨大的代价。

    如果使用声明式的设计思路,问题就会变得简单的多。编写一个描述文件,描述想要的结果,然后由系统解析这个描述文件,并自动生成预期结果。

    声明式设计的好处:

    • 描述文件易于理解,利于多人维护,便于文档化和版本管理,可以由开发人员参与编写
    • 天然具备事务性
    • 在不同目标环境可以产生一致结果
    • 重复执行不会产生不一致的结果
    • 天然符合不可变基础设施的理念

    声明式设计理念在分布式系统和微服务架构中如此重要,一位英国小伙伴在办公桌上钉了这样一个纸条时刻提醒自己

    declarative.jpeg

    相关文章

      网友评论

          本文标题:声明式设计

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