Questions tagged «workaround»

5
复杂软件应实现多少冗余/鲁棒性?
这个问题的焦点:尽管软件中存在一个或多个内部错误,某些软件执行“额外工作”以增加“最终成功/令人满意”结果的机会,当这些错误发生时,这需要更长的执行时间。如果结果成功,所有这些都会在用户不知情的情况下发生。 复杂软件的定义: 包含超过10个开发人员在其生命周期内编写的代码(由其提供),并且未在同一时间段内编写 依赖于10多个外部库,每个库都带有警告 典型的软件任务(用于生成用户想要的结果)需要10个或更多输入参数,其中大多数具有默认值,但如果用户需要控制,则可以配置。 最重要的是,相对于要执行的任务具有适当复杂性的软件,即不必造成不必要的复杂性。 编辑:什么是复杂的?请参阅复杂和复杂之间有很大的区别。(直接链接) 此问题内的冗余/鲁棒性的定义:(基于注释增加了鲁棒性) 如果在使用当前参数集时软件任务失败,请尝试其他参数。 显然,必须有内部知识,这些“不同”的参数使用不同的代码路径,可能会导致不同的(希望更好)结果。 有时,这些不同的代码路径是基于对外部库的观察而选择的。 最后,如果执行的实际任务与用户的说明略有不同,则用户将收到详细说明差异的报告。 最后,像10余个可配置参数一样,冗余和报告也是可配置的。 此类软件的示例: 数据库迁移 业务数据库 源代码控制数据库等 在Word文档和OpenOffice文档,PowerPoint和OpenOffice Draw等之间进行批量转换。 自动翻译整个网站 自动分析软件包,例如Doxygen,但需要更可靠的分析(即不仅仅是文档工具) 网络通信,其中数据包可能会丢失并且可能会重试 这个问题最初是由您如何处理故意的不良代码启发而来的?但现在仅关注软件膨胀的原因之一。这个问题没有解决软件膨胀的任何其他原因,例如添加新功能。 可能相关: 如何处理(巨大)项目中的复杂代码 人们如何管理和维护极其复杂且难以阅读的代码?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.