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?
Architectures You've Always Wondered About @QCon New York
Systems Engineering for Dummies eBook
Branching & Merging Efficiently: A Guide to Using Process-Based Promotional Patterns
Why NoSQL? A Primer on the Rise of NoSQL
Introducing SQLFire: a memory-optimized, high performance SQL database
en.wikipedia.org/wiki/Barbara_Liskov
Barbara was referred to as a "he" several times during this talk.
1. for the "many methods with 4-5 lines of code", answer shouldn't be "well, what you want, a method with thousands lines of code", there is some granularity between the 2 extremes described, the talent is in finding that balance between size (of methods) and number (of methods), in such way that the balance still makes sense (semantically) and the code is readable.
2. "make a method do ONE thing well" is ambiguous. A method which calls 2 methods that each do ONE thing well, will do TWO things, unless you define doing the 2 things as doing 1. Maybe for you it's clear what you mean, sorry, for me isn't.
3. instills a fear of change which shouldn't really exist, the changes are the only constant thing, right?
5. the liskov principle is a nice one, nobody actually implements it as it's stated (possibly Eiffel, with the postconditions). Overriding shouldn't be allowed in case the principle is enforced (the behavior of a method between child and parent classes differs, hence they can't really be "substitutable").
6. there is a good undertone of "think before you apply".
7. the rest is ok, but again, unconvincing.
Just my 2 cents.
for some reason I deleted the 4. in the above list.
4. "no plans survive the first battle", the same applies to all the "smart, beautiful, elegant" APIs I ran into, after a while (think years) they became ugly, tired, useless and in general obnoxious.
Does infoq use any CDN?
about 2: Uncle Bob wrote in clean code book : "if a function does only those steps that are one level of abstraction below the stated name of the function, then the function is doing one thing. After all, the reason we write functions is to decompose a larger concept (in other words the name of the function) int a set of steps at the next level of abstraction"
Regards
Grubhart
well, both the presenter and uncle bob are right (and I actually do understand what the presenter stated), unfortunately the wording is not great in either case. In case of the presentation, is not the "number" of things that is the problem ("that number must be 1"), but is the purpose of things which matters, a method should do only and strictly what's required of it and nothing else ("what's required" is a different issue which needs a better definition). In case of uncle bob (how is uncle bob?), is difficult to think in terms of "how many levels of abstraction" are between certain things, and make sure that the number is 1, so it's not really helpful either (for example, how many levels of abstractions are between a method that saves an object and a method that calls a SQL statement? my personal answer is "who the hell knows?").
IMO in both cases someone tries (too hard) to extract some smarty-pants "principles" from a fairly down-to-earth example, and, in doing so, lose or hide the meaning.
For Java, one should keep in mind that this double checked locking for Singleton creation might be broken.
www.cs.umd.edu/~pugh/java/memoryModel/DoubleChe...
For Java, one should keep in mind that this double checked locking for Singleton creation might be broken.
www.cs.umd.edu/~pugh/java/memoryModel/DoubleChe...
Uh, that was solved almost 8 years ago with Java 5.
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.
8 comments
Watch Thread Reply