Paradoxes
From APIDesign
(Difference between revisions)
(New page: There is nothing unnatural on paradoxes. Yet they attract human attention. They show where our expectation does not match reality. And that is exactly the place where we can learn some...) |
|||
(17 intermediate revisions not shown.) | |||
Line 1: | Line 1: | ||
+ | Soon after publishing [[wikipedia:Kant|Kant]]'s [[wikipedia:Critique_of_Pure_Reason|Critique of Pure Reason]], [[wikipedia:Kant|Kant]] realized that nobody is able to read it all and he released his [[wikipedia:Prolegomena_to_any_Future_Metaphysics|Prolegomena]] to summarize and re-explain in more understandable style the thoughts of his [[wikipedia:Critique_of_Pure_Reason|Critique]]. I'd like my [[Paradoxes]] to do the same to [[TheAPIBook]] with the hope to attract wider audience to the topic of [[API]] design and convince part of them that it is worth to buy [[TheAPIBook]]. | ||
+ | |||
+ | [[Image:ParadoxesCover.png]] | ||
+ | |||
+ | The book is now available for download at [http://buy.apidesign.org Amazon US] and mirror sites, including [http://www.amazon.co.uk/gp/product/B009NNXPES/ref=as_li_qf_sp_asin_tl?ie=UTF8&camp=1634&creative=6738&creativeASIN=B009NNXPES&linkCode=as2&tag=apidesignorg-21 Amazon GB]. Those who prefer other formats and readers than kindle may take a look at [http://www.barnesandnoble.com/w/20-api-paradoxes-jaroslav-tulach/1113250751 Barnes & Noble] site. | ||
+ | |||
+ | The presentation has been delivered many times. Here is a recording of [[20ParadoxesAtJDD|20 API Paradoxes]] at [[JDD]] Krakow. | ||
+ | |||
+ | <!-- | ||
+ | |||
There is nothing unnatural on [[paradox]]es. Yet they attract human attention. They show where our expectation does not match reality. And that is exactly the place where we can learn something new. That is why let's concentrate on [[paradox]]es. | There is nothing unnatural on [[paradox]]es. Yet they attract human attention. They show where our expectation does not match reality. And that is exactly the place where we can learn something new. That is why let's concentrate on [[paradox]]es. | ||
- | A clasification of an [[API]] [[paradox]] should contain: | + | A clasification of an [[API]] [[paradox]] is going to be 3 to 10 pages long and should contain: |
* name | * name | ||
* description of the original expectation | * description of the original expectation | ||
Line 17: | Line 27: | ||
* Where are the users? There is [[distributed development]]. | * Where are the users? There is [[distributed development]]. | ||
* Shield against change. Describe types of [[BackwardCompatibility]]. | * Shield against change. Describe types of [[BackwardCompatibility]]. | ||
- | * [[ | + | * Hurting yourself. [[Incremental deployment]] can hurt even author of the [[API]]. |
- | * [[Code Against Interfaces]]. | + | * Freedom for everyone! The less freedom [[API]] users have, the better. |
+ | * [[ClientAPI]] is different to [[ProviderAPI]]. Separate [[APIvsSPI]]. | ||
+ | * [[Code Against Interfaces, Not Implementations|Code Against Interfaces]]. | ||
* Maintaining API is hard! No, it is not. Proper [[API Patch]] is cheap. | * Maintaining API is hard! No, it is not. Proper [[API Patch]] is cheap. | ||
+ | * [[Intelligent_design|Evolution or intelligent design]]? | ||
+ | * Review for beauty! No, use scientific [[netbeans:APIReviews|methods]]. | ||
+ | * Know it better! Who should know more? [[SuperVsInner]]? | ||
+ | * Bugs compromise compatibility! No, learn to provide [[AlternativeBehaviour]]. | ||
+ | * [[Modularity]] gives you flexibility. | ||
+ | * Reuse complicates use. TBD. | ||
+ | * Java is a perfect language for [[DSL]]s. Show [[LiveDB]]. | ||
+ | * Improve by remove. E.g. [[DiamondsVsStars|APIs are like stars]]. | ||
+ | |||
+ | The above is your [[API]] design hand book reference. Deeper understanding of the topic can be obtained by reading [[TheAPIBook]]. Don't wait and get it [http://buy.apidesign.org here]! | ||
+ | |||
+ | * Apendix: API design [[guidelines]]. | ||
+ | |||
+ | --> |
Current revision
Soon after publishing Kant's Critique of Pure Reason, Kant realized that nobody is able to read it all and he released his Prolegomena to summarize and re-explain in more understandable style the thoughts of his Critique. I'd like my Paradoxes to do the same to TheAPIBook with the hope to attract wider audience to the topic of API design and convince part of them that it is worth to buy TheAPIBook.
The book is now available for download at Amazon US and mirror sites, including Amazon GB. Those who prefer other formats and readers than kindle may take a look at Barnes & Noble site.
The presentation has been delivered many times. Here is a recording of 20 API Paradoxes at JDD Krakow.