我去了一家公司。它是Ruby上的一些大型国际产品(正如他们所说)。
所以第一天我来到那里 - 我看看他们的代码 - 它有很长的方法(每个页面都有下拉,很多嵌套if,内联调用外部库 - 噩梦),几乎没有测试。
他们说公司上市一年左右,它有20个程序员都在同一个产品上工作,但我现在看到的是他们中的一部分发现了错误,其他部分随机修复了这些错误(其中他们自己制造,因为他们将测试视为他们没有时间去做的事情。
有没有人使用过这类产品?
我知道没有测试和重构的程序有多糟糕。但他们要求我在做出决定之前更好地学习产品。我没有得到什么吗?
答案 0 :(得分:3)
有很多借口。它们都不是有效的。问题还在于它是一个很滑的规模。一旦你停止编写测试,或者没有开始编写测试,开始向旧代码添加测试是一项地狱般的任务。测试是文档,没有测试就会丢失大量文档。所以你不会知道为什么特定的代码部分存在,或者为什么它们(乍看之下)那么糟糕。有时候有充分的理由。
告诉你的老板,学习产品的好方法是编写测试。从黄瓜开始,因为这样你就不需要知道应用程序的内部了。检查您的测试覆盖率(例如simple_cov
)。这提供了很好的可衡量的反馈(进展)。然后专注于模型测试。
做出改变。教育。如果那是不可能的,请得出结论:)