# 前言
上一章节我们学习设计模式,了解前端应用最广泛的几个设计模式,订阅发布模式、单例模式、工厂模式等。 本章节我们会通过设计一个通用 SDK 模型来学习应用这些设计模式,和读者一起搭建 SDK 的 TypeScript 开发环境,一起探讨如何设计一个通用的 SDK 原型。
# 通用SDK原型代码
# SDK设计指南
软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
SDK 是根据业务需求来设计的,一方面提供各种业务需要的 API 接口,另一方面 SDK 的设计需要具备扩展性和兼容性。
作者的理解一个好的 SDK 应该具备小而美且五脏俱全的特性
# API设计准则
API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计。好的 API 设计有如下准则:
- 提供清晰的思维模型: API 是用于程序之间的交互,但是一个 API 如何被使用,以及 API 本身如何被维护,是依赖于维护者和使用者能够对该API有清晰的、一致的认识。
- 少即是多: 系统随着需求的增加不断的演化,SDK 承载的逻辑会越来越多,为了减少使用者的使用成本,SDK 提供的 API 应该是必须且少的。
- 单一职责: 接口设计尽量要做到 单一职责,最细粒度化,每个接口职责是明确的。
- 插件化: 随着系统业务需求增加,带来了越来越多的不确定性,基于最核心的 SDK 模块去扩展,不同业务可以去扩展不同需求。
# Typescript 通用 SDK 开发环境搭建
npm 包环境安装如下:typescript,jest 和 eslint。
## 安装typescript支持
$npm i typescript -D
## 安装jest 支持
$ npm i jest @types/jest ts-jest -D
## 安装tslint支持
$ npm i tslint tslint-config-standard -D
@前端进阶之旅: 代码已经复制到剪贴板
# 配置 package 文件
配置 package 文件的 scripts 脚本如下:
- build: 通过 tsc 编译 ts 成 js 文件。
- test: 运行 jest 测试环境。具体 TS 的 Jest 测试环境说明参考 [前端基础能力 - Jest前端测试框架]。
- fix: 运行 tsconfig 语法检查,同时修复语法问题。
{
"name": "tbms-sdk",
"version": "1.0.0",
"description": "sdk, middleware",
"main": "build/index.js",
"scripts": {
"build": "npx tsc --build tsconfig.json -w",
"test": "npx jest -c jest.config.js --colors",
"fix": "tslint --fix src/*.ts -t verbose",
"tslint": "tslint -c tslint.json src/*.ts"
},
"keywords": [
"sdk",
"middleware"
],
"author": "",
"license": "ISC",
"devDependencies": {
"typescript": "^3.3.1",
"@types/jest": "^24.0.0",
"jest": "^24.1.0",
"ts-jest": "^23.10.5",
"tslint": "^5.12.1",
"tslint-config-standard": "^8.0.1"
}
}
@前端进阶之旅: 代码已经复制到剪贴板
