【发布时间】:2011-05-16 20:54:52
【问题描述】:
StackOverflow 上有几个问题讨论了何时应该使用断言语句而不是抛出一些异常。 (例如here、here、here、here 和 here。
但是,我开始怀疑 assert-versus-throw 的传统智慧是基于您在 JVM 中运行的假设。在 GWT 世界中,您的 Java 被音译为 JavaScript 并在浏览器的上下文中运行,权衡的集合感觉不同:在浏览器中运行时断言总是被编译掉,并且任何使 JavaScript 大小保持较小的东西是一个胜利,特别是如果您的 Web 应用程序必须在手机上运行。然而,断言确实在 DevMode 中运行,因此它们在开发过程中具有实用性。
所以我的问题是:有没有人考虑过一组最佳实践规则来管理如何在 GWT 中使用 assert 语句?我的团队成员问我“既然断言被编译出来,拥有它们是否有意义?”,我想为他们提供一个好的答案。
另外,是否有人对 Google 的 GWT 开发人员在此主题上的理念有任何见解?查看 GWT 源代码,他们似乎经常使用它。
【问题讨论】:
标签: java gwt assert design-by-contract