API设计

来源:互联网 发布:西安市软件公寓 编辑:程序博客网 时间:2024/05/01 09:46

设计API的基本工作流程:从问题分析开始,设计解决方案,然后实现设计方案。

技术债

技术债可以分为两类:
无意识的:软件是完全用心设计,结果却出现了问题,可能因为代码中引入了初级工程师的低质量代码,或者是因为兼并了其他公司,而被兼并的公司的软件存在各种问题等。
有意识的:由于时间、成本或资源限制等各方面压力而有意识地走捷径,寄希望于满足最后期限,之后再实施“正确的”方案。

当软件库正在接近最后期限,会出现如下4个警告信号:
- 脆弱性:系统中一个地方的改动会引发
- 僵化性:软件难以改动。
- 顽固性:顽固的代码难以复用,有的实现可能与周边代码缠绕在一起。
- 不可转移性:如果团队中只有一个工程师可以处理代码中的某个部分,我们就说出现了不可转移性。

因为积累了太多技术债,要花费很多时间维护和包含遗留代码,这比为客户增加新特性花费的时间还要多。这往往导致下一代项目需要修复老系统的问题。
从设计思路上讲,对于这样的下一代项目,其开发有以下两个方向。
1. 演进式。设计一个包含所有新需求的系统,然后迭代重构现有系统直到满足要求。
2. 革命式。丢掉旧代码,然后从零开始设计,实现一个全新的系统。

同样你要留意第二系统综合症,即新系统可能因为野心太大或工程实现过于复杂而失败。

API设计的元素

产生好的API设计的秘诀是:对问题领域进行合理抽象,然后设计相应的对象与类的层次结构来表达该抽象。
Grady Booch认为任何复杂系统都有两种层次化视角
1. 对象层次结构
2. 类层次结构

一般认为软件构建的设计阶段由两个主要活动组成。
1. 架构设计。描述软件的顶层结构与组织。
2. 详细设计。在一个足够详细的层面描述设计中单独的组件,组件可以利用此描述信息来实现。

0 0
原创粉丝点击