3 ms·
Other engineering disciplines have certification, codes and regulations for specific domains, which are enforced by law. DRY is a perfect example though of som
by grey-area 2y ago
Other engineering disciplines have certification, codes and regulations for specific domains, which are enforced by law.
DRY is a perfect example though of something which in moderation is a good idea but as the article says is vulnerable to ‘inexperienced programmers who lack the ability to judge the applicability’ and if over-eagerly applied leads to over-abstraction and premature abstraction which does more harm than good.
- mrkeen 2y ago>> inexperienced programmers who lack the ability to judge the applicability In other words, the author knows better than you. The author could have put forward precedent, principles, or examples. But instead he chose to make it about the people (inexperienced), not his arguments.
- yCombLinks 2y agoThe point is there are not rules that are always applicable. Dry is right sometimes, and sometimes it's not.
- HelloNurse 2y agoBefore regulations, other engineering disciplines have far more objective decisions and calculations than software engineering. Consider a mechanical analogue of DRY: choosing between reusing identical parts to make design, assembly and repairs simpler or designing similar but different parts because they are worth optimizing (e.g. a whole IKEA cabinet with interchangeable screws or with short and long ones). Unlike next month's shifting software requirements the cost and performance of this kind of alternative can be predicted easily and accurately, without involving gut feelings or authority.
- grey-area 2y agoWell I think the point is you can’t legislate on things like style, or at least it is pointless to do so and other disciplines don’t try to. DRY is a style guideline. What you can legislate/codify are procedures, safety and outcomes. So for example building designs must be signed off by a structural engineer and architect, both of whom are liable if the buildings collapses and kills someone. There are standards materials must meet and for which materials can be used. Buildings must meet standards for fire protection, air flow, heat loss etc. I’m not sure software is at the stage where we even know what to codify or what is good and what is not good.