Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
How would you like to view the presentation?
Introducing SQLFire: a memory-optimized, high performance SQL database
The WebSphere Liberty Profile for Developers: An Introduction
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
I'm always surprised by Kevlin's broad literacy on programming subjects, and the ability to go from very-very high level concepts to actual code level consequences.
This presentation shows that the SOLID principles of encapsulation, substitution and interface-dependency have deep inter-relatedness. It shows different aspects of these in virtually unrelated technologies, like C, C++, Java, COM and Javascript. It seems it recommends to shift the ADT taxonomy to interface inheritance in order to reach pure object-orientedness.
What I miss is the expansion of the object/class concept from a perceptional view. I think it's a very interesting question of how the notion of classes sneaked in to the object-oriented paradigm, but perhaps this presentation simply wasn't about this.
I prefer to interpret Kevlin's comment "Impl? No." a bit differently: if I don't yet know what makes a particular implementation of an interface different, then I will name the class XImpl; however this suffix "Impl" (like "Factory", "Singleton", "Manager", "Policy"...) signals a purely structural name which, while useful, restricts my understanding of the design. After some time, as I learn what makes this particular implementation significant within the context of the system, I rename XImpl to SignificantPropertyX, where "SignificantProperty" is an aspect of the implementation that matters in the current design. This corresponds quite nicely with Kevlin's example here. I don't know that "RandomAccessRecentlyUsedList" means more than "RecentlyUsedListImpl" when we don't yet know whether random access matters in the design.
I have summarised an approach to improving names here: link.jbrains.ca/ovMMvz
... you learn couple of important things, and realize that you don't fully comprehend dozen of even more important ones.
Commendable job Kevlin!
If the interface has one implementation, then you're going to be stuck with some generic naming convention: Impl, Default, Standard are all ones that I've seen. Besides if you follow his advice and the concrete implementation is only referenced with the new operator, then what's the big deal?
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
4 comments
Watch Thread Reply