- 什么是最好的实践和模式应遵循的设计的API?
- 如何实现实现隐藏的最佳方式(C ++ / Java的)?
- API的设计在性质上是通用的?
- 任何参考书籍/链接与精致的例子初学者引导?
Answer 1:
这可能是对你有用。
API设计的小手册(Wayback机器)
(闭死原件)API设计的小手册
Answer 2:
我不知道我有一个伟大的答案都在那里,你个人的问题,但我想我有非常第一个很好的回答。
尝试使用它是有史以来之前。 我的意思是,好像真的存在的代码编写单元测试。 写一些将要使用API,你甚至已经写了API的一个前行的代码。 当您尝试使用它,你将很快看到什么可行,什么不能在你脑子里的设计工作, 因为你还没有写任何的你会很快改变,以符合其实际使用实际的代码 。
从未有任何摩擦,如果你有没有犯任何的它的代码改变的东西,但你做的那一刻,往往是不情愿的一些措施来这样做。
Answer 3:
Q4:
- 如何设计一个好的API和重要性 -伟大的视频,非常值得花时间看的。
在我看来,乔希布洛赫有最好的想法,当谈到编写良好的API,并且他可以在一个非常容易理解的方式解释它们。 上面的视频将解决Q1-3为您服务。
Answer 4:
我建议你检查如何设计一个好的API及为何重要
一个写得很好的API可以是一个伟大的资产,该写的组织和所有使用它。 鉴于良好的API设计的重要性,令人惊讶的一点已经写关于这个问题的。 在这次讲座中(记录在JavaPolis的),Java库设计师约书亚·布洛克教你如何设计一个良好的API,有什么好的和坏的API看起来像许多例子。
http://www.infoq.com/presentations/effective-api-design
您还可以阅读的书实用API设计:一个Java™框架架构师的自白 。 我没有读它,所以我不知道它的内容可能是对你有用。
另一种资源来检查: 如何设计(模块)API
Answer 5:
我有一个关于第3点(通用API设计),一个技巧:
开始立足于特定使用案例的API的; 让你的设计而定的,不是通用的-后来的后来genericise 如果您发现该API可以重新使用。
在过去,我已经看到重构的点的API,他们是很通用的方法参数之一是“参数”对象或更糟的是,对应于artbitrary一段XML DOM树; 例如
void processData(Parameters reportParams);
有了这个尤伯杯通用的方法:
- 错误是不太可能在编译时或目测的代码,并在运行时将浮出水面,这使得它们难以追查被发现。
- 代码将不易阅读,少自我记录因此很难使用或实现。
- 因为在内部它需要分解这个“参数”对象为特定的使用情况,并对其进行处理的API的实现将变得丑陋。
Answer 6:
A按 - 实用API设计 - 一个Java架构师的自白 - 2008
务实 - 面向接口设计 - 2006年
Answer 7:
阅读有效的Java通过乔希布洛赫。 这本书对于任何Java程序员是伟大的,但也解决了很多周围的一个有用的API创建的问题。
Answer 8:
结帐这个播客
其对有关API设计一些非常好的概念会谈。
Answer 9:
您可以实现以下原则:
1)使用建立的或公知的方法,实施例:
createPatientRecord();
createPatientAppointment();
createPatientCheckup();
2)返回值:
- 如果抛出任何异常
- 如果没有找到对象,返回null
- 如果几个对象,返回空列表不为空
3)一致的参数顺序/序列
recallPatientRecord(long patientId, long hospitalId);
recallPatientRecord(long patientId);
recallPatientRecord(long patientId, long hospitalId, int disciplineCode);
Answer 10:
这个问题几乎是不可能的回答。 它甚至有可能不会是堆栈溢出适当的问题(人答:我怎么解决具体问题的人?B:这是这个确切的答案)。
1.什么是最好的实践和模式应遵循的设计的API
什么编程语言,我们谈论的? 哪些领域的问题域的,我们谈论的? 因为什么工作对一个编程语言/问题域可能在另一种编程语言/问题域很好地工作。
2.How实现实现隐藏的最佳方式(C ++ / Java的)
有一个问题的答案,这是太长写在这里。 事实上,它是那么的漫长,一个网站引用是不够的。 有很多网站和书籍,组合在一起时,会回答这个问题。 哦,我只是在谈论C ++。 重复Java中全过程。 而对于C#,并为Python,和...(等)
其与实施例整齐初学者引导4.Any参考书/链接
选择一个编程语言。 然后,我可以提供书籍和链接引用。 由于弗雷德·布鲁克斯写道,没有银弹。 没有,你可以从编程语言编程语言单一的心态。 是什么让一个很好的API中的一个编程语言将是另一种编程语言中的设计错误。 相信我,我才知道这个很难,为什么试图跨越这些语言运用C ++,Delphi和Java的成语。 这导致不好的API和糟糕的代码。
也有设计的API思想的竞争学校。 而且,不幸的是,现实情况是,没有人是100%正确的。 事实上,你成为当你知道思想的多所学校,并知道什么时候思想的特殊学校适用于一个特定的问题有很大的API设计。