Recently a friend discovered this blog. She asked me why do I write so much about Expressive Design. This is not the first time I’m asked this so I decided to write down my answer. I will try to give some overview of the topic and link to the many articles in this blog about […]
Archive for the 'components' Category
Expressiveness Omnibus
Published by December 19th, 2010 in abstractions, books, components, domain driven design, domain specific languages, enterprise architecture, layers, object orientation, soa, software architecture, software design, systems integration and trends. 2 CommentsSome Thoughts on Database Integration and Domain-Driven Design
Published by October 4th, 2010 in case study, components, domain driven design, enterprise architecture, layers, object orientation, soa, software architecture, software design and systems integration. 3 CommentsLetting two systems share a single database is one of the worst, most heavily coupled methods for systems integration. Unfortunately it’s also one of the most popular. It is very usual for a developer to have to talk to someone else’s database and quite commonly this accidental complexity cannot be removed as there’s often too […]
ThoughtWorks Australia TeamHug 2010: Why Enterprise Architectures Suck
Published by September 12th, 2010 in abstractions, components, domain driven design, enterprise architecture, events, layers, management, object orientation, soa, software architecture, software design, systems integration, thoughtworks and web. 3 CommentsWe just had our ThoughtWorks Australia Team Hug. It’s some sort of internal conference where everyone from Sydney, Melbourne, Perth and Brisbane get together with some guests from overseas to get drunk (by the way, we are hiring). We also have presentations and many other work-related sessions.
This year I’ve held a session on a quite […]
Thoughts on Abstractions: Part 2 – Abstractions in Your Domain
Published by September 6th, 2010 in abstractions, books, components, domain driven design, layers, object orientation, soa, software architecture and software design. 2 CommentsAs we saw in Part I, abstractions are everywhere. Unfortunately, even though everyone is more than happy to reuse abstractions provided by someone else I often see people failing to identify those in their own code.
Most people tend to create abstractions found using Russ Abbott’s method of using the textual description of a problem to […]
Thoughts on Abstractions: Part 1 – Abstractions Everywhere
Published by August 17th, 2010 in abstractions, books, c#, components, domain driven design, domain specific languages, java, language adaptation, language oriented programming, layers, object orientation, ruby, software architecture and software design. 6 CommentsUpdate: Part II is here.
Most complex tasks are solved using abstractions. To create an abstraction one groups lower-level concepts, what I will call primitives in this text, and make them interact in a pre-defined way.
Abstractions are present at all levels in a system. Computers work based on electric signals. To reduce the Essential Complexity we […]
Everyday Tales: We Call it Unit for a Reason
Published by June 7th, 2010 in agile, case study, components, everyday tales, java, object orientation and software design. 4 CommentsLast week, Cauê and I were refactoring some classes in our systems and faced an interesting situation.
In our application we have a notifications system. It is quite simple; notifications are read from a text file and shown in a small information box in the home page. The MVC controller –it’s a Java application and we […]
Agile Anti-Patterns: Democratic Design
Published by May 9th, 2010 in agile, components, java, layers, object orientation, ruby, soa, software architecture and software design. 5 CommentsWeeks ago, some people in the Ubuntu community got a bit disappointed with the distribution’s core team:
> We are supposed to be a community, we all use Ubuntu and contribute
> to it, and we deserve some respect regarding these kind of decisions.
> We all make Ubuntu together, or is it a big lie?
We all make […]
I Wish I Knew That Before Getting This Job – Slides and (Long) Notes
Published by November 24th, 2009 in agile, business, c#, components, domain driven design, domain specific languages, economics, events, java, layers, management, object orientation, software architecture, software design, thoughtworks and trends. 0 CommentsAs I said here before I was in Brazil some weeks ago to present at a conference. I had a really great time over there with some amazing people and would like to thank Caelum for their hard work in creating such a great conference. I’m making the slide deck and notes available in my […]
Getting Cloudy: Clojure on Google App Engine
Published by April 8th, 2009 in business, case study, clojure, cloud computing, components, groovy, java, lisp, soa, software architecture, software design, thoughtworks, trends and web. 8 CommentsSome weeks ago I joined a handful of ThoughtWorkers invited to test the new Google AppEngine’s Java API. Unfortunately I had a project requiring a lot of attention during most of this period but once back on the beach I found some time to play around with it.
Cloudy Skies
Google AppEngine (GAE) is Google’s shot in […]
Gödel and Testing
Published by March 14th, 2009 in agile, books, clojure, components, layers, lisp, soa, software architecture, software design and web. 12 CommentsFor some months now I’ve being playing around the idea of writing a testing framework for Clojure. It started as just a more extensible fork of the fact library but now I’m trying to explore some funny ideas in the testing semantics.
Although this project is progressing too slowly it already spawned some other pet […]

