内部平台效应

发布: (2026年2月15日 GMT+8 22:48)
6 分钟阅读

请提供您希望翻译的正文内容,我将为您翻译成简体中文。

内部平台效应

内部平台效应是指软件架构师倾向于创建一个高度可定制的系统,以至于它成为他们所使用的软件开发平台的复制品——通常是一个拙劣的复制品。这会导致低效的解决方案,此类系统常被引用为反模式的例子。

Source:

示例

  • 基于插件的软件 – 许多文本编辑器和网页浏览器允许开发者创建插件,以复制通常由操作系统提供的功能。
    例如,Firefox 的插件机制已被用于构建 FTP 客户端和文件浏览器,从而在更受限的平台上有效地复现了一些操作系统特性。

  • 数据库 “EAV” 反模式 – 有些开发者试图通过在单个表中使用三列(entity_idkeyvalue)来规避 RDBMS。
    虽然实体‑属性‑值模型让你摆脱了 SQL 数据库的刚性模式,但它也放弃了数据库的许多优势:查询变得错综复杂,索引和查询优化器无法有效工作,数据有效性约束也不再被强制执行。结果通常是性能差、可维护性低。

  • 过度通用的 XML – 开发者有时会使用通用元素名(例如 <generic>),并在属性如 typevalue 中存储有意义的数据。
    这就需要在多个属性之间进行“连接”才能提取含义,使得 XPath 表达式更为复杂,评估更慢,结构验证的价值也大大降低。

  • Web 桌面 – 整个桌面环境(通常包括网页浏览器)可以在浏览器内部运行,而浏览器本身通常运行在操作系统提供的桌面之上。
    “桌面中的桌面”对用户来说很别扭,通常仅用于运行那些难以在终端用户系统上部署的程序,或用于隐藏外层桌面。

效果

软件开发者创建与其特定项目相关的自定义函数库是很正常的。当这个库扩展到包含一般用途函数,而这些函数的功能已经可以通过编程语言或平台本身获得时,就会出现 内部平台效应

由于这些新函数通常会调用多个原始函数,它们往往 更慢,而且如果编码不佳,还会 更不可靠。 需要引用。

另一方面,这类函数常常被创建出来,以在底层服务之上提供一个更简洁(且通常更可移植)的抽象层,而这些底层服务:

  • 接口笨拙,
  • 过于复杂,
  • 不可移植或可移植性不足,或
  • 与更高层的应用代码匹配度差。

适用场景

内部平台可以用于 可移植性特权分离——换句话说,它允许相同的应用程序在各种外部平台上运行,而不会影响由内部平台管理的 sandbox 之外的任何内容。

例如,Sun Microsystems 设计了 Java platform,以实现上述两个目标。

另见

References

  1. Celko, Joe (2011年2月1日). “SQL中的查找表”。 Simple Talk
    原文存档于2016年9月23日。检索于2016年4月25日。

  2. Peterson, Don (2004年9月8日). “查找表狂热”。 SQL Server Central
    检索于2023年5月1日。

外部链接

0 浏览
Back to Blog

相关文章

阅读更多 »