Softwaredesignprinzip DRY vs WET
Who doesn't know it: DRY (Don't repeat yourself). Misused it leads to abstraction, which is more work than good. That's why I advocate WET (Write everything twice). Clarity emerges the third time after the code has been copied and applied twice. The article explains this comprehensively and in detail.