Search results
From APIDesign
You searched for APIDesignPatterns:Evolution
For more information about searching APIDesign, see Help.
Showing below 47 results starting with #1.
View (previous 50) (next 50) (20 | 50 | 100 | 250 | 500)
No page title matches
Page text matches
- The Future (2,302 bytes)
3: ... for all of us, if our systems were designed with evolution in mind. I hope this book will provoke discussion...
16: ...r coding practices, better libraries and better [[APIDesignPatterns|API Design Patterns]] make tough tasks, originall... - OlderBlogPosts (111,273 bytes)
365: Is [[Builder]] better [[APIDesignPatterns|pattern]] than [[CumulativeFactory]]? As Radim an...
369: ==== Cumulative Factory [[APIDesignPatterns|API Design Pattern]] ====
371: ... [[APIDesignPatterns|API Design Pattern]]. Read [[APIDesignPatterns:CumulativeFactory|more]]...
384: Casper Bang asked following question about [[APIDesignPatterns:Exceptions|exceptions in API]] after reading the ...
388: ...estion! Inspiring. Here are my current answers: [[APIDesignPatterns:Exceptions|exceptions in API]]. - Case Study of Writing the Extensible Visitor Pattern (595 bytes)
3: ...g [[APIDesignPatterns]] - it may not be ready for evolution. For example the well known [[wikipedia::Visitor_... - SignatureTests (3,631 bytes)
42: ...l). We still need a language that will give use [[evolution]] capabilities while letting us act in almost [[c...
51: [[Category:Tools]] [[Category:APIDesignPatterns:Test]] - Evolving the API Universe (1,068 bytes)
3: ...t have to! If you design your API to be ready for evolution, you can resuscitate even bad design of your brok...
5: ...ns [[Singletonizer]], an interesting creational [[APIDesignPatterns|API design pattern]]. However more information is... - RequestResponse (2,479 bytes)
1: [[APIDesignPatterns|API Design pattern]] that solves the problem of g...
5: ==== Evolution Story ====
7: ...o be implemented. From this interface we have two evolution paths:
23: [[Category:APIDesignPatterns]]
24: [[Category:APIDesignPatterns:Evolution]] - Have You Ever Wondered (13,635 bytes)
25: ...mmon worries. It analyses the differences between evolution of APIs targeted to different clients, analyses w...
42: ...t have to! If you design your API to be ready for evolution, you can resuscitate even bad design of your brok...
48: ...g [[APIDesignPatterns]] - it may not be ready for evolution. For example the well known [[wikipedia::Visitor_...
52: ...or all of us, if our systems were designed with [[evolution]] in mind. I hope [[TheAPIBook|this book]] will p... - APIDesignPatterns:Exceptions (8,610 bytes)
29: ...- your options for [[Ever_Changing_Targets|future evolution]] will remain more open.
31: ...rt, exceptions are classes. They shall follow the evolution rules applicable to classes, as discussed in [[Co...
37: ...me Aspects of APIs, from the point of view of API evolution, there is no difference. When a method in a libra...
89: Exceptions are [[APIDesignPatterns:ExceptionExtensibility|easily extensible]] via su...
92: [[Category:APIDesignPatterns]] - Evolution (51 bytes)
1: #REDIRECT [[:Category:APIDesignPatterns:Evolution]] - ClientAPI (1,758 bytes)
3: ...rence between [[ClientAPI]] and [[ProviderAPI]] [[evolution]] rules. As soon as you publish an [[API]], you, ...
22: [[Category:APIDesignPatterns]]
23: [[Category:APIDesignPatterns:Evolution]] - ProviderAPI (3,010 bytes)
29: [[Category:APIDesignPatterns]]
30: [[Category:APIDesignPatterns:Evolution]] - APIFest08:Report (10,858 bytes)
11: ... me their hacks showing [[BackwardCompatibility]] evolution problems in many solutions.
37: ...r as the solution 07 is based on a variation of [[APIDesignPatterns:RequestResponse|request/response]] pattern, it st... - ExceptionExtensibility (3,165 bytes)
1: It has been mentioned in the [[APIDesignPatterns:Exceptions|page about exceptions]] that changing ...
58: ...ss exposed in the API. This is much more pleasant evolution than for example the one available with [[Talk:Bl...
60: [[Category:APIDesignPatterns]]
61: [[Category:APIDesignPatterns:Evolution]]
62: [[Category:APIDesignPatterns:Exceptions]] - Builder (2,761 bytes)
1: ...''finishing'' the [[API]] calls by final use of [[APIDesignPatterns:Factory|factory method]] makes a lot of sense.
11: ...s can be chained. Alternatively one can use the [[APIDesignPatterns:CumulativeFactory|cumulative factory]] and always...
21: ... characteristics are similar to the ones of the [[APIDesignPatterns:CumulativeFactory|cumulative factory]] pattern. Y...
25: [[Category:APIDesignPatterns]]
26: [[Category:APIDesignPatterns:Creational]] - Factory (898 bytes)
5: This has few benefits from the point of [[API]] [[evolution]]:
6: ... is not subclassable, which solves a lot of nasty evolution problems by itself
12: [[Category:APIDesignPatterns]]
13: [[Category:APIDesignPatterns:Creational]]
14: [[Category:APIDesignPatterns:Encapsulation]] - PropertyFiles (5,584 bytes)
1: ...[[BackwardCompatibility]], be ready for [[API]] [[evolution]], etc.
25: ===== Ready for [[Evolution]] =====
27: ... when designing an [[API]] is to prepare it for [[evolution]]. Why? Because first version is never perfect, y...
29: ...etimes hard to remind ourselves of the need for [[evolution]], especially when we are about to release the fi...
33: ...at point it became clear that there is need for [[evolution]]. It is necessary to indicate whether the [[API]... - AlternativeBehavior (6,943 bytes)
134: [[Category:APIDesignPatterns]]
135: [[Category:APIDesignPatterns:Evolution]] - ClarityOfTypes (6,491 bytes)
42: ...] and moreover they are well set for future, as [[evolution]] story of this pattern is quite good.
44: === Evolution Aspects ===
46: ... of [[DelegationAndComposition]] is useful from [[evolution]] point of view. It is easy to evolve the [[Clien...
48: It is easy to [[evolution|evolve]] the ''Callback'' contract as well. It is...
50: ...rface. But that is quite well thought [[evolution|evolution plan]]. - ImplementOnlyInterface (5,877 bytes)
1: ...able. Each of these [[API]] types has different [[evolution]] characteristics. Also the [[clarity]] of such i...
71: [[Category:APIDesignPatterns]]
72: [[Category:APIDesignPatterns:Clarity]]
73: [[Category:APIDesignPatterns:Creational]] - Adaptable (531 bytes)
11: [[Category:APIDesignPatterns]]
12: [[Category:APIDesignPatterns:Evolution]] - ClearDefinitionOfVersion (1,810 bytes)
19: This is one of [[APIDesignPatterns|the patterns]] where usage of [[Java]] interfaces...
21: [[Category:APIDesignPatterns:Clarity]]
22: [[Category:APIDesignPatterns:Evolution]] - Visitor (3,438 bytes)
1: ...rious approaches to implement [[visitor]] in an [[evolution|evolvable]] [[API]]. The learning path itself is ...
39: [[Category:APIDesignPatterns]]
40: [[Category:APIDesignPatterns:Evolution]] - ImplementationCompatibilityTest (860 bytes)
14: ...Category:APIDesignPatterns:Evolution]] [[Category:APIDesignPatterns:Test]] - ExtendingInterfaces (3,563 bytes)
39: ...ern]] to start with, it is better to count with [[evolution]] and split [[ClientAPI]] and [[ProviderAPI]] as ...
41: ...:APIDesignPatterns]] [[Category:APIDesignPatterns:Evolution]]
42: [[Category:APIDesignPatterns:Anti]] - MetaDesign (3,767 bytes)
20: ...e ''opening ceremony''. Whether it is ready for [[evolution]], whether it is used properly by its [[cluelessn...
35: [[Category:APIDesignPatterns:Meta]] - Excel (5,816 bytes)
23: ...uring the whole talk about [[DSL]]s vs. Library [[APIDesignPatterns|design]] I tried to argue that the important thin...
28: ...ernal DSL can provide a cleaner syntax, a cleaner evolution path, and hence better adoption. Apex has been e... - AssemblableTypes (4,972 bytes)
51: ...Category:APIDesignPatterns:Evolution]] [[Category:APIDesignPatterns:Meta]] - APIvsSPI (6,917 bytes)
13: The worst thing (with respect to [[evolution]]) an [[API]] designer can make is to create a ty...
15: ...et a ''fixed point'' - e.g. no changes allowed. [[Evolution]] prevented (only [[ExtendingInterfaces]] approac...
29: ...is perfect. On the other hand, we are sure some [[evolution]] will be needed. Thus we associate this ''fixed ...
59: ...mplicated use-cases that may require more complex evolution.
83: ...s new ''open space'' (so it is ready for future [[evolution]]). The whole set up is displayed on the picture ... - Incremental deployment (6,423 bytes)
44: [[Category:APIDesignPatterns:Evolution]] - OrderOfElements (7,000 bytes)
81: ...Category:APIDesignPatterns:Evolution]] [[Category:APIDesignPatterns:Anti]] - Covariance (2,199 bytes)
26: [[Category:APIDesignPatterns]]
27: [[Category:APIDesignPatterns:Evolution]] - Contravariance (1,344 bytes)
24: [[Category:APIDesignPatterns]]
25: [[Category:APIDesignPatterns:Evolution]] - InvisibleAbstractMethod (2,599 bytes)
1: ...ubclass it. This can be considered as [[good]] [[:APIDesignPatterns|API design pattern]], especially if such pattern ...
46: [[Category:APIDesignPatterns:Evolution]]
47: [[Category:APIDesignPatterns:Anti]] - Vendor library (2,600 bytes)
9: ...:APIDesignPatterns]] [[Category:APIDesignPatterns:Evolution]] - Final interface (8,284 bytes)
1: ...er in [[Javadoc]] or in better places) with the [[evolution]] plan to expand it incompatibly (from the point ...
7: ...r with (the only) implementation you don't have [[evolution]] and versioning problems - the [[proximity]] is ...
91: ...AnnotationProcessor]] is finally real [[:Category:APIDesignPatterns|API Design Pattern]]!
93: ...esignPatterns:Anti]] [[Category:APIDesignPatterns:Evolution]] - GradleWrapper (1,490 bytes)
3: ...in it. Only then your [[API]] becomes ready for [[evolution]]''!
9: [[Category:APIDesignPatterns]]
10: [[Category:APIDesignPatterns:Anti]]
11: [[Category:APIDesignPatterns:Evolution]] - ConfigurationObject (9,368 bytes)
1: ...n and again: optimistically ignore the need for [[evolution]]! Usual history of an [[API]] starts with introd...
23: ...it is time to switch to [[ConfigurationObject]] [[APIDesignPatterns|design pattern]]:
208: [[Category:APIDesignPatterns]]
209: [[Category:APIDesignPatterns:Creational]]
210: [[Category:APIDesignPatterns:Encapsulation]] - ChameleonBuilder (6,213 bytes)
9: ...ibutes. However this has the typical drawbacks to evolution of [[factory]] methods - the order of parameters ...
68: ... during execution. Thus the performance of this [[APIDesignPatterns|API Design Pattern]] is the same of plain builder...
86: ... a single return type in [[Java]]. As such this [[APIDesignPatterns|API pattern]] only works for a single ''essential...
105: [[Category:APIDesignPatterns]]
106: [[Category:APIDesignPatterns:Creational]] - WhiningBuilder (7,716 bytes)
108: === [[Evolution]] ===
110: An interesting question from an [[evolution]] point of view: what happens when we need to add...
123: ... their code is wrong and needs additional tweaks. Evolution of this pattern works nicely with respect to [[bi...
127: [[Category:APIDesignPatterns]]
128: [[Category:APIDesignPatterns:Creational]] - DefaultMethods (7,796 bytes)
11: Later an [[evolution]] of the [[API]] may require one to add new metho...
67: ...presents a snapshot of a protocol at a time, it [[evolution|evolves]] (which is what we wanted), but also wit...
73: .... Moreover when we look at the concept from the [[evolution]] point of view, it may get even fuzzier.
99: ...gnPatterns:Clarity]] [[Category:APIDesignPatterns:Evolution]] - DesignForJDK9 (13,551 bytes)
237: ...Category:APIDesignPatterns:Evolution]] [[Category:APIDesignPatterns]] - Visitor18 (872 bytes)
7: [[Category:APIDesignPatterns]]
8: [[Category:APIDesignPatterns:Evolution]] - CodeCoverage (5,326 bytes)
65: ...simulated only if two [[mozilla]] browsers and an evolution client was running as then the memory was small e...
70: [[Category:APIDesignPatterns:Tests]] - Default Listener Methods (2,732 bytes)
39: ...gnPatterns:Clarity]] [[Category:APIDesignPatterns:Evolution]] - BinaryCompatibleDefaultMethods (6,828 bytes)
106: That'd be completely [[BinaryCompatible]] evolution. People would have to write ''seq.is().empty()'' ...
110: Moreover this kind of [[evolution]] "mounts" an open space of [[ClientAPI]] on the ...
125: [[Category:APIDesignPatterns]]
126: [[Category:APIDesignPatterns:Evolution]] - ScienceOfAPIDesign (4,324 bytes)
6: of provably correct [[evolution]]. My [[APIDesignPatterns]] aim at 100% [[BackwardCompatible]]
7: [[evolution]] - e.g. even if one knows what will happen in th...
11: Of course 100% compatible [[evolution]] may sound a bit ''too demanding'' for regular b... - Genetics (6,409 bytes)
1: ...t recently came up when I was trying to use the [[Evolution]] vs. [[Intelligent design]] argument among my co...
3: ...uccess is to create a system that blossoms with [[evolution]] rather than prescribing what shall be the resul...
5: ...ches starts with a thought: ''The core concept of evolution is pretty much copy an existing thing with only m...
14: In order to practice [[evolution]] the nature allows copying, mixing and even rand...
16: ... [[genetics]] - it can no longer participate in [[evolution]] and reproduce further.
View (previous 50) (next 50) (20 | 50 | 100 | 250 | 500)