79

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?

gnat
  • 21,442
  • 29
  • 112
  • 288
Morgan Herlocker
  • 12,722
  • 8
  • 47
  • 78

3 Answers3

126

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

Jay Sullivan
  • 103
  • 4
JD Isaacks
  • 8,924
  • 12
  • 47
  • 54
  • 1
    Is there any good tutorial with examples that helps understand on how to apply these design patterns... – Krunal Feb 14 '14 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: http://blog.gauffin.org/2012/05/11/solid-principles-with-real-world-examples/ – Jonn Oct 16 '15 at 07:55
  • 2
    Another opposite of DRY is "WET": write everything twice. – Dr Rob Lang Aug 30 '18 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 :)

Demian Brecht
  • 17,555
  • 1
  • 47
  • 81
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.

  • 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! – FrustratedWithFormsDesigner May 02 '11 at 19:34