当前位置: 首页 > 面试题库 >

我应该避免在生产代码中使用net / http / httptest吗?

夏侯元忠
2023-03-14
问题内容

在某些情况下,我喜欢将缓冲显示net/http.ResponseWriter为的功能net/http.Response,这net/http/httptest.ResponseRecorder会给我带来好处,但程序包名称使我有点担心在生产代码中使用它。我了解它
主要 用于测试,但是不确定我是否在生产代码中使用它时遇到麻烦。

我在吸引命运吗?


问题答案:

您不应在生产中使用此代码。无论您要实现什么目标。

httptest.ResponseRecorder最终目的是促进 测试 ,因此始终会在考虑测试的情况下进行扩展,优化重写)
。只要可以使该软件包更好地进行测试,就可以在该软件包中做出 任何 假设。软件包作者打算将此与go test
¹一起使用”
。我将其解释为不鼓励生产使用,因为这样他们就可以随意中断使用,例如您的生产使用改为go test使用。

另一个论点是安全性。任何测试包的安全模型都将是使用受信任,而非测试代码则相反。

软件世界是一个危险的地方。您正在要求使其更加危险。



 类似资料:
  • 问题内容: 有时是有用的,例如,如果我为网站上的所有链接(例如选择器)定义了通用样式,但是当我要覆盖某些规则时,可以有以下选择: 使用更具体(更长)的选择器 采用 哪种方法更好,可能有一些指导原则? 问题答案: 使用非常,非常谨慎- 它会覆盖刚才的一切,甚至是内联样式和混乱在低于显而易见的方式与样式规则“梯级”,让CSS的名字。它很容易使用不当,而且容易成倍增加,尤其是在滥用时。您可以轻松地得出一

  • 问题内容: 一次又一次,我看到Bash在Stack Overflow上使用了答案,而答案被猛烈抨击了,旨在使用这种“邪恶的”构造。为什么这么邪恶? 如果不能安全使用,我应该怎么用呢? 问题答案: 这个问题比眼前的问题还重要。我们将从显而易见的内容开始:具有执行“脏”数据的潜力。脏数据是指尚未重写为XYZ的任何数据;在我们的例子中,它是未格式化的任何字符串,以确保评估安全。 乍看之下,对数据进行消毒

  • 问题内容: 我读到应该避免赞成和。我对弄乱Loop并没有信心,也没有完全理解Codex。 下面的代码是否使用?如果是,并且由于应该避免,那么您能建议一种不使用但仍然完成相同任务的方法吗? 此代码用于按随机或按价格对帖子进行排序。 。 使用此代码将链接A(随机)和链接B(价格)发布在我的菜单中。因此,网站的访问者只需单击链接即可对帖子进行排序。 问题答案: 我已经针对WPSE这个主题做了非常详细的解

  • 对于与PropertyValueFactory相关的问题,许多回答(和评论)建议避免使用该类和其他类似类。使用这个类有什么问题?

  • 条款47:避免产生只写代码 假设你有一个vector<int>,你想去掉vector中值小于x而出现在至少和y一样大的最后一个元素之后的所有元素。下面代码立刻出现在你脑中吗? vector<int> v; int x, y; ... v.erase( remove_if(find_if(v.rbegin(), v.rend(), bind2nd(greater_equal<int>()

  • 问题内容: 今天,我有一个同事建议我重构代码,以使用label语句控制通过我创建的2个嵌套的for循环的流。我以前从未使用过它们,因为我个人认为它们会降低程序的可读性。如果论点足够扎实,我愿意改变使用它们的想法。人们对标签陈述有何看法? 问题答案: 如果您可以跳过两个循环(或一个包含switch语句的循环),则许多算法的表达会更容易。不要为此感到难过。另一方面,它可能表明解决方案过于复杂。因此,退