注册/登录
移动端
 
首页 > 留学资讯 > 澳洲留学 > 澳洲墨尔本大学COMP90048 声明式编程

澳洲墨尔本大学COMP90048 声明式编程

作者:海马 发布时间:2023-08-15 10:31

声明式编程语言提供了优雅而强大的编程范式,每个程序员都应该掌握。COMP90048主要介绍声明式编程语言和技术。这篇文章为大家带来澳洲墨尔本大学COMP90048 声明式编程。COMP90048

一、什么是声明式编程?

目前,声明式编程是数据库、模板和配置管理等广泛而多样领域的主流范式。

简而言之,声明式编程包括指示程序需要做什么,而不是告诉它如何做。在实践中,这种方法需要提供一种特定领域的语言(DSL)来表达用户的需求,并将用户与实现预期最终状态的底层结构(循环、条件、赋值)隔离开来。

虽然这种范式比它所取代的命令式方法有了显著的改进,但我认为声明式编程有很大的局限性,我将在本文中探讨这些局限性。此外,我还提出了一种双重方法,既能抓住声明式编程的优点,又能消除其局限性。

注意:本文是我个人与声明式工具斗争多年的结果。我在本文中提出的许多主张并没有得到彻底证实,有些甚至只是表面现象。如果要对声明式编程进行适当的评论,需要花费大量的时间和精力,而且我还必须重新使用其中的许多工具;但我并不想这样做。这篇文章的目的是与你分享我的一些想法,不带任何偏见,并展示对我有用的东西。如果你曾在声明式编程工具上挣扎过,你或许能找到喘息的机会和替代方案。如果你喜欢声明式编程范式及其工具,请不要把我的话当真。

二、声明式编程的优点

可以说,最成功的声明式编程工具是关系数据库(RDB)。它甚至可能是第一个声明式工具。无论如何,关系数据库展现了我认为是声明式编程典型的两个特性:

特定领域语言(DSL):关系数据库的通用接口是一种名为结构化查询语言(Structured Query Language)的 DSL,通常称为 SQL。

DSL 向用户隐藏了底层:自从 Edgar F. Codd 发表关于关系数据库的原始论文以来,人们就清楚地认识到,这种模型的力量在于将所需的查询与实现查询的底层循环、索引和访问路径分离开来。

在使用 RDB 之前,大多数数据库系统都是通过命令式代码访问的,而命令式代码在很大程度上依赖于记录顺序、索引和数据物理路径等底层细节。由于这些元素会随着时间的推移而变化,代码经常会因为数据结构的某些潜在变化而停止工作。由此产生的代码很难编写、调试、阅读和维护。我敢断言,这些代码中的大部分都很可能是冗长的,充满了众所周知的条件、重复和微妙的、依赖于状态的错误。

面对这种情况,RDB 为系统开发人员带来了巨大的生产力飞跃。现在,你拥有的不再是成千上万行命令式代码,而是一个定义明确的数据方案,外加数百(甚至数十)个查询。因此,应用程序只需处理抽象、有意义和持久的数据表示,并通过强大而简单的查询语言进行接口。RDB 可能会将程序员以及雇用他们的公司的工作效率提高一个数量级。

虽然以上都是声明式编程常被提及的优点,但我想把它们浓缩为两个品质,作为我提出替代方法时的指导原则。

1.为特定领域量身定制的高级层:声明式编程使用其适用领域的信息创建高级层。很明显,如果我们要处理数据库,就需要一套处理数据的操作。上述七大优势中的大部分都源于创建了一个精确针对特定问题领域的高级层。

2.Poka-yoke(防错):针对特定领域的高级层隐藏了实现过程中的必要细节。这意味着你犯的错误要少得多,因为系统的底层细节根本无法访问。这种限制消除了代码中的许多错误。

海马课堂专业课程辅导,2100+严选硕博学霸师资,针对学生的薄弱科目和学校教学进度,匹配背景相符的导师,根据学生情况进行1V1专属备课,上课时间灵活安排,中英双语详细讲解课程中的考点、 难点问题,并提供多方位的课后辅导,辅助学生掌握全部课程知识,补足短板。

相关热词搜索:

阅读原文:https://www.highmarktutor.com/news/14526_62.html

版权作品,未经海马课堂 highmarktutor.com 书面授权,严禁转载,违者将被追究法律责任。

热门课程推荐

hmkt088

欢迎咨询