在设计API时,一致性通常有助于可用性。但是,有时它们会发生冲突,因为可以添加额外的API功能来简化公共情况。在这里做什么似乎有一些分歧。有些设计( Java标准库)支持一致性,即使它会使普通情况更详细。其他人( Python标准库)则倾向于可用性,即使这意味着将公共情况视为“特殊”,以使其更容易使用。
你对如何平衡一致性和可用性有什么看法?
发布于 2011-03-06 15:25:26
我想我很幸运,因为我从来没有做出这样的选择,因为选择的共享模式通常已经是最友好的。
然而,如果我不得不选择,我将坚持一致性:这使得调试变得更容易,团队内部的沟通也更加清晰。
我甚至可以说,一致的API是使其可用的部分。
发布于 2011-03-06 17:21:05
我会努力做到既一致又有用。
如果一致性妨碍了可用性(如您所提到的API可以流线型),那么提供一个新的类、函数或包装器库。只需确保在注释/记录代码时,每个函数之间的关系是显而易见的。
就像过载的构造器。当然,具有3个参数的构造函数是最一致和最灵活的,但可能在应用程序中使用最多的是只有一个参数的构造函数。
然后,您的库将是灵活的(就像Jeremy指出的那样),并且可以像您希望的那样用于正常用例。
发布于 2011-03-06 15:40:00
我自己也会坚持下去。客户端始终可以将包装器写入库,以使它们更易于使用或删除复制。
您还可以在主API的旁边提供另一个API,为它们包装主API,这样他们就可以在最常见的情况下使用它。
https://softwareengineering.stackexchange.com/questions/55294
复制相似问题