1 回答
TA贡献1811条经验 获得超6个赞
根据我与包括硅谷在内的世界各地的大公司和小公司合作的经验,我想说从一开始就使用最佳实践并坚持下去,例如:
了解并为工作选择正确的技术/语言 - 您可以使用 C++03 或使用 Java、GO 或 Rust,您将获得截然不同的体验
在该领域拥有昂贵的、技术娴熟的程序员,并选择了足够的语言或足够熟练以在一定的正常运行时间后处理每项技术
不要强迫他们,否则他们会做出妥协(记住质量 - 速度 - 价格三角形)
在团队中有认真的同行代码审查文化
如果可用,运行静态代码分析并修复警告
编写所有有意义的单元测试(在类/模块级别,此级别没有多线程,理想情况下基于 SOLID 的软件,使用模拟测试)
创建集成测试(多线程、真实文件、真实数据库、真实云、真实可扩展性)
让一个 QA 部门在现实生活条件下一遍又一遍地使用实际硬件设置进行回归测试......
如果可能,还让 QA 和开发人员使用内存检查器(例如 valgrind)和/或分析(取决于语言和技术)进行测试
让它在真实条件下运行也很重要(也就是生产中的测试......好吧,我们称之为公开测试版)。用你所拥有的一切攻击它。这包括你所有的黑客工具和一群野猴。
即使对于在他们的软件上投入大量资金的最大公司来说,也总会有一些隐藏的错误或安全问题(以及可能在以后修复的已知问题)。因此,请确保您有一些事后处理程序,例如堆栈跟踪、应用程序日志、系统日志、屏幕截图等。
在当今的软件复杂性中,正确性和稳定性非常昂贵。不过,对于小型项目,稍微少一点努力可能是可以的(取决于伤亡人数,或者今天更重要的金钱损失,如果我会说空指针)
添加回答
举报