Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There is a very good <a href="http://www.se-radio.net/podcast/2008-07/episode-104-plugin-architectures" rel="nofollow noreferrer">episode</a> of <a href="http://www.se-radio.net" rel="nofollow noreferrer">Software Engineering Radio</a>, which you may be interested in.</p> <p>For future reference, I have reproduced here the "<a href="http://books.google.com/books?id=0X6wZRd5OOQC&amp;pg=PP2&amp;lpg=PP2&amp;source=bl&amp;ots=nM6-APiQGz&amp;sig=2bHPZikkIU0h7D3lH-A2_qpj0HI&amp;hl=en" rel="nofollow noreferrer">Rules for Enablers</a>" (<a href="http://samson959.spaces.live.com/Blog/cns!EA0CC6C044B39D00!187.entry" rel="nofollow noreferrer">alternative link</a>) given in the excellent <a href="http://www.worldcat.org/oclc/530838" rel="nofollow noreferrer">Contributing to Eclipse</a> by Erich Gamma, Kent Beck. </p> <blockquote> <ul> <li>Invitation Rule - Whenever possible, let others contribute to your contributions.</li> <li>Lazy Loading Rule - Contributions are only loaded when they are needed.</li> <li>Safe Platform Rule - As the provider of an extension point, you must protect yourself against misbehavior on the part of extenders.</li> <li>Fair Play Rule - All clients play by the same rules, even me.</li> <li>Explicit Extension Rule - Declare explicitly where a platform can be extended.</li> <li>Diversity Rule - Extension points accept multiple extensions.</li> <li>Good Fences Rule - When passing control outside your code, protect yourself.</li> <li>Explicit API Rule - separate the API from internals.</li> <li>Stability Rule - Once you invite someone to contribute, don?t change the rules.</li> <li>Defensive API Rule - Reveal only the API in which you are confident, but be prepared to reveal more API as clients ask for it.</li> </ul> </blockquote>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload