美文网首页读书谈技术
不要将你的 API 设计得过于简单

不要将你的 API 设计得过于简单

作者: 技术的游戏 | 来源:发表于2023-05-24 22:06 被阅读0次

关于软件工程的真相

框架永无止境

有多少框架、库和服务的存在仅仅是为了让你编写更少的代码?几乎所有的框架都是如此。

为什么我们有这么多框架,每年还会出现一个新的?这是因为一个框架试图让系统变得简单,在这个过程中却导致了性能问题或编码上的不便。

一个沮丧的用户说:“我要写一个彻底解决这个问题的新框架。”他写了一个更快的新框架。只是时间问题,另一个沮丧的用户就会发现另一个问题,并写出一个新的框架。

这是一个无休止的恶性循环。

如果你的系统很复杂,不要试图简化它

你的系统很复杂。这既不是好事也不是坏事,有些系统本质上就是复杂的,因为它们天生如此。

如果你试图简化系统,那就是违背它的本质。洁净代码运动对你没有帮助,就像面向对象编程运动一样。

不要认为将系统分解为小部分会使它变得简单。现在你有很多团队,他们被切割成了独立的部分,以为这样就简单了。无知是工程师的敌人。系统不能通过部分来理解。它要么全部理解,要么一无所知。

这是你无法赢得的战斗。

不要将API设计得过于简单

API代表应用程序编程接口。它们与系统进行接口交互,接受系统的本真模样,包括它的美丽、丑陋、简单和复杂的部分,以及其中的错误和特性。

不要假装你的系统是简单的,通过暴露一个仅展示其美好一面的裸露API。你在向客户提供虚假的抽象,最终这种抽象会泄漏,引发问题,并对客户产生不良影响。

构建一个API来抽象复杂性,使客户端易于使用,就像打破鸡蛋壳,让小鸡容易出来一样。然而,最终小鸡将无法独立生存,调用该API的前端也将如此。

客户端最终会遇到意想不到的副作用,例如性能延迟、高CPU使用率、高内存使用率或高网络使用率。

抽象总是会泄漏。

设定默认值是一种逃避责任的行为

你可以暴露系统的真实本质,但可以设置默认值,认为这些默认值适用于大多数情况。虽然有用,但大多数客户端会选择走捷径,使用默认值而不去理解它们。

他们又回到了同样的沉船上,只不过这艘沉船上有一艘救生艇,开发人员可以依附其上。他们查看默认值并理解出了问题所在,并在必要时进行覆盖。

如果你将系统暴露出来,这个问题本不会发生。

如果你愿意,去除复杂性

你可以尝试消除系统的复杂性,而不是隐藏它。你可以用一个看起来简单的部分来替代它。这样做可能会解决一些问题,但请注意,新的复杂性可能会出现。一个新的怪兽诞生了。旧怪兽可能被杀死,但它可能仍然存在。

亲爱的客户,你可以使用一个简单的后端API,但请理解这个API可能并不真的简单。不要认为它理所当然,相反,深入了解它的复杂性,理解它是如何构建的。

通过了解API,你不仅会欣赏它,而且在API所创建的抽象泄漏到你这里时也会做好准备。你将准备好保护你的前端堡垒,也可以为修复后端做出贡献。

总结

拥抱复杂性,理解它并与之共同工作。这可能会开花结果,带来有效的性能,也可能会意外地诞生一个完全自由且真正完美的全新系统。

一个真正简单的系统。

这篇文章中的所有内容都不构成建议或行动号召。把它看作是一束在黑暗房间里首次照亮的蜡烛光。

如果你喜欢我的文章,点赞,关注,转发!

相关文章

  • 开始mbed设计

    开始mbed设计 应用mbed开始设计,最简单方式莫过于选择一套硬件,学习mbed HDK API函数。开始设计分...

  • API设计

    API设计 Google API 设计思想 1、设计 API设计原则简单可用一致 HTTP 常用方法get 获...

  • API 设计随谈

    思考角度 api 使用者往往只关注,简单好用,越好用的api,越是感受不到它良好的设计存在。自然无感 api 设计...

  • vuex工作原理详解

    前言 vuex作为vue官方出品的状态管理框架,以及其简单API设计、便捷的开发工具支持,在中大型的vue项目中得...

  • FMDB与JKDBModel在工程中使用

    FMDB: 由于iOS系统原生的SQLite API在使用上过于繁琐,FMDB就是将原生的api封装成简单容易使用...

  • 简单做人,快乐做事,健康生活

    简单做人:不要过于计较个人得失。举得起放得下的叫举重,举得起放不下的叫负重。凡事不必计较,过了就过了;凡事不必苛求...

  • 黑客教你设密码 九条法则给你安全

    你网上的密码设计得是否过于简单,比如password、123456,或者是你的生日、手机号码?这样太容易被黑客所攻...

  • FastAPI 请求参数

    RESTful API 简介 这里只做简单介绍,更多信息请查看阮一峰的文章RESTful API 设计指南[htt...

  • Python Flask学习知识点(二)

    使用Flask写简单的API 所有API都一样,不限于编程语言,API的难点在于路由(URL)的设计,能否精准的找...

  • 幸福就是一种感觉

    幸福是一种感觉,如果用一句话概括,幸福就是简单做人,快乐做事,健康生活。 简单做人,就是不要过于计较个人得失。举得...

网友评论

    本文标题:不要将你的 API 设计得过于简单

    本文链接:https://www.haomeiwen.com/subject/qfpcedtx.html