New page: Tim Boudreau always wanted me to create guidelines for good API design. I felt uneasy to define them as coming out with a general advice is often very hard. Some advises work j...

New page

[[Tim Boudreau]] always wanted me to create guidelines for [[good]] [[API]] design. I felt uneasy to define them as coming out with a general advice is often very hard. Some advises work just because being applied in some context/[[environment]]. Finding out exactly what the actual context has to be is hard (an example of this is my analysis that finds when usage of [[singleton]]s is acceptable).

As such I was hesitant to define proper [[API]] design [[guidelines]] so far. However people are in need of [[guidelines]] and methodologies and it was just a matter of time till somebody writes down set of ''best practices''. Actually the following checklist is not bad:

http://theamiableapi.com/2012/01/16/java-api-design-checklist/

I found it inspiring. Not that I would agree with everything in the checklist, but it is certainly better start than starting from [[scratch]]. Until I write down proper [[guidelines]] myself, you have my blessing to use the above one (preferably after checking none of the advises clashes with discovered [[paradoxes]]).