模型 海勒姆法则(用户依赖你未承诺的API功能)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。用户总会以你意想不到的方式使用你的产品。


1 海勒姆法则的应用

1.1 社交网络平台API的变更

一个流行的社交网络平台“Socialville”拥有数百万用户,它提供了一个API,允许开发者构建应用程序并与平台集成。一个名叫Alice的开发者发现了这个API,并看到了创建一个独特的照片分享应用“Snap n’ Share”的潜力。她投入了大量的时间和精力来开发这个应用,并仔细研究了API文档,理解了其限制和承诺的行为。

海勒姆法则的应用

  1. API的成功与依赖:随着“Snap n’ Share”迅速获得数百万用户,其他开发者也开始使用相同的API构建他们的应用。随着API用户基数的指数级增长,对API行为的期望和假设也随之增长。开发者开始依赖于API合约中未明确保证的某些未记录的怪癖和行为。

  2. API的更新与影响:Socialville的开发团队认识到需要对API进行一些改进,以增强API的安全性和性能。尽管这些更新是必要的,但团队未能考虑到这些变化可能对依赖其API的应用程序产生的意外后果。

Socialville团队的API更新导致了一些应用程序的意外中断,因为这些应用程序依赖于API的某些行为,这些行为并未在API合约中明确承诺。这个案例体现了海勒姆法则的实际影响,即在API被广泛使用时,即使是最不起眼的变化也可能破坏某些人的期望和依赖。

1.2 智能恒温器的用户依赖性

一家智能家居公司设计了一款智能恒温器,该设备可以通过用户的手机应用远程控制家中的温度。在产品设计初期,该应用允许用户设置一个“节能模式”,在该模式下,恒温器会自动调整温度以节省能源。

海勒姆法则的应用

  1. 产品设计与用户依赖:随着产品的普及,用户开始依赖于“节能模式”带来的便利和能源节省。一些用户甚至基于这一功能调整了自己的生活习惯,比如在外出时依赖恒温器自动降低温度以节能。

  2. 功能变更与用户影响:在下一代产品更新中,设计团队决定对“节能模式”进行优化,增加了一些智能学习功能,以更好地适应用户的行为模式。然而,这一变更无意中改变了恒温器在“节能模式”下的温度调节逻辑。

  3. 用户反馈与依赖性问题:变更后,一些用户报告称他们感觉家中的温度不再像以前那样舒适,因为他们已经习惯了旧的“节能模式”。这些用户对旧模式的依赖性导致了对新功能的不满和适应困难。

公司意识到,尽管他们认为只是进行了一次小的优化,但由于用户对原有功能的依赖,这次变更实际上对用户体验产生了重大影响。这个案例体现了海勒姆法则的实际影响,即产品设计的任何变化都可能影响那些依赖于产品当前行为的用户,即使这些行为并未在产品文档中明确承诺。

1.3 脑白金广告策略

脑白金是一款知名的保健品,其广告策略采用了“洗脑式”的广告语和动画小人跳舞的画面,这些元素深入人心,成为了许多消费者记忆中的一部分。这种广告策略在市场营销和广告领域中体现了海勒姆法则。

海勒姆法则的应用

  1. 广告语和形象的广泛传播:脑白金的广告语“今年过节不收礼,收礼只收脑白金”和动画小人跳舞的画面被广泛传播和记忆,形成了强大的品牌印象。

  2. 消费者依赖性:随着广告的广泛传播,消费者开始依赖于这种广告形式和内容,将其与脑白金品牌紧密联系在一起。

  3. 广告策略的变更影响:如果脑白金决定改变其广告策略,比如更换广告语或形象,那些已经习惯了原有广告的消费者可能会感到困惑或不满,因为他们的期望和依赖被打破了。

脑白金的广告策略成功地在消费者心中建立了强烈的品牌印象,但这也意味着任何对广告内容的更改都可能影响到消费者的期望和依赖,体现了海勒姆法则在市场营销和广告领域的应用。这个案例展示了即使是非技术领域,如市场营销和广告,也会受到用户对产品或服务的依赖性影响,任何改变都需要谨慎考虑其对消费者期望的影响。

1.4 在线课程平台的更新

