77

Is something like DRY a design pattern, a methodology, or something in between? They do not have specific implementations that could neccessarily be demonstrated(even if you can easily demonstrate a case NOT using something like KISS... see The Daily WTF for a plethora of examples), nor do they fully explain a development process like a methodology generally would. Where does that leave these types of "rule of thumb"'s?

7
  • 21
    DRY SOLID KISS... I don't know if that makes software design more appealing, or less... May 2, 2011 at 19:11
  • 13
    Acronyms? (Grinning, running, and ducking.)
    – Warren P
    May 2, 2011 at 19:45
  • 2
    @Warren P: That becomes GRAD... Hmmm... May 2, 2011 at 20:09
  • 1
    a DRY & SOLID KISS is definitely better than a wet & weak slurp... Feb 20, 2013 at 9:23
  • Marketing delivered buzzwords. Sep 21, 2016 at 21:21

3 Answers 3

121

According to Wikipedia it is a principle of software development.

In fact, Wikipedia refers to all of them as principles:

DRY:

In software engineering, Don't Repeat Yourself (DRY) or Duplication is Evil (DIE) is a principle of software development

KISS:

KISS is an acronym for the design principle "Keep it simple, Stupid!".

SOLID:

The principles when applied together intends to make it more likely that a programmer will create a system that is easy to maintain and extend over time

3
  • 1
    Is there any good tutorial with examples that helps understand on how to apply these design patterns...
    – Krunal
    Feb 14, 2014 at 13:54
  • 2
    Design patterns are different. As the answer states, these are principles which should guide you in your day to day design and development. For examples and tutorials there are many in the web. Here is one such: blog.gauffin.org/2012/05/11/…
    – Jonn
    Oct 16, 2015 at 7:55
  • 2
    Another opposite of DRY is "WET": write everything twice. Aug 30, 2018 at 14:04
20

I'd say that they're basic engineering principles.

A methodology can have n principles.

And they're definitely not design patterns :)

8

These are the guidelines for your everyday work, crossing the boundaries of layers, problem domains and technologies.

They also form what you would call a philosophy defining your professional practice.

1
  • And they need not apply just to software development - well ok, SOLID really only applies to software development but the other two are very general, and can be applied independent of any specific industry! May 2, 2011 at 19:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.