Archive for the 'software design' Category

Everyday Tales: Anatomy of a Refactoring – Part 3

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, […]

Everyday Tales: Anatomy of a Refactoring – Part 2

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, […]

Everyday Tales: Anatomy of a Refactoring

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 […]

Coders at Work: My Review

I just finished reading Peter Seibel’s new book, Coders at Work.

I was a bit skeptical at first. I only picked the book because of the big names on the cover and because Peter Siebel’s Practical Common Lisp is one of my favourite books on learn-a-new-programming-language. I thought that a book filled only with interviews with […]

I Wish I Knew That Before Getting This Job – Slides and (Long) Notes

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 […]

Don’t Trust Fake IDs

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 […]

Ubiquitous Language, Tiny Types and Responsibility

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()
[…]

3 Things Agile Teams Should Care About

Regardless of what kind of team you have, it is a given that if you keep the wrong focus you are going to be in some kind of trouble. It is very important for a team to have a clear understanding of the project’s goals and constraints. That sounds like PM-speak but it’s not only […]

ThoughtWorks Away Day Presentation: Common Myths about Type Systems

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 […]

Real World Haskell – Book Review

I just finished reading Real World Haskell. This was my first book on Haskell, I’ve read only articles and papers before and I believe it was a very good introduction to the language.
The book tries to use real world problems and I feel like it is not very successful as it. The examples focus too […]




About

You are currently browsing the Fragmental.tw weblog archives for the software design category.

Longer entries are truncated. Click the headline of an entry to read it in its entirety.





Creative Commons License

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.