Title Text:”Oh, you’re using their Chrome APP, not their Chrome EXTENSION. They’re very similar but one handles window creation differently.” is a thing I hope I can stop saying soon.<
Origin:https://xkcd.com/1479/
https://www.explainxkcd.com/wiki/index.php/1479:_Troubleshooting
这部漫画围绕着现代软件的复杂性及其有时低质量。用户体验的许多问题不是显而易见或直接的,并且用于纠正问题的根本原因的方法需要调用恰好导致期望的副作用的不相关的动作。了解非显而易见的原因,所需的副作用以及如何触发导致它的无关特征需要记忆大量的“愚蠢的计算机知识”而不是软件的一般原则和逻辑调查。
漫画中描述了对软件问题进行不合逻辑修复的一个特定示例。在这里,Cueball正在努力帮助Hairy解决无法响应任何鼠标点击的程序问题。 Cueball推测这不是由于软件的异常行为(例如冻结),而是因为用户或软件本身已经在主屏幕区域之外打开了模式对话窗口,在那里无法看到。模态对话框窗口通过占用用户输入的唯一焦点来阻止对应用程序其余部分的访问。它们是有效的GUI工具,在软件需要用户输入后才能继续使用。然而,打开这样的窗口并将其放置在可见屏幕区域之外(“屏幕外”)将使窗口既不可访问又对用户不可见,从而阻止它们关闭窗口并重新获得对软件的访问。
修复此类问题的一个非显而易见的方法是切换屏幕分辨率;这本身并没有解决问题,但分辨率开关也强制操作系统重绘桌面上的所有窗口,一些操作系统也将验证所有窗口的坐标并调整这些坐标,以便窗口不会结束在屏幕外区域。在这种情况下,它被用作解决问题的副作用,因为操作系统很少提供其他更明显的方法来将屏幕外窗口带回可见区域。
通过说“为什么这甚至可能?”,Hairy指出从根本上解决这个问题的最佳方法是操作系统开发人员防止在屏幕外创建窗口,抢先避免整个窗口管理问题可以发生之前的类别。例如,这样的机制可以在窗口创建期间验证坐标,从而确保对话窗口始终是可访问和可见的。这种机制存在于OS X上,但不存在于Windows上,大多数计算机在此漫画发布时运行。
通常,可以按照以下优先顺序(从最佳到最差)对所讨论问题的可能解决方案进行排序:
(最佳):让OS程序员在窗口创建期间实现自动坐标调整
让OS程序员提供易于访问和可见的控制,以调用所有窗口的坐标调整
让OS程序员提供一个快捷方式来调用所有窗口的坐标调整
(最糟糕的是,在漫画中描述):让用户依赖正确实现的屏幕分辨率更改机制的副作用来反直觉地解决问题。
标题文本指的是两个不同且不相关的软件包可能具有容易混淆的相似名称的事实,即使这两个软件包的用法和特征可能变化很大,并且知道使用一个软件包而不是另一个软件包的含义是“愚蠢的计算机知识“。了解Chrome应用程序,从Chrome网上商店交付的手机应用程序式应用程序(旨在在Chrome浏览器中运行)和Chrome扩展程序(Chrome浏览器中安装的浏览器扩展程序,从Chrome交付)之间的区别旨在修改浏览器本身行为的网上商店是一种微妙的区别,对于那些可能只有他们正在寻找的软件名称的用户来说,这些区别可能并不明显。 Google环聊是一个同时作为Chrome应用和Chrome扩展程序存在的产品的示例,其窗口与普通的Chrome浏览器窗口相比更加相似;而且令人困惑的是,可以通过应用程序和另一个带有扩展程序的帐户登录,特别是当您的雇主或学校使用Apps for Business /Education时。
在许多情况下,Randall(或Cueball,他的化身)喜欢帮助人们使用他的特定知识(参见208:正则表达式)。但当诀窍是“愚蠢的”时,他宁愿程序员明确地解决问题,所以他再也不必依赖这个技巧了。