Published by Phillip Calçado 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.
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 abstract those signals with […]
Published by Phillip Calçado March 22nd, 2010
in agile, books, c#, domain driven design, domain specific languages, events, java, language oriented programming, layers, object orientation, software architecture, software design and trends.
Over the past years I’ve held many workshops on Domain-Driven Design. We had more than one hundred people on those sessions, and feedback was often pretty good. After my last run I told my business partner that this was my last time running those workshops.
I think that Domain-Driven Design is one of the most […]
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 […]