一家在线教育平台提供了多种课程,包括编程、设计和商业管理等。该平台允许教师自由上传课程内容,并为学生提供课程访问。随着平台的普及,许多教师和学生开始依赖于平台的特定功能,如课程资料的特定展示方式、作业提交流程等。

海勒姆法则的应用

  1. 平台功能的依赖:教师和学生逐渐习惯了平台的现有功能,并在此基础上构建了自己的教学和学习流程。这些依赖关系并未在平台的服务合约中明确说明,但已成为用户行为的一部分。

  2. 平台更新与用户反馈:为了提升用户体验,平台决定更新用户界面和一些核心功能。然而,这些更新无意中改变了用户熟悉的操作流程,导致一些教师和学生感到不适应。

  3. 用户期望与实际变更的冲突:尽管平台的更新旨在提高效率和可用性,但由于用户已经依赖于原有的操作方式,任何改变都可能破坏他们的学习或教学计划。

平台的更新引起了一些用户的不满和投诉,因为他们发现自己需要重新适应新的操作流程,这影响了他们的教学和学习效率。这个案例体现了海勒姆法则在教育和培训领域的应用,即用户可能会依赖于平台或服务的某些非正式承诺的行为,任何变更都可能影响这些用户的期望和依赖。

1.5 月子中心护理依赖性争议

X市民周某夫妇为了让孩子得到更专业的照顾,与一家月子中心签订了母婴休养护理协议。不幸的是,原本健康的男婴在月子中心的第17天突然夭折。FY审理认为,月子期间婴儿的生存、生长及健康状况很大程度上依赖于看护者的看护能力和看护质量。

海勒姆法则的应用

  1. 服务依赖性:在这个案例中,周某夫妇依赖于月子中心提供的高标准护理服务,这种依赖性并未在合同中明确承诺,但已成为服务的一部分。

  2. 服务提供者的义务:月子中心作为服务提供者,需要尽到更加妥善的注意义务和更高标准的安全保障义务,这种义务在合同中可能未被明确,但在实际服务中被隐含。

  • 依赖性与法律责任:由于婴儿在月子中心的护理下突然死亡,FY判决月子中心承担医疗费、死亡赔偿金、精神损失费等共计57.79万余元,体现了对服务依赖性的法律认可和责任追究。

这个案例体现了海勒姆法则在医疗和健康服务领域的应用,即用户可能会依赖于服务提供者未明确承诺的某些行为或结果,这种依赖性可能导致法律责任和纠纷。月子中心未能满足周某夫妇对其服务的隐含期望,导致了严重的后果。

2 模型 海勒姆法则

2.1 什么是海勒姆法则?

