为什么我不能编辑我的推文?!推特应该允许这样做。
这很简单,对吧?CRUD 应用(创建、读取、更新和删除)是应用程序构建的 101!多么严重的疏忽。但是等等。作为一个有趣的书呆子练习,让我们思考一下这样一个功能对推特团队来说可能需要什么。 我不在那里工作,也没有任何内部消息,所以这一切都是为了理解应用程序开发的假设。
- 你应该能够随时编辑你发过的任何推文吗?
- 或者你应该只有几分钟的时间来做,然后它就锁定了?
- 你是提供给所有人,还是选择加入,还是选择退出?
- 你应该能够编辑推文或直接消息吗?
- 编辑推文是什么样的?它可以简单明了?它是否需要额外的 UI?你是如何显示该 UI 的?它值得额外的 UI 吗?
- 推文是立即发布到公共时间线,还是在编辑宽限期后发布?
- 如果有人收藏了一条推文,然后它被编辑了怎么办?它会去掉收藏吗?例如,最初说“我喜欢煎饼!”的推文,后来可能会被编辑为“收藏这条推文的人喜欢俱乐部海豹!”(或者更糟糕)。
- 同样的问题,对于转发。以及回复。
- 这是否有任何社会或道德含义?
- 编辑推文如何影响使用推特时的整体感觉?时间延迟会影响这种感觉吗?人们会对推文有不同的看法吗?
- 编辑推文是否会使被黑客攻击的账户成为更危险的前景?
- 第三方客户端如何处理编辑推文?是否有公开的 API?这有多复杂?
- 或者你只通过网络提供编辑推文的功能?这种举动开发者们会怎么想?
- 如何确保第三方编辑提供达到标准的 UX?这重要吗?
- 如果推文没有时间延迟,你是如何通过 API 处理编辑后的推文的?—— 你如何告诉第三方客户端更新他们正在显示的推文,而不是显示一个新的推文?
- 编辑后的推文去哪里了?回到时间线顶部,还是留在原地?
- 应该在视觉上显示一条推文是否已被编辑吗?你是如何在第三方应用程序中强制执行此功能的?
- 这里是否有法律意义?如果有人发布了非法内容,然后将其更改为合法内容怎么办?
- 编辑推文是否会打开任何不良行为?可以预料到什么样的滥用?
- 基础设施方面有哪些问题?所有修订版都保存了吗?这会增加多少额外的 Web 服务器和数据库负载?
- 你是否像推文创建那样对编辑进行限制?
- 这个功能到底实际被多少人请求?仅仅是少数意见领袖吗?
- 如果推特走这条路,对他们有什么好处?更快乐的用户?这是保证吗?
- 这将需要多少时间、精力和资金?(设计、开发、UX、测试等)他们准备为产品生命周期提供支持吗?
- 团队是否喜欢这个想法,或者它会很累人,不好玩?
我们可能可以自己将这个列表翻倍,而这仅仅是从外部观察。软件很难。明智、负责任地使用该软件的功能更加困难。
哇!这真是看待问题的好方法!
我希望客户能知道/理解这一点!
以及管理者...
以及设计师...
倒数第三个要点。
如果编辑推文是让用户更快乐的原因(再次强调,如果真是这样),那么列表中的其余要点,包括我们如果将列表翻倍会出现的要点,都只是开发团队面临的挑战。
从用户的角度来看,就像推特把他们的问题转移到我身上一样。
作为开发者,也是作为用户,我喜欢推特的工作方式(不让我编辑我的推文)。
但是你,Chris,我自己,以及可能大部分 CSS-Tricks 的读者,都不是推特规模的产品所针对的目标用户群体。如此庞大的产品/品牌/应用,依赖于其大部分用户,从统计学上讲,我想他们就像我的母亲,或者任何其他只知道在浏览器中输入“twitter.com”的人。
你列表中所有(对于开发者来说再正确不过)的担忧,对他们来说并不适用。
继续努力,Chris!:)
你说得完全正确,我认为 Chris 会同意你的观点。我从这篇文章中得到的启示是,我们的社区需要从“来吧,这太容易了”的心态中退一步,认识到每个决定,无论多么微不足道,都可能对整个应用程序产生巨大的影响。所有好的决定都会经过一个过程,在这个过程中,这些类型的问题会得到公开解决,并在公司更高层、负责该功能的团队或个人设计师/开发人员那里得到解决。
我想,简而言之,代码可能很简单,但决定并不简单。
Chris,这里提出了一些很好的观点。尤其是关于那些被收藏后又编辑的推文。我不认为推特会很快添加这个功能,我相信他们已经考虑过这个问题了。显然,他们做出了不允许多次编辑推文的决定。归根结底,如果你想更改推文中犯的错误,你可以直接删除它,然后再添加。当然,这样做会使原始推文获得的所有转发或收藏无效。
编辑推文真是太棒了,但人们会滥用这种选项。
哈哈,好帖子。我经常遇到这样的情况:我想做点什么,然后在“思考它是如何做成的”过程中,我意识到它是多么困难。
你错过了一个关键问题:“目标是否可以通过其他功能实现?”
在推特的情况下,是的,你可以删除一条推文并重新发布。或者只是发布一个更正。也许还有一个额外的问题是“编辑推文与替代方法相比是否增加了可用性?”
以这种方式考虑问题并没有考虑到恶意行为。这是一个愚蠢的例子,但你可以发一条类似“我喜欢新的 CSS-Tricks 网站!”的推文。你的同事看到了,然后回复说“你完全正确!”然后你将这条推文编辑为“@yourcoworker 讨厌可爱的小宝宝!”。你可以很容易地看到,如果以错误的方式使用,这可能会失控并毁掉某人的声誉。
虽然你的问题是有效的,但我可能会补充说,这些替代方案是否以用户友好的方式实现了目标。你提出的替代方案,虽然有些有效,但与编辑帖子本身并不相同。
删除并添加一个新的帖子会将其从历史背景中移除,并可能改变整个故事线。这也可能会在向其他服务进行联合发布时引发问题。在我看来,这不是一个很好的解决方案。
发布一个更正,虽然它保持了许多删除时间线问题的准确性,但它也不是理想的。发布更正是否会保留对原始帖子的链接?如果有人使用原始帖子,尤其是联合发布的帖子,那么更正永远不会被看到可能性有多大?
就我个人而言,我将投票支持编辑,并提供一个按钮来查看原始帖子,并将原始帖子与 API 调用中的编辑一起传输。但是,正如 Chris 的列表所指出的,这将是一项艰巨的任务。
虽然你的问题是有效的,但我可能会补充说,这些替代方案是否以用户友好的方式实现了目标。你提出的替代方案,虽然有些有效,但与编辑帖子本身并不相同。
删除并添加一个新的帖子会将其从历史背景中移除,并可能改变整个故事线。这也可能会在向其他服务进行联合发布时引发问题。在我看来,这不是一个很好的解决方案。
发布一个更正,虽然它保持了许多删除时间线问题的准确性,但它也不是理想的。发布更正是否会保留对原始帖子的链接?如果有人使用原始帖子,尤其是联合发布的帖子,那么更正永远不会被看到可能性有多大?
就我个人而言,我将投票支持编辑,并提供一个按钮来查看原始帖子,并将原始帖子与 API 调用中的编辑一起传输。但是,正如 Chris 的列表所指出的,这将是一项艰巨的任务。
Chris 观察得真敏锐。我在开发在线应用程序时经常遇到这种情况。我认识到这种情况的主要领域是数据库的开发。客户说“好吧,我们需要这些字段”,而我总是告诉他们,随着我开始设计应用程序,字段大小、布局和方案通常会发生变化并扩展,因为无论你多么努力,你永远无法在开始时想到一切。像 Chris 提到的许多想法一样,一个小小的想法就会浮出水面,它会在数据库中添加一些东西,这会改变一切。一个改变可能是一个彻底的改变。我在我创建的每一个数据库应用程序中都经历过这种情况。
道德在于为开发数据库模式分配足够的时间。这是支柱。
感谢你的分享。我会将它转发给我们的内部客户,向他们展示
“为什么你不能直接做 X?”永远没有那么简单。但当然,然后他们会说——“推特和它有什么关系?”
说真的,一旦设计/开发人员说“好吧,如果真的那么容易,你来弄清楚 UI”,那么请求的功能似乎就不那么重要了。
赞同这篇文章。
有趣的思想实验。人们很容易忘记,让推特看起来如此简单需要付出很多努力。
接口的简单性与代码的复杂性呈反比,这似乎很奇怪?这是真的,但它在我的脑海里不太合逻辑。
这就是为什么他们不允许你编辑推文。如果你迫使用户删除并重新编写推文,那么你就会遇到更少的法律麻烦和更少的麻烦,因为你不会被困在会议中试图做出这些决定。
我认为功能是取决于效益/成本比的 - 它会改变生活吗?更重要的是(对像 Twitter 这样的公司来说),它会为我带来多少潜在的收益或损失?我认为对于 Twitter 来说,成本远远超过了收益。
此外......如果你在删除之前复制了推文文本,你可以将其粘贴回来并编辑它,这基本上是一样的,也许只是不像我们习惯的那样方便。
也许这解释了为什么 YouTube 在很多方面都很糟糕。除了他们实际上拥有很多现在已经消失的优秀功能。
我希望我的老板能理解这一点。几个月前,他提出了一项功能请求,需要两个独立的数据库通过共享密钥进行通信。这本身并不难实现......但随之而来的是必须量化这种通信的必然问题,完全打乱了整个过程。
通信在什么时候发生?
通信在什么时候必须停止?
发送的内容的参数是什么?
一个数据库的内容是否比另一个数据库的内容具有“优先级”?如果有,什么时候/如何/为什么?
我的老板没有考虑过任何这些问题 - 他只是期望我能做到。如果不了解请求的范围,很难做到。
非常具有启发性。我同意上面人们所说的话,试着告诉我的客户这一点。“当我想要的时候,按照我想要的方式,一切都可以完成吗?” 不行!
如果我们谈论的是另一个游戏呢?道德规范会发生变化,自发性会消失。如果自发性被意图所替代。
一个工具被设计来表达自发性,突然之间,政客、推销员、营销人员模拟了自发性。他们需要编辑什么?
这是一个合乎逻辑的结果:反思而非自发性。没有“悔改”的可能。
在我所有人的眼中,我的游戏都被隐藏了。完美的虚假信息工具。
非常好的观点,一个有趣的思想实验。但我最终认为,这些问题应该通过向一定比例的用户群推出并进行 A/B 测试 + 改进或放弃来回答。
Twitter 是模仿现实世界。在现实世界中,人们说出自己的想法,他们可能会争论他们的观点,然后可能会同意他们错了,或者证明别人错了。重点是,在公共场合说的话,就是说在公共场合说的话。就这样。