MidlifeCrisis
From APIDesign
Line 1: | Line 1: | ||
I have to admit I am currently at a [[MidlifeCrisis|midlife crisis]]. I dedicated my last twenty years to promotion of a proper API design. I wrote [[TheAPIBook]], [[I]] tried to propagate the principles of [[good]] [[APIDesign]] and [[modularity]] wherever [[I]] could. However [[I]] am tired... | I have to admit I am currently at a [[MidlifeCrisis|midlife crisis]]. I dedicated my last twenty years to promotion of a proper API design. I wrote [[TheAPIBook]], [[I]] tried to propagate the principles of [[good]] [[APIDesign]] and [[modularity]] wherever [[I]] could. However [[I]] am tired... | ||
- | Because it is always the same. Why do [[I]] have ask: where is your [[Usecase]]? What this method is [[good]] for? What do you actually want to achieve with this method/class/type? Have you considered the difference between [[APIvsSPI]] aspects of your design? Do you have a unit test? Is your | + | Because it is always the same. Why do [[I]] have ask: where is your [[Usecase]]? What this method is [[good]] for? What do you actually want to achieve with this method/class/type? Have you considered the difference between [[APIvsSPI]] aspects of your design? Do you have a unit test? Is your proposed change [[BackwardCompatible]]? Do you have an [[evolution]] story for your design? Is your solution optimized for your comfort or comfort of users of your [[API]]? And so on and so on... People should read [[TheAPIBook]] before attempting to design an [[API]], but they don't and they make the same mistakes again and again. |
[[I]] got so disgust that I feel sick, physically sick, when I have to think about [[API]] design. Last weekend [[Toni]] asked me to review an [[API]] he is creating and showed me what he has. [[I]] starred at him, then at the code and at him, etc. for three minutes before I could say a word. Then I had to apologize and describe my current [[MidlifeCrisis]]. | [[I]] got so disgust that I feel sick, physically sick, when I have to think about [[API]] design. Last weekend [[Toni]] asked me to review an [[API]] he is creating and showed me what he has. [[I]] starred at him, then at the code and at him, etc. for three minutes before I could say a word. Then I had to apologize and describe my current [[MidlifeCrisis]]. |
Revision as of 16:09, 5 May 2017
I have to admit I am currently at a midlife crisis. I dedicated my last twenty years to promotion of a proper API design. I wrote TheAPIBook, I tried to propagate the principles of good APIDesign and modularity wherever I could. However I am tired...
Because it is always the same. Why do I have ask: where is your Usecase? What this method is good for? What do you actually want to achieve with this method/class/type? Have you considered the difference between APIvsSPI aspects of your design? Do you have a unit test? Is your proposed change BackwardCompatible? Do you have an evolution story for your design? Is your solution optimized for your comfort or comfort of users of your API? And so on and so on... People should read TheAPIBook before attempting to design an API, but they don't and they make the same mistakes again and again.
I got so disgust that I feel sick, physically sick, when I have to think about API design. Last weekend Toni asked me to review an API he is creating and showed me what he has. I starred at him, then at the code and at him, etc. for three minutes before I could say a word. Then I had to apologize and describe my current MidlifeCrisis.
When I look at an API these days, all I see is the wasted potential the API could have, but it doesn't and never will, because the amount of investment I would have to do to educate the API stakeholder is so huge, that I just don't want to make it.
Anyway, if you have an API that you'd like me to improve, let me know. If I see real interest in proper API design my disgust and MidlifeCrisis may go away...