问题标签 [robustness]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
robustness - 二进制文件格式:需要纠错吗?
我需要以二进制格式序列化一些数据以提高效率(典型的数据记录为 10-100MB 文件),并且我正在制定格式细节。我想知道我是否真的需要担心文件损坏/错误更正等。
什么情况下会发生文件损坏?我应该在我的二进制格式中建立对腐败的鲁棒性吗?或者我应该用某种纠错码来包装我的非鲁棒到损坏字节流?(有什么建议吗?我正在使用 Java)或者我不应该担心这个?
编辑:我现在拥有的初步二进制格式包含一堆可变长度段,所以我有点担心,如果我确实有数据损坏,那么在读回它时,我可能会失去同步,并且不能恢复 + 我丢失了文件的其余部分。
c# - 等于(item, null) 或 item == null
使用静态 Object.Equals检查 null 的代码是否比使用 == 运算符或常规 Object.Equals的代码更健壮?后两者是否容易被覆盖,以至于检查 null 不能按预期工作(例如,当比较值为 null 时返回 false )?
换句话说,是这样的:
比这更强大:
我个人觉得后一种语法更容易阅读。在编写将处理作者控制之外的对象(例如库)的代码时是否应该避免它?是否应该始终避免(检查 null 时)?这只是头发分裂吗?
c# - 检查函数参数的最佳方法:检查 null 或 try/catch
在实现/使用返回或处理对象实例的方法时,检查函数参数的最优雅方法是什么?
调用方法:
或更好:
调用方法:
或更好:
浏览类似问题时,不使用 try/catch 的原因是性能。但恕我直言,try-catch 看起来更好:)。
那么,哪种方式更“优雅”呢?
c# - 在 Web 控件中捕获未处理的异常以允许页面呈现
(我实际上正在使用 Ektron CMS,并且正在使用Widgets
,这是用户控件的一个非常简单的扩展)。
问题:我有一个包含许多小部件的网页。如果这些小部件之一发生异常,页面将停止并且用户会收到服务器错误。我想在小部件中有未处理的异常来记录异常,停止显示该小部件并允许页面继续。
例如,您在每个页面上都有一个天气小部件,它通过网络服务获取数据。如果 Web 服务向您发送格式错误的 XML,您希望该站点仍然可用。
可能的解决方案:
计划 A)在每个小部件中,将 init 或显示函数的内容包装在 Try-Catch 语句中。
计划 B)创建一个扩展 IWidget 的新 IRobustWidget 接口,并在其中执行 Try-Catch。
这两个选项对我来说似乎有点“肮脏”,因为我已经读过通用catch (exception)
语句有点反模式。我倾向于 B 计划,因为这似乎更加模块化。
- 我错过了其他选择吗?
- 在这方面通用 Try-Catch 可以吗?
javascript - 使用 JavaScript 获取浏览器窗口宽度/高度的最可靠方法是什么?
我目前正在使用以下条件,但它们不能跨浏览器或根本不工作:
我相信我错过了一个或两个条件——也许还有另一个我没有考虑到的常见表达方式。
我需要添加什么才能完成?
php - 检查 NFS 共享是否在 PHP 中启动
我正在开发一个存储上传文件的系统。元数据将进入本地可访问的数据库,但文件本身将通过 NFS 存储在远程机器上,以便 PHP 可以与服务器交互,就好像它是一个目录一样。
我发现了一个问题,如果有人在 NFS 服务器关闭或不可用时尝试上传文件,可能会导致脚本出错或挂起。显然我们希望避免这种情况并以优雅的方式处理它,但我们不确定如何做到这一点。
我们正在考虑 a) 在页面显示时检查服务器,并在服务器关闭时将表单的文件上传部分显示出来,或者 b) 在执行 move_uploaded_file 之前检查链接以存储上传的文档。
是否可以在 PHP 中执行此操作,如果可以,如何操作?
r - PLM 包的异方差稳健标准误差
在使用 Stata 之后,我正在尝试学习 R,我必须说我喜欢它。但现在我遇到了一些麻烦。我即将使用 Panel Data 进行一些多重回归,因此我正在使用该plm
软件包。
现在,我希望plm
在 R 中获得与在lm
执行异方差稳健和实体固定回归时使用函数和 Stata 时相同的结果。
假设我有一个面板数据集,其中包含变量Y
, ENTITY
, TIME
, V1
。
使用此代码,我在 R 中得到相同的标准错误
就像我在 Stata 中执行此回归时一样
但是当我用包执行这个回归时,plm
我得到了其他标准错误
- 我错过了设置一些选项吗?
- 该
plm
模型是否使用其他类型的估计,如果是,如何? - 我可以在某种程度上有与
plm
Stata相同的标准错误吗, robust
erlang - Erlang 风格的 Node.Js?
对于 Node.Js 和 Erlang,我完全是个菜鸟。但是是否有可能构建一个模拟 Erlang 行为的 Node.js 应用程序?
例如,您通过分布式 node.js 服务器公园传递 json 消息,甚至将新代码传递到那些不离线的服务器,就像 erlang 一样。
如果您有一个在收到消息时激活的消息处理程序回调,则此消息处理程序可以检查该消息是否是代码更新消息,从而将其自身(当前处理程序)替换为新代码。
所以应该有可能让 Node.Js 服务器没有停机时间来进行代码更新而不必大惊小怪,对吧?
shell - shell 和命令替换中的“set -e”
在 shell 脚本set -e
中,当某些从脚本执行的命令以非零退出代码退出时,通常会通过停止脚本来使它们更加健壮。
|| true
通常很容易通过在末尾添加来指定您不关心某些命令是否成功。
当您真正关心返回值但不希望脚本在非零返回码上停止时,就会出现问题,例如:
在这里,我们既要检查退出代码(因此我们不能|| true
在命令替换表达式中使用)并获得输出。但是,如果命令替换中的命令失败,整个脚本会因set -e
.
有没有一种干净的方法可以防止脚本在这里停止而不取消-e
设置并在之后重新设置?
linux - 制造有多强大?
make 实用程序有多强大?
例如,在“制作”某些东西时,如果计算机断电,并且在下一次计算机启动后恢复制作,是否保证输出正确(即使文件系统不健壮)?是否还有其他可能导致 make 失败的情况?