大厂的 SDK 写法,偷学到了!

自己动手写 SDK 的经验技巧分享

大家好,我是鱼皮。

最近因为工作需要,自己动手写了一些项目的通用 SDK。在编写的过程中,我阅读和参考了不少公司中其他大佬写的 SDK,也总结了一些开发 SDK 的经验和技巧,给大家分享下~

大厂的 SDK 写法,偷学到了!

在此之前,必须先给大家解释一下啥是 SDK。

啥是 SDK ?

SDK(Software Development Kit)即 软件开发工具包 ,就是帮助我们开发出软件的工具集合,除了代码之外,一般还要搭配文档、示例等。

一般 SDK 都是需要 引入 到项目中使用的。比如学 Java 的朋友最早接触的 JDK,就是用来开发 Java 软件的工具包,使用时需要编写 类似 import java.util.* 的语法来引入。此外,大部分的 SDK,都是需要通过人工或项目管理工具,将其文件下载到指定路径才能引入。

引入 SDK

使用 SDK 有什么好处呢?

举个例子,假设公司有很多系统都需要实现文件上传功能。之前看过我文章的朋友应该知道,一个优秀的文件上传功能并不好做,要考虑很多点,比如分块、断点续传、秒传、文件存储、文件管理等。

文件上传设计:https://mp.weixin.qq.com/s/3QXe4MSObJTP43M2gXWSlA

显然,我们不需要给每个系统都去开发文件上传,而是只需要有一个团队舍身而出,编写一套 通用的 文件上传 SDK,然后让需要实现同样功能的系统引用就行了,这样就 大大减少了工作量、提高了开发效率

通用 SDK

有点前人造车,后人享乐的意思~

编写 SDK 又称 造轮子 ,好的轮子不仅能够帮助团队省时省力,还能够减少一些项目在相同功能上的差异。就不要说同一个功能,小王写的要运行 1 秒,小李写的要运行 1 小时!

而假设每个系统都去开发同样的功能,那就是 重复造轮子 ,在大多数情况下,不是明智之举。

理解了啥是 SDK 后,来看看如何写出优秀的 SDK 吧~

手写 SDK 经验总结

好的 SDK 应该具有简单易用、通俗易懂、便于扩展、高效稳定等特点。

易用性

如今,现成的轮子实在太多了!如何让你的轮子脱颖而出呢?那就要先提升 SDK 的易用性。

我自己在技术选型时,就会倾向于优先选择简单易用的 SDK,最好是几行代码就能轻松使用,而不是必须要我读完老长一份文档,再写个几十行代码才能生效。

就和产品说明书一样,太复杂直接把人劝退。

大厂的 SDK 写法,偷学到了!

我们可以通过以下几点提高易用性:

统一调用

将复杂的功能进行封装,对外提供统一的调用入口,尽量屏蔽一些实现细节,减少用户调用的流程和对参数的理解成本。

举个例子,下面是两种日期处理函数。用户不需要关心他们是如何实现的,只需要知道怎么用、传递哪些参数、得到哪些返回值就行了。

// 第 1 种:需要 new 对象 DateUtils dateUtils = new DateUtils(); dateUtils.setDate(\'2021-08-31\'); Date date = dateUtils.parse(); // 第 2 种:直接调用 Date date = DateUtils.parse(\'2021-08-13\');

那大家觉得哪种更易用呢?

集中配置

将复杂的参数配置化,不需要让用户到处写参数,而是通过一个配置文件统一管理。

Java 主流开发框架 SpringBoot 就是典型的例子,假如用户想改变内嵌服务器启动的端口、亦或是改变数据库的连接地址,不需要写代码,而是改一下配置文件就行了:

# 服务器配置 server: port: 8081 # 数据库配置 db: ip: 10.0.0.1

此外,这样也便于维护项目和实现多环境。

良好命名

给 SDK 的函数取名称时,尽量让它符合用户的习惯。

比如具有解析功能的函数,可以叫 "parseXXX";判断是否为空的函数,可以叫 "xx.isEmpty" 等。最好能做到让用户不看文档,只通过函数名称和参数,就知道你这个函数是做什么的。

好坏命名

因此,想要写出好的 SDK,首先要多用、多参考别人的 SDK,养成习惯后你就会发现,大家起名儿都差不多。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpjyw.html