Cake Pattern and Why Cake Patterns Sometimes Look Different
The cake pattern is typically described as a way to use small layers of functionality to create a larger, more complex program. This area of application design is typically designed with application scalability not in the pure performance sense, but in the sense of scaling the application up to more complex functionality and maintainability over time.
There have been many papers and blogs on this aspect, but a few especially helpful blogs include:
- http://debasishg.blogspot.com/2010/02/scala-self-type-annotations-for.html
- http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di
- https://www.precog.com/blog-precog-2/entry/existential-types-ftw
- https://coderwall.com/p/t_rapw
All of these describe the cake pattern but they all look alittle different and a reader may be left to wondering why are there so many ways to describe the cake pattern?
The confusion is warranted. The Cake Pattern is really more of a design pattern than a specific, set- in-stone programming approach.
The Cake Pattern design pattern is one that tries to delay making concrete wiring decisions until absolutely needed in your programming code. But it also tries to detect as early as possible, e.g. the compiler, phase, any issues with that wiring. The Cake Pattern is often compared to dependency injection with a DI framework like the spring framework. Of course, many of the concepts between these areas overlap in terms of the job they perform and you ultimately need to decide which approach best supports your application and users.
[read the rest at github: gisthub markdown]
Comments
Post a Comment