We finished last post with this funny situation: the abstraction that represents Facebook depends on our Domain Model.
It was a bit obvious that what we needed was not only system abstractions for Facebook, Twitter and the like but Bounded Contexts. We need to acknowledge the fact that these domains are not part of our model, […]
Read the first post here.
In the previous post we were facing the problem demonstrated by the diagram below.
Our FacebookMessageParser needs an instance of AllSocialNetworks so that it can create valid Users coming from Facebook. The only implementation we have for the AllSocialNetworks interface is UserRepository, and this implementation needs a FacebookMessageParser. That’s a circular dependency, […]
I’ve been extremely busy with project after project in the past few months, leaving me no time to do any research and/or play around interesting things. Even though I prefer to write about what is really interesting me at a given moment, I think that writing about some smaller/simpler problems and solutions would be better […]
Published by Phillip Calçado 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.
As 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 […]
After so many years I thought that this was a dead topic but recently I saw at least two reasonably experienced developers having trouble with object identity and thought that it would be good to write about it.
Most languages define some kind of equality operator on objects, in Java, for example, that is the equals […]
As a consultant I have to log my hours in a timesheet application. This could be a test inside the timesheet app:
[TestFixture]
public class BillableTimeTest
{
[Test]
public void ShouldhaveCorrectNumberOfWorkedHours()
[…]
Published by Phillip Calçado August 12th, 2009
in c#, clojure, groovy, haskell, java, language oriented programming, lisp, object orientation, rails, ruby, software design, thoughtworks and trends.
In ThoughtWorks we get together at least once an year for a whole weekend to drink beer and do whatever people consider interesting. This year’s ThoughtWorks Australia Away Day (AKA Team Hug) was somewhere in Victoria and among other activities (and a bus crash) we had technical sessions.
I used one of those slots to do […]
Published by Phillip Calçado March 12th, 2009
in domain driven design, domain specific languages, fluent interfaces, language adaptation, language oriented programming, object orientation, ruby, software architecture, software design, thoughtworks and trends.
Just posted slides for a presentation I gave this week for one of our clients.
Expressive Design (in 20 minutes)
View more presentations from Phillip Calçado.
It was a very nice session where we talked about the hard work that is introducing such ideas in a corporate environment as those are finally reaching mainstream.
Notice that in this presentation […]
Long time since my last book review. I just finished reading Programming Language Pragmatics, by Michael L. Scott.
The book describes how diverse programming languages implement diverse features and paradigms. It uses a cleat language and it is full of examples.
It starts really well with an overview of the steps executed during parsing and compilation. It […]
Published by Phillip Calçado January 20th, 2009
in clojure, domain specific languages, fluent interfaces, java, language adaptation, language oriented programming, lisp, object orientation, ruby, software design and thoughtworks.
We just started holding 20 minutes presentations during lunch time in the ThoughtWorks Sydney office. For the first session I gave a not-that-short talk on Lisp macros using Clojure. The slides are below.
Lisp Macros in 20 Minutes (Featuring Clojure)
View more presentations or upload your own. (tags: thoughtworks clojure)
It turns out that 20 minutes is too […]