当前位置: 首页 > 科技观察

良好API设计的十大原则_0

时间:2023-03-22 00:06:43 科技观察

每个软件开发人员都使用API。“好的”API设计就像魔法一样。但是,我不知道有多少人可以解释为什么有些API复杂难学,而另一些API干净、简单且使用起来很愉快。在本文中,我将回答这个问题并提供良好API设计的十条规则。1.只做今天需要做的事这是最好的规则。只解决今天必须解决的问题,尽量减少需要做的答案。解决明天的问题的诱惑力是巨大的。但一定要抵制诱惑!不要过早发布代码,专注于缩短发布周期。如果回答一个新问题需要几个小时,那么猜测明天会发生什么就无需猜测了。2.API模块化将大问题变成可以单独解决的小问题。模块化API更容易学习,并且可以随时间变化。您可以用新模块替换旧模块。模块可以一一教授。也可以将API的实验部分与稳定或遗留部分分开。3.使用结构化语法使用结构化API语法:将do_action_with_thing替换为thing.action或thing.property。该语法自然适合模块化方法,其中每个模块都是一个类。4.使用自然语义而不是发明新概念。只使用开发人员熟知的概念作为类系统的基础。如果您发现自己需要解释概念,那么您做错了:要么您正在解决以后的问题,要么您构建的API有误。5.API的自约定每个类必须严格使用相同的风格和约定。连贯性是指一个人在学习这门课的时候,能够连贯地掌握所有的课。记录约定并使它们成为贡献者的强制性标准。6.API可扩展性简单的可扩展性有很多好处,不仅仅是因为它受到贡献者的欢迎。它还允许您推迟实现功能,因为“如果需要,以后很容易添加”。不要添加不必要的功能,这也是一种双赢的局面。7.全面测试每个类和方法都必须针对恶意代码进行全面测试。像写代码一样写测试,然后像API一样使用测试对外提供契约文件。每当代码更改时运行这些测试。不用担心代码覆盖率。重要的是外部约定。还可以考虑使用合同生命周期。8.分层增长保持API的重点,然后在上面分层新的API,以便它们可以随着时间的推移而增长。可扩展性并不意味着长期增长。明确API的范围,在范围内执行。9.保持简单易用最终的考验是API的易用性。你写的例子能让你的代码看起来更简单吗?您是否强迫用户指定他们不关心的选项?是否有任何毫无价值的额外步骤?注意缩小API的可视区域。10.保持可移植性不要让系统概念泄露到API中。干净且有目的的抽象:此API可以在任何操作系统上运行。API必须能够隐藏实现,但要注意规则4并使用自然抽象。欢迎大家分享自己的看法。英文原文:TenRulesforGoodAPIDesign