One of Bloch's Effective Java items
55: Optimize judiciously extends Jackson's rules on optimization:
Rule no. 1: Don't optimise!
Rule no. 2 (for experts): Don't optimise yet!
Extra Bloch rule 1: Don't try it until development is finished.
Extra Bloch rule 2: Measure performance before and after implementing an optimisation (you'll be surprised!)
And this is essentially how I approach optimisation. However I now have a situation where I am using a complicated but accurate, OO data structure reflecting the business domain.
I find myself considering implementing a significant amount of denormalisations.
Should I, if everything else is equal?
Is denormalisation in the business layer just another method of optimisation, to which these rules apply?