本文来自CSDN。 随着近来软件规模的日益庞大,API编程接口的设计变的越来越重要。良好的接口设计可以降低系统各部分之间的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合度,从而提高系统的维护性和稳定性。 JoshuaBloch是美国著名程序式设计师。他为Java平台设计并实现了许多的功能,是Google的首席Java架构师(ChiefJavaArchitect)。他也是《EffectiveJavaProgrammingLanguageGuide》一书的作者,就是人们常说的EffectiveJava。本文翻译自JoshuaBloch所发表的一个PPT:HowtoDesignaGoodAPIandWhyitMatters。 随着大数据、公共平台等互联网技术的日益成熟,API接口的重要性日益凸显,从公司的角度来看,API可以算作是公司一笔巨大的资产,公共API可以捕获用户、为公司做出许多贡献。对于个人来说,只要你编程,你就是一个API设计者,因为好的代码即是模块——每个模块便是一个API,而好的模块会被多次使用。此外,编写API还有利于开发者提高代码质量,提高自身的编码水平。 1优秀API所具备的特征:简单易学; 易于使用,即使没有文档; 很难误用; 易于阅读,代码易于维护; 足够强大,可以满足需求; 易于扩展; 适合用户。 了解了一款优秀API所具备的特征后,一起再来看看如何设计优秀的API,有哪些流程和规则可循,开发者在设计时需要注意哪些事项。 API设计流程中的注意事项1征集需求在开始之前,你可能会收到一些解决方案,它们不一定会比现有的方案好,而你的任务是以用例的形式提取真实需求,并制定真正合适的解决方案,这样构建出来的东西就会更加有价值。 2从简短的说明开始这时,编写简短的说明最为合适,编写时需要考虑的因素有: 灵活性要远胜于完整性; 跳出规则:听取意见并严阵以待; 精炼短小才易修改; 获得信任之后将其具体化,在此之中,编程很重要。 3尽早编写API对每一个实现进行保存,以防丢失; 在开始之前,列出一些合理的规定,保存所写说明,以防丢失; 继续编写和充实API。 4编写SPI尤为重要ServiceProviderInterface即服务提供商接口,插件服务支持多种实现,例如JavaCryptographyExtension(JCE); 发布之前编写多个插件; “三次原则”(“TheRuleofThrees”):指的是当某个功能第三次出现时,才进行”抽象化”。 5维护切实可行的期望大多数API设计都过于约束; 对可能会犯的错误进行预计,要用发展的思维来编写API。 API设计原则每个API接口应该只专注一件事,并做好:如果它很难命名,那么这或许是个不好的征兆,好的名称可以驱动开发、并且只需拆分与合并模块即可 API应尽可能地轻小:满足需求、对有疑问的地方可以暂时不使用(函数、类、方法、参数等,你可以不添加,但千万不要删除)、概念性的东西比体积重要、寻找一个良好的动力体积比; 实现不要影响API:白癜风医院的最好治疗偏方北京哪家医院可以治疗白癜风
|