要设计既功能强大又易于使用的框架
要明确的为具有不同编程风格、需求、技能以及使用不同编程语言的开发人员设计框架
要了解那些使用多语言框架的广大开发人员
1.框架设计的基本原则
场景驱动设计原则:必须从一组使用场景以及实现这些场景的样例代码开始。要确保对任何包含公有API的特性的设计来说,其核心部分都是API设计规范。要为每一个主要的特性域定义一些最常见的使用场景。要确保使用场景与适当的抽象层次相对性。场景应该大致与最终用户的用例相对应。要以这样的方式来设计API:先为主要的使用场景编写样例代码,然后再定义对象模型来支持这些样例代码。要用至少两种不同的编程语言来为主要的场景编写样例代码,最好能保证所选编程语言的语法和风格差异很大。不要在设计框架的公用API时完全依赖于标准的设计方法。要安排可用性研究来测试用于主要场景的API。
2.低门槛原则
框架必须以易于实验的方式来为普通用户提供一个低门槛
要确保每个主要特性域的名字控件只包含哪些用于最常见场景的类型。应该把用于更高级的场景的类型放在子名字空间中。要为构造函数和方法提供简单的重载函数。一个简单的重载函数不仅参数的数量非常少,而且所有的参数都是基本类型。不要在为主要的使用场景设计的类型中包含用于高级场景的方法。不要要求用户在最基本的场景中显式地实例化一个以上的类型。不要要求用户在为基本使用场景编写代码之前就进行大量的初始化。要尽可能地位所有的属性和参数提供合适的默认值。要通过异常来传达对API得误用。
3.自说明对象模型原则
在简单的使用场景中,一定要让框架无需文档就能使用。要确保API是直观的,无需查阅参考文档就能用于基本场景。要为所有的API提供优秀的文档。
设计自说明的API时最重要的一下考虑因素:
1.命名 要在规范检查中重视标示符名称的选择 不要担心标示符的名字太冗长 要在设计过程的早期让用户教育专家参与 考虑把最好的名字留个最常用的类型
2.异常 要通过异常消息来告诉开发人员对框架的误用。
3.强类型
4.一致性
5.限制抽象的数量
4.分层架构原则
分层设计使得在单个框架中同时提供强大的功能和易用性成为可能
在单独的名字空间镇南关暴露层 :把高层类型和底层类型放在虽然不同但是有联系的名字空间中。
在相同的名字空间中暴露层 :把高层类型和底层类型放在同一个名字控件中。考虑对框架进行分层,使高层API能提供最佳的开发效率,底层API能够提供最强的的功能和最丰富的表现力。避免把低层API和高层API混在同一个名字空间中,如果低层AIP非常复杂的话。要确保单个特性域中不同的层能够很好的集成在一起。