software = science + art + people
2013-08-02
When computer science folks talk about encapsulation, they are usually thinking of how the principle applies to objects and functions inside a codebase. Best practice calls for a separation of concerns — each object responsible for one type of work, hiding all details from its neighbors.
That’s great. But it’s not the only way encapsulation ought to show up in software.
In actual deployment, software packages often manifest anti-patterns in the way that they are configured. A web server has to know all about three different database servers that contribute data for its pages; HA failover scripts must know the identity and responsibility of every actor in the system, as well as many particulars about how these entities use resources to accomplish their tasks.
No wonder our deployments are fragile and high-maintenance…
The cloud computing wave is raising the bar for encapsulation in the way applications — not just objects — discover and interact with one another. In this week’s installment of my series of posts about how to “cloudify”, I discuss how role-based interactions insulate components from details they don’t need to know. It’s encapsulation all over again. And this encapsulation pattern manifests itself in unlikely places — like the order queue at McDonald’s…
Stay tuned for further installments of this series each Friday. As I said in Part 1, I believe that a competence with cloud—cloud-oriented programming, if you will—will be a checkbox on future tech resumes.
Comments-
SutoCom, 2013-09-04:
Reblogged this on Sutoprise Avenue, A SutoCom Source.