发展中的波斯特尔定律

2020-05-21 09:37:09

波斯特尔定律,也被称为稳健性原则,表明我们都应该成为朋友,并努力相处。它偶尔也是有害的。这里有一个例子。莱恩想要在普莱罗马的activitypub中添加聊天消息。我觉得这可能很酷,所以我为喇叭写了一些代码。同一概念的两个实现?原则上,我们需要一些严肃的健壮性。莱恩寄给我一张漂亮的照片,但我看不见。我仔细查看了消息,发现mediaType为空。可能是发送方的bug,但我可以稍微放宽解析要求并接受它。所以我就这么做了。(或者我可以再等一会儿,但我希望现在就能行。新的!。闪闪发光!现在!)。新的尝试,收到漂亮的图片!然后我添加了对发送图片的支持,并通过向自己发送一张图片进行了测试。真不错!。把它运过来!接下来,我给莱恩寄了一张照片,但一直没有收到。在添加对发送图片的支持的过程中,我无意中引入了一个与pleroma之前解决的错误非常相似的喇叭错误。mediaType字段为空(而不是NULL),但是由于我放松了解析器,它似乎可以工作。不过,普莱罗玛并没有处理这个特殊的案子。经过更多的调试和查看消息后,Lain能够向pleroma添加另一个解决方法来接受这些损坏的消息。但那不应该是必要的。我应该在开始时发送正确的消息,并且错误地认为我是建立在自我互操作性测试成功的基础上的。在意识到这个问题后,我修复了喇叭,并再次使解析器稍微严格一些,以防止将来出现倒退。总而言之,我想我们两个人只花了一个小时左右就把这一切都解决了。帮助确认文本聊天消息确实有效。而且这个问题很容易修复,特别是当您已经在代码中并希望它正常工作的时候。但从现在起一个月后,它将更难诊断,而且可能会被忽视。如果一张照片没有出现,你多久才能知道?健壮性原则不一定会产生健壮的软件。我做了一个更改以增加兼容性(好的),但这允许引入另一个降低兼容性的错误(坏的)。

发布于2020年5月20日17:42由tedu更新:2020年5月20 17:42标记:编程思路