Re:Clear is better than clever [pdf]
by jlokier on Monday May 06, 2019 @10:36AM
(#19839775)
> If you're writing 3 business rules in something that's important and needs reliability and therefore should not have complexity ? Then it might be better to write it out.
I'd give you multiple upvotes if I could for this.
Absolutely agree with all your points.
I'd add further, that if it's 3 important business rules, then sometimes expanding it further to have well-named functions and well-named variables is well worth doing, even if the business rules are trivial logic:
// This rule was recommended by the accountant on 2019-05-06
// and must be reviewed by the CFO before release.
function receipt_needs_itemised_tax_record(amount: Money): bool {
return amount >= 1.00;
}
// Show itemised tax records on receipts that need it.
if (receipt_needs_itemised_tax_record(receipt.total_paid)) {
...
}
Versus:
// Writing this and other low-level code in 25 lines per function
// does not make the 10kloc rendering library easier to understand.
function transform_pixel(bg: RGB, fg: RGB, opacity): RGB {
opacity = clamp(opacity, 0.0, 1.0);
let blend_bg = 1.0 - opacity, blend_fg = opacity;
return RGB { r: clamp_rgb(bg.r * blend_bg + fg.r * blend_fg),
g: clamp_rgb(bg.g * blend_bg + fg.g * blend_fg),
b: clamp_rgb(bg.b * blend_bg + fg.b * blend_fg) };
}
Re:Clear is better than clever [pdf]
by yiyus on Monday May 06, 2019 @01:42PM
(#19841847)
These are great examples, and I totally agree with both of you. However, the code most people write is somewhere in the middle, so it is a more subjective decision.
I'd give you multiple upvotes if I could for this.
Absolutely agree with all your points.
I'd add further, that if it's 3 important business rules, then sometimes expanding it further to have well-named functions and well-named variables is well worth doing, even if the business rules are trivial logic:
Versus: