为了账号安全,请及时绑定邮箱和手机立即绑定

我应该如何处理源代码中的大块文本,才能不影响代码的可读性?

我应该如何处理源代码中的大块文本,才能不影响代码的可读性?

Go
三国纷争 2021-11-22 16:11:44
最近在修复系统中的一个错误并为其编写测试时,我们在测试源代码中放置了一大块 html 字符串。我唯一担心的是大块会分散注意力并损害代码的可读性。我想出的一些明显的解决方案是:将单个文本块移动到运行测试时读取的单独文本文件中。(我对此的关注:效率和可扩展性)将文本块移动到单个 json 文件中,然后将其加载到 json 对象中一次(对这个解决方案不太有信心。如果我们碰巧只有几个这样的大文本块测试?)在包含块的同一个包中创建一个单独的代码文件(与前一个相同的问题)坚持当前的解决方案,即源代码中的大代码块。这不是什么大问题。语言:去问题:哪个较早的解决方案是最佳的?或者其他一些解决方案?很高兴知道:这个问题的解决方案是否取决于正在使用的编程语言?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

我不知道 Go 但在我使用的任何其他语言中,我们将数据(如大静态文本)保留在源之外。首先检查是否没有框架可以解决您的问题——大多数语言都有非常强大的测试生态系统。

你关心性能。你衡量过对性能的影响吗?它只是几个 kb 的文件


查看完整回答
反对 回复 2021-11-22
?
慕森王

TA贡献1777条经验 获得超3个赞

我不认为这是一个依赖于语言的问题。在代码中嵌入大量任何种类的刺会损害它的可读性。

至于解决方案,我会考虑两个方面: 1. 字符串内容是否真的是静态的 - 如果您认为它不会改变,我相信将其放入另一个 .go 文件是最好的解决方案。引入更多的代码来处理内容的加载只会让事情变得更加复杂。2. 部署 - Go 最好的事情之一是拥有一个可以运行的单个文件,无需任何外部依赖。如果您从外部源加载字符串的内容,则会损害该内容。下一个需要运行测试的人必须知道这个文件......


查看完整回答
反对 回复 2021-11-22
?
长风秋雁

TA贡献1757条经验 获得超7个赞

有几种可用的软件包可以处理此类问题,最突出的是 Jim Teeuwen 出色的go-bindata。它的主要作用是获取输入文件并将这些文件的内容存储到常量中。当然,你可以使用这个包。


当然,您可以手动执行此操作。但是,为了整理实际代码,我会将这些常量放入单独的文件中。所以基本上,我data.go看起来像这样


package yours


const (


FirstText =`

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 

eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam 

voluptua. At vero eos et accusam et justo duo dolores et ea rebus.


Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 

eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam    

voluptua. At vero eos et accusam et justo duo dolores et ea rebum.`


SecondText = `

Lorem ipsum dolor sit met, consetetur sadipscing elitr, sed diam nonumy

eirmod tempor invidunt ut labore et dolore magna aliquyam`

)

因此,您可以参考这些文本,因为它们是全局的,但它们不会使您的代码混乱。


这种方法应该适用于我知道的每种编程语言。


查看完整回答
反对 回复 2021-11-22
  • 3 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信