Кстати, если бы писали в машинных кодах для Электроники БК-0010 (процессор K1801BM1A, в котором не было команд умножения), то такая оптимизация была бы более чем уместной.
Что лучше — в два-три раза больше более «понятно написанного» кода или в два-три раза меньше кода, который делает то же самое, но менее «понятно написанного»? Вопрос.
По моему опыту, для инспектирования кода на языке Java гайдлайн номер ноль — это инспектировать в IDE. Иначе от инспектирования кода вреда будет больше, чем пользы, и лучше его вообще не делать или делать максимально быстро и формально, если уж распорядок требует. Выявить без IDE в новом коде какую-нибудь существенную ошибку, которую до этого не выловил компилятор, практически нереально.
Удобоваримый код — это прекрасно, но данную «вкусняшку» очень сложно реализовать в рыночных условиях труда, когда очень важно «урвать кусок рынка».
Рыночный сектор вообще не может существовать без постоянной подпитки из нерыночного;-) На рынке надо писать сразу быстро и хорошо. Учиться и тренировать можно в общем только вне рынка;-)
[Opdyke, William F. Refactoring Object-Oriented Frameworks. Ph.D. thesis. University of Illinois at Urbana-Champaign. — 1992] и [Opdyke, William F. Refactoring Object-Oriented Frameworks. Ph.D. thesis. University of Illinois at Urbana-Champaign. — 1992] — это, как видно даже из названия, тезисы кандидатских диссертаций;-).
[Opdyke, William F.; Johnson, Ralph E. «Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems». Proceedings of the Symposium on Object Oriented Programming Emphasizing Practical Applications (SOOPPA). ACM. — 1990] — это, по данным того же источника, «The first known use of the term „refactoring“ in the published literature». Там же: "Martin Fowler's book Refactoring: Improving the Design of Existing Code[3] is the canonical reference."
Так что до Фаулера рефакторингом как серьёзной темой практически не занимались. «Code Complete» появился сильно раньше книги Фаулера.
Будет ли это «будущее» — ещё не понятно. DRY, KISS и прочие красивые слова экономят время только тогда, когда требуют мало времени для применения, т.е. сидят уже в подкорке. Если их применение требует больших усилий, то они его больше тратят, чем экономят.
Стоит ли их применять — зависит от квалификации программистов.
Произошла чудовищная ошибка.»…
[Opdyke, William F.; Johnson, Ralph E. «Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems». Proceedings of the Symposium on Object Oriented Programming Emphasizing Practical Applications (SOOPPA). ACM. — 1990] — это, по данным того же источника, «The first known use of the term „refactoring“ in the published literature». Там же: "Martin Fowler's book Refactoring: Improving the Design of Existing Code[3] is the canonical reference."
Так что до Фаулера рефакторингом как серьёзной темой практически не занимались. «Code Complete» появился сильно раньше книги Фаулера.
Стоит ли их применять — зависит от квалификации программистов.