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

在处理大数据时,如何确保您的代码按预期工作?

在处理大数据时,如何确保您的代码按预期工作?

斯蒂芬大帝 2022-07-14 16:23:32
我写了一些多线程批处理来处理数据。当我完成实施并再次测试不同的数据集时,每个数据集大约有 100 行,一切都按预期工作。但是当它真正移动到 prd 时,有些事情会失败。死锁、空指针异常、数据冲突和错误输出等。我的问题是如何确保您的代码有效?我用样本数据做了测试,但我真的不能对数百万个数据做测试,对吗,太耗时了?但是如果我不这样做,我的测试代码将由于测试期间没有发生的一些错误而失败。有没有人们用来验证的某种做法,还是很常见?在这方面需要一些指导。
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

根据我与包括硅谷在内的世界各地的大公司和小公司合作的经验,我想说从一开始就使用最佳实践并坚持下去,例如:

  1. 了解并为工作选择正确的技术/语言 - 您可以使用 C++03 或使用 Java、GO 或 Rust,您将获得截然不同的体验

  2. 在该领域拥有昂贵的、技术娴熟的程序员,并选择了足够的语言或足够熟练以在一定的正常运行时间后处理每项技术

  3. 不要强迫他们,否则他们会做出妥协(记住质量 - 速度 - 价格三角形)

  4. 在团队中有认真的同行代码审查文化

  5. 如果可用,运行静态代码分析并修复警告

  6. 编写所有有意义的单元测试(在类/模块级别,此级别没有多线程,理想情况下基于 SOLID 的软件,使用模拟测试)

  7. 创建集成测试(多线程、真实文件、真实数据库、真实云、真实可扩展性)

  8. 让一个 QA 部门在现实生活条件下一遍又一遍地使用实际硬件设置进行回归测试......

  9. 如果可能,还让 QA 和开发人员使用内存检查器(例如 valgrind)和/或分析(取决于语言和技术)进行测试

让它在真实条件下运行也很重要(也就是生产中的测试......好吧,我们称之为公开测试版)。用你所拥有的一切攻击它。这包括你所有的黑客工具和一群野猴。

即使对于在他们的软件上投入大量资金的最大公司来说,也总会有一些隐藏的错误或安全问题(以及可能在以后修复的已知问题)。因此,请确保您有一些事后处理程序,例如堆栈跟踪、应用程序日志、系统日志、屏幕截图等。

在当今的软件复杂性中,正确性和稳定性非常昂贵。不过,对于小型项目,稍微少一点努力可能是可以的(取决于伤亡人数,或者今天更重要的金钱损失,如果我会说空指针)


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

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