gpt4 book ai didi

API 设计 : Flexibility Vs. 易用性

转载 作者:行者123 更新时间:2023-12-04 20:26:09 26 4
gpt4 key购买 nike

当编写一个库或模块的公共(public) API 时,将在各种用例中被许多其他代码使用,平衡灵 active 和易用性的最佳方法是什么?我相信这两者经常发生冲突,你做的东西越灵活,就越难让它做好任何一件特定的事情。

例如,C++ STL 使用迭代器,恕我直言,迭代器级别非常低,使用起来很烦人,但作为交换,它们在允许相同的代码在各种 STL 容器上操作方面非常灵活。另一个例子是 Java 标准库的设计理念,它的小类非常具体,旨在实现最大的模块化和灵 active ,而 Python 标准库则偏爱更扁平的类层次结构,这使得处理常见用例更简单.这样的事情应该如何平衡?

最佳答案

如果您是可以强制他人使用您的类的标准机构的一员,那么您可以灵活而复杂地使用(例如 STL)。

对于其他所有人,除非有一些真正令人信服的理由,否则易用性应该始终是您的首选。否则,很少有人会使用您的代码/API。如果使用别人的代码的学习曲线很高,那么大多数人会选择只重新实现他们需要的部分。这通常更快,问题更容易解决。

在我看来,在评价代码质量时,“易于理解”仅次于“它可以正常工作”。

所以底线是,如果增加灵 active 是以牺牲易于学习和使用为代价的,那么在证明灵 active 是必要的之前不要增加灵 active 。

关于API 设计 : Flexibility Vs. 易用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454649/

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