gpt4 book ai didi

performance - SOLID 原则可以用于高性能代码吗?

转载 作者:行者123 更新时间:2023-12-03 16:32:01 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

1年前关闭。




Improve this question




我曾经在一个专门研究高性能 C++ 代码的团队工作。为了从代码中榨取每一点性能,使用了不明显和微妙的技巧,使其难以阅读。 Robert C. Martin 的“清洁架构”一书提倡 SOLID 架构原则:通过依赖倒置、单次使用原则等来解耦代码。额外的层和严格遵守接口(interface)似乎会妨碍某些技术以获得更好的性能。是否必须在高性能和 SOLID 架构之间做出选择?

最佳答案

Does one have to make a choice between high-performance and SOLID architecture?


当然,这个问题的唯一合理答案是,这取决于你所说的高性能。但这个答案意味着 SOLID 和性能在某种程度上是相关的。
公平地说,OOP 原则和模式通常并不关注性能,即它们的目的不是为了提高甚至保持任何特定的性能水平。甚至可以公平地说,实现这些 OOP 目标的最常见机制会降低大多数常见 OO 语言的性能(尽管有轻微的降低)。
另一方面,公平地说,在大多数有关这些实践的文档中,性能并不是一个特定的目标。因此,没有什么可以阻止您将它们调整为性能关键型应用程序。
我发现稍微修改问题很有用,以激发有趣的答案。例如,

Is hyper-optimized code as readable as code that is allowed to make some performance concessions?


显然不是。可读性、可维护性、可扩展性等不是免费的。为什么应该这样?软件工程没有免费的午餐。一切都是取舍。如果你不能牺牲一盎司的性能,你为什么要期望最高的代码质量?性能是机器的语言。质量是人类的语言。这两者之间总会存在阻抗不匹配。
你不应该做的一件事是得出结论,如果违反原则可以提高绩效,那么原则可以被忽略。很少能找到以性能为主要关注点的应用程序。在人们认为是的大多数应用程序中,事实并非如此。即使在性能至关重要的应用程序中,它也不是唯一的问题。例如,如果计算错误,瞬时计算就没有什么值(value)。当普通程序员无法理解时,计算很可能出错。
软件工程中的一切都是权衡。只是不要将相对值与绝对值混淆。标题的答案是肯定的,但您可能需要针对您应用哪些原则以及在哪里应用。性能并不能免除您对质量的考虑。它只会让你的工作更加复杂,因为除了质量之外,你还必须考虑性能。

关于performance - SOLID 原则可以用于高性能代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65334365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com