AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

架构妄想

  • 2011-10-02
  • 本文字数:990 字

    阅读完需:约 3 分钟

William Vambenepe 的最新文章, AJAX + REST 是最新的架构妄想,让我们回想起了一个具有 15 年历史的架构,它曾被寄期望对 Web 产生革命性的影响。

在该架构里,Web 服务器将返回包含全部数据的 XML 文件,与 XML 一道,还会返回一个 XSLT 文件(用于描述如何将 XML 转换成 HTML)。浏览器将依此处理 XML 数据,显示最终的 HTML。搞定!该方式将带来很多好处,优于老式的“服务器生成 HTML”模型。XML 可以被其他应用方便地使用(不仅仅是人类),不同的 XSLT 可被用来将内容适配到各种客户端平台。

光阴飞逝,但这种理念其实从未真正实现。现在,我们又快速地转向 Ajax:

XML 文档还在,尽管它通常被称为 JSON。XSLT 现在则是一大堆 JavaScript。比起 XSLT 模型,这种模型有许多优势……它更灵活,可以实现小规模更新,以及部分页面刷新等等。但是,它是否也能够让架构保持清晰,使数据 API 与表现逻辑相分离呢?

Vambenepe 解释了原因,尽管它看上去优雅并包含了所有的架构优点,但该模型在大多数情况下并不实际:

相同服务的客户端支持多种交互模型,若不无限制的蔓延开来,单个 API 很难满足所有这些模型的需要(这里,所谓“单一 API”,其实就是一块遮羞布)。但若是想让 API 保持外观简洁,你最终可能就会得到交互频繁的应用。

但是在 Vambenepe 看来,这仅仅是该方法诸多问题中的一个。他指出的另一个大问题是该方法的事实:

……摒弃集成了浏览器代码和服务器代码的架构……不是所有 Web 开发者都认为他们的客户端框架和服务器框架是两套工具。将它们整体作为一个预先装配好的工具使用或许不会得到最优的代码,但可能还是可以最优利用你的开发资源。

尽管 Vambenepe 有强有力的论据,他的帖子还是遭到了质疑。什么才是正确之路?为现有 UI(如 GWT 风格)创建 / 生成单独的 REST API?一方面,这种方法简化了 UI 实现;另一方面,每个 UI 都要有一个新 API。这种方法的伸缩性更好吗?哪个代价更高?实现 UI 集成,还是后端 API?由这个帖子还产生了另一个更严肃的问题:什么是正确的设计方法?先实现后端 API,然后设计多个使用它的 UI;还是开始从 UI 开始设计,然后再定义支撑它的 API?传统来看,API 实现的代价似乎更高,但 API 本身要比 UI 更稳定。

因此,没错,满足各种需求的单一 API 看起来是架构妄想。但是,一组设计良好、轻巧可重用的 API 可被用来作为许多 UI(Ajax)实现的基础。

查看英文原文: Architectural Mirages

2011-10-02 03:413166

评论

发布
暂无评论
发现更多内容

向量数据库——AI时代的基座

陈老老老板

#人工智能

使用 VuePress 和 Vercel 打造个人技术博客:实现自动化部署

小白Coding日志

GitHub 个人博客 自动部署 Vuepress2.X Vercel

一点资讯“一号市集”广州开市 赋能车企营销新市景

科技热闻

BetterDisplay Pro for Mac(显示器校准软件)

展初云

Mac软件 BetterDisplay

在你购买小间距led显示屏时需要注意这些事项

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

AWS云服务器EC2实例实现ByConity快速部署

乌龟哥哥

AWS

Parallels Desktop 18 虚拟机 支持M1

彩云

虚拟机 Parallels Desktop 18

软件测试/测试开发丨人工智能在软件测试领域的崭新前景

测试人

人工智能 软件测试

「智造」第8期:浅谈国内外对智能制造体系的定义和标准

用友BIP

智能制造

如何构建更简洁的前端架构?

互联网工科生

前端 前端架构

OpenHarmony Meetup北京站招募令

OpenHarmony开发者

CSS 新特性,建议收藏!

秃头小帅oi

CSS 前端

AWS向量数据库Amazon OpenSearch Service使用测评

查拉图斯特拉说

亚马逊云科技 向量数据库 opensearch service

SynVision AI: 虚拟助手的革命

Synvision.AI

人工智能 AI 智能助手 问答助手 聊天助手

Amazon EC2 新手初探:操作我们的实例

王强

Amazon EC2 亚马逊云服务器

NFTScan | 11.13~11.19 NFT 市场热点汇总

NFT Research

NFT\ NFTScan nft工具

无服务器开发实例|微服务向无服务器架构演进的探索

亚马逊云科技 (Amazon Web Services)

Serverless 微服务 API Amazon Lambda Amazon API Gateway

BetterDisplay Pro for Mac v2.0.11激活版

加油,小妞!

BetterDisplay Pro 显示器校准工具

Wireshark网络工具是什么?

小魏写代码

ON1 Photo RAW 2024 for Mac(RAW照片编辑软件)

展初云

Mac 照片编辑软件

Mac电脑视频剪辑Final Cut Pro激活版中文最新

胖墩儿不胖y

Mac软件 视频处理工具 视频剪辑软件 视频编辑器

现身说法:2023中级程序员进阶之路

伤感汤姆布利柏

程序员 程序员成长

Xmind for Mac(思维导图软件) 24.01中文版

加油,小妞!

思维导图 mac软件下载

Microsoft Remote Desktop for Mac 远程桌面连接工具

彩云

远程桌面连接 microsoft remote desktop

Amazon EC2 新手初探:更多实例连接方式

王强

Amazon EC2 亚马逊云服务

使用1688开放平台API接口获取商品详情信息

Noah

架构妄想_REST_Boris Lublinsky_InfoQ精选文章