产品经理在需求输出中往往会简单提一句,确保代码的健壮性;后来接触大模型或算法训练后,又会听到鲁棒性。在搜索翻译的时候,发现两者英文翻译竟然都是robustness,奇了大怪。
两者感觉是一样,之所以产生两个专有名词,意味着一定还是有细微的区别;所以,对于产品经理而言,奇怪的知识又增加了。
健壮性是指程序在异常输入或非正常操作的情况下,仍然能够继续运行或提供合理响应的能力。其关注的重点是,程序是否能够在面对错误、异常或不可预期的输入时,避免崩溃或产生严重问题。
所以,若要提升健壮性,往往可以通过下面的方式来提升:
举一个例子,在这里,如果用户输入了非法字符,程序不会崩溃,而是提示错误,这是健壮性的体现。
try:
num = int(input("请输入一个数字: "))
print(f"你输入的数字是: {num}")
except ValueError:
print("输入错误,请输入一个数字!")
在产品需求文档(PRD)中,描述和增加以下几类内容可以有效提升系统的健壮性:
鲁棒性是指程序或系统在不确定性条件或环境变化下,仍然能够保持其功能和性能的能力。关注的重点是,系统在面对外部环境变化(如噪声、参数波动)或部分功能失效时,是否能稳定运行。在一定程度上,鲁棒性不是需求输出范围内可以描述或提升的,更多可能还是技术同学的处理方式,在这里也就不班门弄斧列明产品经理提升鲁棒性的建议方法论。
其更强调系统在复杂环境下的稳定性,通常用于控制系统、机器学习、分布式系统等领域,与容错性(Fault Tolerance)密切相关。
举一个例子,在自动驾驶系统中,传感器可能会因为天气变化(如雨雪)而受到干扰,但系统仍然需要保持决策的准确性。也比如,分布式系统中的某些服务器宕机,但整体系统仍然能够提供服务。
维度 | 健壮性 | 鲁棒性 |
---|---|---|
定义 | 程序在异常输入或操作下的表现能力。 | 程序在不确定性或环境变化下的表现能力。 |
关注点 | 异常输入、错误处理。 | 环境变化、系统稳定性。 |
适用范围 | 更偏向于一般的软件开发和异常处理。 | 更偏向于复杂系统、控制系统或分布式系统。 |
目标 | 防止崩溃,提供合理响应。 | 保持功能和性能的稳定。 |
两者可以结合起来理解:一个程序可以是健壮的但不一定鲁棒,也可以是鲁棒的但不一定健壮。在实际开发中,通常希望程序既健壮又鲁棒,以应对各种复杂的场景。
The post 健壮性和鲁棒性的区别——奇怪的知识又增加了 first appeared on PMSOLO-大数据技术分享.