DRY = Don’t repeat yourself

  • JonC@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    21 days ago

    I’ve always understood DRY to be about not duplicating concepts rather than not duplicating code.

    In the example here, you have separate concepts that happen to use very similar code right now. It’s not repeating yourself as the concepts are not the same. The real key is understanding that, which to be fair, is mentioned in the article.

    IMO, this is where techniques like Domain-Driven Design really shine as they put the business concepts at the forefront of things.

    • magic_lobster_party@fedia.io
      link
      fedilink
      arrow-up
      1
      ·
      20 days ago

      That’s how DRY is described in Pragmatic Programmer, where DRY was first coined. They’re clear that just because code look similar, doesn’t necessarily mean it’s the same.

    • hono4kami@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      20 days ago

      IMO, this is where techniques like Domain-Driven Design really shine as they put the business concepts at the forefront of things.

      Do you have a resource on where to learn DDD? I feel like I never understood the concept well.

      • JonC@programming.dev
        link
        fedilink
        English
        arrow-up
        0
        ·
        20 days ago

        As already mentioned, the blue book by Evic Evans is a good reference, but it’s a ittle dry. Vaughn Vernon has a book, “Implementing Domain-Driven Design” that is a little easier to get into.

        Personally, I found that I only really grokked it when I worked on a project that used event-sourcing a few years back. When you don’t have the crutch of just doing CRUD with a relational database, you’re forced to think about business workflows - and that’s really the key to properly understanding Domain-Driven Design.