Цитата:
Сообщение от
mazzy
Вы занимаетесь внешним видом, а не сутью.
Ну-ка, ну-ка...

Цитата:
Сообщение от
mazzy
В ваших примерах (как и в изначальном) нахождение остатка от деления вычисляется несколько раз (до 4 вместо необходмых 2 вычислений).
Чем это плохо? В менее тривиальных примерах inline-вычисления можно выделить в метод, а уже тем, откуда метод берет данные, заморачиваться потом.
Цитата:
Сообщение от
mazzy
Представьте, что в реальной жизни это будет не нахождение остатка от деления, а вычисление остатка на некую дату на некоем складе и отдельно на складе пополнения. Вы и там тоже будете запускать процедуру расчета остатков лишние разы?
Есть такая прекрасная вещь, как "ленивая" инициализация: можно из всех возможных мест дергать один метод, а в нем реализовать "ленивое" вычисление значения и его кэширование/использование временной переменной. Вызывающая логика при этом существенно упрощается, а усилия по оптимизации можно сконцентрировать в одном месте.
Цитата:
Сообщение от
mazzy
выражение внутри if вычисляется несколько раз.
inline-выражение - да, в общем же случае (при вызове метода вместо inline-выражения) это неверно.
Цитата:
Сообщение от
mazzy
условие внутри switch всегда вычисляется только один раз. Именно для этого (ну, кроме формы записи) и вводился switch в процедурные языки.
В этом, для ряда задач, кроется минус этой конструкции: не всегда для принятия решения, по какой ветке передать управление, нужно полностью вычислять исходное выражение, зачастую для ряда ветвлений достаточно упрощенного (неполного) результата вычислений.
Цитата:
Сообщение от
mazzy
если в switch условие вычисляется один раз, а в case константы... то можно добиться существенной оптимизации.
По-моему, сначала нужно реализовать просто нормально работающую логику, а уже потом заморачиваться оптимизацией. Тем более, что оптимизация может вообще изменить код до неузнаваемости.
Применительно к Аксапте тут есть одно противоречие: оптимизация vs простота сопровождения и развития кода. Зачастую при написании кода, по-моему, лучше выбрать более "многословный" вариант, состоящий из отчасти избыточных блоков, в большей степени автономных и поддающихся кастомизации, нежели написать лаконичный "заоптимизированный" вариант, который, в случае чего, придется просто выкинуть и переписать с нуля.
Это все, во многом, - брюзжание, но все же... не стоит делать из мухи слона: исходный вариант решения далек от идеала, были предложены более оптимальные варианты, но делать далеко идущие выводы на основе такой тривиальной задачи, по-моему, - перебор.