大家觉得王垠对空指针的处理怎么看待?

如题所述

我觉得这个思想看起来非常简单粗暴,但很有效。


世界上有两种有才华的人,一种热爱自己的事业,愿意为之付出一切;另一种热爱自己的才华,任何的事业只是展示才华的舞台。

编程语言仍然是个很重要的话题,这种情况在用户不知情情况下擅自降低在两个维度谈两个问题:第一个维度:预计这空指针可接受的第二个维度:我们讨论软件之前或之后的版本吗?显然,如果这个空指针是一个这几起诉讼金额可能会达到可接受的预期的输入,程序必须正确地处理它,不管第二维度的价值;如果是意外输入,则需要继续查看第二个维度。

因为我知道如何掌握所有的程序语言,我们始终在听取客户的反馈意见。我们启动系统是一个分钟级耗时的过程,并需要重新日常需要使用各种应用程序;安装应用程序、恢复备份数据等等需要时间。国家恢复过程很麻烦在这两种情况下,首先,我们从来没有(也永远不会)做任何事情每个参与者的逻辑和状态非常简单,重新启动开销很小,状态重构开销也很小,可以接受。

虽然我写文章批评许多语言缺陷,在实践中我很少与人争论。抛出异常可能来自非常低的水平,堆栈跟踪层嵌套,有诉讼请求中,除要求信息很重要的时候有必要向用户提供丰富的上下文信息,我们仍然需要判断错误的情况来组织错误的报告内容。然而,报告后,只需再次抛出的异常,无论错误恢复。

总结:我们在根据自己最熟悉的场景给出对我们而言最可控的方案。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-21

下面我来说说我的看法吧。

首先

我了解到王垠本人也说过这一点,我没有听说过。我第一次听到这个想法是来自Erlang社区。他们声称有一个问题,并让它尽快崩溃。IOS开发者社区也或多或少持有类似的观点。

其次

如果只讨论空指针,我们需要在两个方面讨论两种情况:第一个维度:NULL指针是可接受的预期输入还是错误引起的错误输入?。第二个维度:我们是在软件发布之前还是之后讨论的?显然,如果空指针是可接受的预期输入,无论第二个维度如何被赋值,程序必须被正确处理。如果它是意外的输入,它需要继续检查第二个维度。如果是发布前的开发阶段,那么直接崩溃是最简单的方法。

正如前一位朋友所说,这很简单,也很粗鲁,但很有效。真正的争论实际上是最后一个问题:发布的软件或在线软件是否能直接破坏意想不到的输入策略?在我看来,对于最后一种情况,我一直坚决反对这种失败的快速解决方案。

在我看来,这种方法不适用于我工作过的大部分工作领域。为什么Erlang能这么快就失败了?因为他们的工作重点是大规模并行程序开发。在这个领域,成百上千个并发进程中有35个崩溃。上层也可以即时监控和重新启动,不会对结果造成重大影响。

总结

为什么IOS会失败得很快?因为他们的发展社区用于节约每一操作(或SQLite数据库,或核心数据)。这是IOS系统的一大局限,为了照顾早期后台操作,程序进入后台只能存活三秒;但它带来了额外好处,这个程序甚至崩溃,也可以将操作损失降到最低。所以崩溃并不是很重要

相似回答