海勒姆法则(Hyrum's Law)是软件工程中的一个原则,它指出:“当一个接口被足够数量的用户使用时,不论你在接口合约中做了什么承诺,都会有相应数量的情况出现,你会发现自己对某些人的期望是错误的。” 简而言之,这意味着随着API或接口的用户数量增加,用户可能会依赖于接口的某些行为或实现细节,这些可能并未在官方文档或合约中明确说明。因此,对接口的任何更改,无论多么微小,都可能影响到依赖这些接口的系统或开发者。

海勒姆法则(Hyrum's Law)不仅限于软件开发领域,它的原则也可以适用于其他领域或行业。比如:

  • 网络服务和API提供商:任何提供网络服务或API的公司都可能面临用户依赖于非正式文档化的行为,这可能导致服务更新时的兼容性问题。
  • 产品设计和用户体验:在产品设计中,用户可能会依赖于产品未明确承诺的某些特性或行为,这要求设计师在更新产品时考虑到这些隐含的期望。
  • 市场营销和广告:营销活动可能会无意中创建用户期望,如果后续活动未能满足这些期望,可能会导致品牌信任度下降。
  • 法律和合同:在法律领域,合同中的隐含条款可能被解释为对某些行为的依赖,这可能导致法律争议和解释问题。
  • 医疗和健康服务:在医疗服务中,患者可能依赖于未明确承诺的治疗效果或服务水平,这要求医疗服务提供者在沟通中更加谨慎和透明。
  • 教育和培训:在教育领域,学生和家长可能会对教育成果有超出课程明确承诺的期望,这要求教育机构在设定期望时更加明确和现实。

海勒姆法则的核心在于,随着用户数量的增加,用户对产品或服务的依赖和期望变得更加多样化和难以预测,这要求提供者在设计和沟通时考虑到这一点,以减少未来可能出现的问题和误解。

2.2 为什么会有海勒姆法则?

海勒姆法则(Hyrum's Law)之所以存在,可能的原因包括:

  • 广泛的接口使用:随着接口使用者数量的增加,接口的任何可观测行为都可能被某些用户依赖,即使这些行为并未在接口合约中明确承诺。
  • 隐含合约和假设:用户可能依赖于接口未明确保证的某些行为或假设,这些隐含合约和假设随着接口的广泛使用而形成。
  • 接口行为的多样性和难以预测:当接口被广泛采用时,对其的期望和依赖变得更加多样化和难以预测,不仅仅是文档中明确说明的内容,还包括用户根据对接口行为的理解所做的意外副作用和假设。
  • 抽象泄露:海勒姆法则体现了消费者对内部实现细节的依赖,即所谓的“抽象泄露法则”,用户可能会依赖于并非接口正式部分的实现细节。
  • 软件系统的熵增:随着时间的推移,对变化和维护的讨论必须意识到海勒姆法则,即软件系统的熵(无序度)永不减少,意味着对接口的任何更改都可能产生连锁反应。
  • 非功能性元素的依赖:用户可能依赖于接口的非功能元素,如响应时间,或者依赖于错误消息的内容等,这些依赖往往是隐式的,并未在接口合约中明确。
  • 文档和沟通不足:如果接口的文档和沟通不足,用户可能会基于自己的理解做出假设,这些假设可能与接口的实际行为不一致,导致对接口的依赖出现偏差。

海勒姆法则提醒软件开发人员在对公共接口进行更改时需要谨慎,因为用户可能依赖于未明确指定的行为,这可能导致意外的破坏和后果。

3 模型简图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/464314.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust 力扣 - 1423. 可获得的最大点数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 题目所求结果存在下述等式 可获得的最大点数 所有卡牌的点数之和 - 长度为(卡牌数量 - k)的窗口的点数之和的最小值 我们遍历长度为(卡牌数量 - k)的窗口&#…

如何对LabVIEW软件进行性能评估?

对LabVIEW软件进行性能评估,可以从以下几个方面着手,通过定量与定性分析,全面了解软件在实际应用中的表现。这些评估方法适用于确保LabVIEW程序的运行效率、稳定性和可维护性。 一、响应时间和执行效率 时间戳测量:使用LabVIEW的时…

「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现

本篇将带你实现一个滑动选择器应用,用户可以通过滑动条选择不同的数值,并实时查看选定的值和提示。这是一个学习如何使用 Slider 组件、状态管理和动态文本更新的良好实践。 关键词 UI互动应用Slider 组件状态管理动态数值更新用户交互 一、功能说明 在…

docker pull 拉取镜像失败,使用Docker离线包

1、登录并注册Github,然后在Github中搜索并打开“wukongdaily/DockerTarBuilder” 项目,在该项目主页点击“Fork”。 然后点 “Create Fork”,将项目创建到自己的Github主页。 2、接着在自己创建过来的这个项目中点击“Actions” 3、然后…

使用JdbcTemplate 进行数据库的增、删、改、查

一、概述 1、为什么选择 Spring Boot ? Spring Boot 是目前 Java 社区最流行、最有影响力的技术之一,也是下一代企业级应用开发的首选技术。Spring Boot 由 Spring 衍生而来,继承了其所有的有点,为开发者带来了巨大的便利。 “We use a lo…

EHOME视频平台EasyCVR萤石设备视频接入平台视频诊断技术可以识别哪些视频质量问题?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。萤石设备视频接入平台EasyCVR不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能,还支持多种主流标准协议,如GB28181、GB35114、RTSP/Onvif…

这款Chrome 插件,帮助我们复制网页上不能复制的内容

前言 最近在上网查找博客时,经常遇到想要复制网页上的内容,但是,一点击复制,就会弹出来各种各样的弹框,导致复制不能继续,非常麻烦。这时,我想到了一个办法,那就是下载安装一个chro…

数字后端零基础入门系列 | Innovus零基础LAB学习Day8

###LAB15 Detail Routing for Signal Integrity, Timing, Power and Design for Yield 这个章节虽然标题有点长,但不要被它吓到,其实这个章节就是Innovus工具的绕线Routing。只不过这个阶段做Route不是仅仅是把所有的逻辑连接,用实际的金属层…

ISUP协议视频平台EasyCVR视频融合平台接入各类摄像机的方法

安防视频监控ISUP协议视频平台EasyCVR兼容性强、支持灵活拓展,平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 想要将摄像机顺利接入EasyCVR平台,实现视频监控的集中管理和分发&#x…

QEMU学习之路(4)— Xilinx开源项目systemctlm-cosim-demo安装与使用

QEMU学习之路(4)— Xilinx开源项目systemctlm-cosim-demo安装与使用 一、前言 项目说明:https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/862421112/Co-simulation 操作系统:Ubuntu 20.04.6 LTS gcc版本:9.4…

【解决办法】无法使用右键“通过VSCode打开文件夹”

个人博客:苏三有春的博客 前言 作者的编程环境为VScode,工作时常使用VScode打开整个工程文件夹。如果先打开VScode再从VScode中选择文件夹打开效率太慢,作者一般使用的方式是右键文件夹,直接选择"通过code打开文件夹"…

Java环境下配置环境(jar包)并连接mysql数据库

目录 jar包下载 配置 简单连接数据库 一、注册驱动(jdk6以后会自动注册) 二、连接对应的数据库 以前学习数据库就只是操作数据库,根本不知道该怎么和软件交互,将存储的数据读到软件中去,最近学习了Java连接数据库…

ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录 一、搭建SkyWalking 1.1 版本选择 1.2 下载安装 1.3 配置启动 1.4 SkyWalking UI介绍 二、Springboot项目使用 2.1 Agent下载 2.2 Agent配置skywalking oap地址 2.3 IDEA配置Agent地址 2.4 生成的ES索引介绍 三、在kibana上查看日志 四、问题和解决 3.1 日志…

读数据工程之道:设计和构建健壮的数据系统28数据服务常见关注点

1. 使用场景 1.1. 为分析和BI,也就是统计分析、报表和仪表板提供数据服务 1.1.1. 是数据服务最为常见的目标 1.1.2. 这些概念的提出早于IT和数据库,但是它们对于了解业务、组织和财务流程的利益相关者来说仍然至关重…

Linux中断、软中断、MMU内存映射-深入理解

中断: Linux中,中断上半部不能嵌套,如果一直保存上下文,栈可能会溢出。中断上半部处理紧急事情,下半部处理非紧急事情。下半部通常通过软中断来实现。在上半部执行完后会执行下半部的软中断,如果囤积了A和…

MySQL之JDBC入门详解

01-JDBC入门 一、JDBC概念 jdbc : java database connection , java数据库连接 jdbc是sun公司定义的java程序访问数据库的规范。 二、JDBC操作需要6步 三、入门程序 1、使用eclipse打开一个新的工作空间 2、切换到java视图界面 3、创建java工程:01-jdbc-helloworl…

Vue3版本的uniapp项目运行至鸿蒙系统

新建Vue3版本的uniapp项目 注意,先将HbuilderX升级至最新版本,这样才支持鸿蒙系统的调试与运行; 按照如下图片点击,快速升级皆可。 通过HbuilderX创建 官方文档指导链接 点击HbuilderX中左上角文件->新建->项目 创建vue3…

html简易流程图

效果图 使用htmlcssjs&#xff0c;无图片&#xff0c;没用Canvas demo: <!DOCTYPE html> <html> <head><link href"draw.css" rel"stylesheet" /><script src"draw.js" type"text/javascript"></…

人工智能原理实验一:知识的表示与推理实验

一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程&#xff0c;通过实验&#xff0c;帮助学生更好地掌握人工智能相关概念、技术、原理、应用等&#xff1b;通过实验提高学生编写实验报告、总结实验结果的能力&#xff1b;使学生对智能程序、智能算法等有…

针对解决前后端BUG的个人笔记

1-IDEA Q&#xff1a;Required Java version 17 is not supported by SDK 1.8. The maximum supported Java version is 8. A: 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https…