【技术实现步骤摘要】
本专利技术一般涉及应用编程接口(API),尤其涉及,作为示例而非局限,设计易于使用的API而同时提供控制和灵活性。
技术介绍
应用编程接口(API)由开发者用于创建各种各样的应用和程序。开发者的范围从记录宏的办公室工作人员到低层设备驱动器作者。这些开发者依靠具有不同复杂度的不同语言和/或不同框架,而使用不同的技能组和/或为不同的目的来编程。传统地,设计了不同的API以不同的个别技能级别和对控制的不同需求(如基于不同的相关场景)为目标。尽管该方法能够成功地提供为具体的开发者优化的API,它仍具有显著的不足。例如,多框架方法产生了开发者很难将知识从一个技能级别和场景类型转移到另一个的情况。当他们需要使用不同的框架实现场景时,开发者遭遇陡峭的(steep)学习曲线。并且不仅学习曲线极陡峭,而且它一般需要写入第一较低技能级别框架的代码必须被从无到有地写入第二较低技能级别框架中。此外,为不同的开发者技能级别创建单独的框架通常导致以一个级别开发者为目标或由其实现的API无法由另一级别开发者使用的情况。图1示出了关于两种不同框架的传统API学习曲线的曲线图101。第一框架对应于具有相对较低级别的技能和/或难度要求同时伴之以由开发者控制的容量相对较低的框架。另一方面,第二框架对应于具有相对较高级别的所需要的技能和/或难度以及伴随的用于由开发者控制的相对较高容量的框架。这样的第一框架可由新手或偶尔为之的开发者使用,并且这样的第二框架可由有经验的或专业开发者使用。例如,第一框架可对应于为Visual Basic所设计的框架,而第二框架可对应于为C++所设计的框架。在该传统 ...
【技术保护点】
一种设计应用编程接口(API)的方法,其特征在于,所述方法包括:为核心场景准备多个代码样本,所述多个代码样本的每一相应的代码样本对应于多个编程语言的一相应的编程语言;以及响应于所述多个代码样本,从所述核心场景衍生所述API。
【技术特征摘要】
US 2003-10-23 10/692,3201.一种设计应用编程接口(API)的方法,其特征在于,所述方法包括为核心场景准备多个代码样本,所述多个代码样本的每一相应的代码样本对应于多个编程语言的一相应的编程语言;以及响应于所述多个代码样本,从所述核心场景衍生所述API。2.如权利要求1所述的方法,其特征在于,它还包括由API设计者确定所衍生的API是否太过复杂。3.如权利要求2所述的方法,其特征在于,它还包括如果所衍生的API被确定为太过复杂,则由所述API设计者提炼所衍生的API以生成提炼的API。4.如权利要求3所述的方法,其特征在于,它还包括由所述API设计者确定所提炼的API是否太过复杂。5.如权利要求1所述的方法,其特征在于,它还包括使用多个开发者在所述API上执行一个或多个可用性学习。6.如权利要求5所述的方法,其特征在于,所述执行包括使用所述多个开发者在所述API上执行所述一个或多个可用性学习,其中,所述多个开发者对所述多个编程语言是典型的。7.如权利要求5所述的方法,其特征在于,它还包括断定所述多个开发者是否能够在没有重大问题的情况下使用所述API。8.如权利要求7所述的方法,其特征在于,它还包括如果所述多个开发者不被断定为能够在没有重大问题的情况下使用所述API,则修订所述API。9.如权利要求8所述的方法,其特征在于,所述修订包括基于来自所述一个或多个可用性学习的至少一个经验修订所述API。10.如权利要求1所述的方法,其特征在于,所述衍生包括衍生所述API以支持分别对应于所述多个编程语言的所述多个代码样本。11.如权利要求1所述的方法,其特征在于,所述衍生包括从所述多个代码样本收集语言专用命令;以及将所述语言专用命令结合进所述API中。12.如权利要求1所述的方法,其特征在于,所述衍生包括从所述多个代码样本收集语言启示的开发者期望;以及将所述语言启发的开发者期望结合进所述API中。13.如权利要求1所述的方法,其特征在于,所述衍生包括从所述多个代码样本收集通用性;以及将所述通用性结合进所述API中。14.如权利要求1所述的方法,其特征在于,所述衍生包括衍生所述API以具有将多个低层分解类型捆绑在一起以支持所述核心场景的聚集组件。15.一种设计应用编程接口(API)的方法,其特征在于,所述方法包括为特征区域选择核心场景;为所述核心场景书写至少一个代码样本;以及响应于所述至少一个代码样本,衍生用于所述核心场景的API。16.如权利要求15所述的方法,其特征在于,所述选择包括为所述特征区域选择多个核心场景。17.如权利要求16所述的方法,其特征在于,它还包括对为所述特征区域所选择的多个核心场景的每一核心场景重复所述书写和所述衍生。18.如权利要求15所述的方法,其特征在于,所述书写包括为所述核心场景书写多个代码样本,所述多个代码样本的每一相应的代码样本对应于多个编程语言的一相应的编程语言。19.如权利要求18所述的方法,其特征在于,所述衍生包括响应于所述多个代码样本衍生用于所述核心场景的API。20.如权利要求15所述的方法,其特征在于,它还包括使用多个开发者在所述API上执行一个或多个可用性学习;断定所述多个开发者是否能够在没有重大问题的情况下使用所述API;以及如果所述多个开发者不被断定为能够在没有重大问题的情况下使用所述API,则修订所述API。21.如权利要求20所述的方法,其特征在于,所述修订包括基于来自所述一个或多个可用性学习的至少一个经验修订所述API以生成修订的API。22.如权利要求21所述的方法,其特征在于,它还包括对所述修订的API重复所述执行和所述断定。23.如权利要求15所述的方法,其特征在于,所述衍生包括通过生成一包括一聚集组件和多个基础分解类型的双层API,衍生所述API以支持为所述核心场景书写的至少一个代码样本。24.如权利要求15所述的方法,其特征在于,所述衍生包括从所述至少一个代码样本收集一个或多个语言专用命令;以及将所述一个或多个语言专用命令结合进所述API中。25.如权利要求15所述的方法,其特征在于,所述衍生包括如果一特定的分解类型的所有成员由与所述核心场景关联的聚集组件展现,将所述特定的分解类型封装到所述聚集组件中。26.如权利要求15所述的方法,其特征在于,所述衍生包括如果一特定的分解类型对其它组件类型是独立地不感兴趣的,则将所述特定的分解类型封装到与所述核心场景关联的聚集组件中。27.如权利要求15所述的方法,其特征在于,所述衍生包括如果一特定类型的至少一个成员不由与所述核心场景关联的聚集组件展现,则从所述聚集组件展现所述特定的分解类型。28.如权利要求15所述的方法,其特征在于,所述衍生包括如果一特定的分解类型可以由另一组件类型独立于与所述核心场景关联的聚集组件有利使用,则从所述聚集组件展现所述特定的分解类型。29.如权利要求15所述的方法,其特征在于,所述衍生包括生成一包括以相对高度抽象为目标的组件类型和以相对低度抽象为目标的组件类型的双层框架。30.如权利要求29所述的方法,其特征在于,以相对高度抽象为目标的所述组件类型被定向到核心场景。31.如权利要求29所述的方法,其特征在于,以相对低度抽象为目标的所述组件类型与以相对高度抽象为目标的所述组件类型相比,向开发者提供了相对更大数量的控制。32.如权利要求15所述的方法,其特征在于,所述衍生包括衍生所述API以令开发者能够为所述核心场景实现一创建-设置-调用用法模式。33.如权利要求32所述的方法,其特征在于,所述衍生包括用预选择的适合所述核心场景的参数产生所述API。34.一种设计应用编程接口(API)的方法,其特征在于,它包括响应于对场景书写的至少一个代码样本,衍生用于所述场景的API;使用多个开发者在所述API上执行一个或多个可用性...
【专利技术属性】
技术研发人员:AJ摩尔,BM阿布拉姆斯,CL安德森,KJ克瓦里纳,MJ皮佐,RA布里罕姆,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。