Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Работа тестировщиком после переезда в Германию

24.12.20 20:46
Re: Работа тестировщиком после переезда в Германию
 
MrSanders коренной житель
в ответ AlexNek 24.12.20 15:51
С написанного посчитать еще можно, а вот картинка не возникает на автомате.

Так и с формулой для гипотенузы так же (даже хуже, с ней непонятно почему именно так считать надо). Но после того как пару раз увидишь - узнаёшь сразу.

Все знали о чём речь идёт, так что как можно было не понять, как именно сработает эта простенькая формула я честно не понимаю. Если рассматривать код в отрыве от сообщения, то да, не хватает разумного имени и строчки комментария. Всё. Если это обрезание надо использовать в нескольких местах, то можно написать функцию. Для одного использования функция избыточна. И именно что нарушение KISS. Проверки на то что значение минут не вываливается из интервала 0..59 тоже не надо - мы должны доверять используемым библиотекам.


public const int MINUTES_IN_QUARTER = 15;
...
int minutesInHour = ...;
// Обрезаем минуты до начала четверти часа. 0..14 => 0, 15..29 => 15, 30..44 => 30,  45..59 => 45. Исходим из того, что minutesInHour не может иметь значений <0 и >59.
// (если мы знаем что в проекте есть тормоза, дописываем такое) Внимание! Применяется целочисленное деление без остатка!
int minutesTruncatedToFullQuarter = (minutesInHour / MINUTES_IN_QUARTER) * MINUTES_IN_QUARTER;

Только надо обязательно тестировать, чтобы какой-нибудь жутко умный оптимизатор не выбросил деление и умножение на одно и то же число (в шарпе и в яве такого не будет, за другие языки не поручусь).

 

Перейти на