Август
13
Вынесение констант в переменные
Одна из вещей, которых нас не учили на программировании в универе — делать именованные константы. Просто один пример на JavaScript:
function convertTimeToTicks(unixTimestampMs) {
return (unixTimestampMs - (3600 * 3 * 1000)) * 10000 + 621355968000000000;
}
Ну как? Хорошо ещё название функции хоть как-то подсказывает, что происходит. А вот так было бы с именованными константами:
function convertTimeToTicks(unixTimestampMs) {
let millisecondsInHour = 3600000;
let timezoneCorrectionMs = millisecondsInHour * 3;
let ticksInMs = 10000;
let ticksBeforeUnixTimestamp = 621355968000000000;
return (unixTimestampMs - timezoneCorrectionMs) * ticksInMs + ticksBeforeUnixTimestamp;
}
Да, много строк, да кажется что печатаешь лишнее. Но зато постороннему (и вам через пару лет) сразу ясно, что берётся время в миллисекундах от начала эпохи UnixTimestamp, делается коррекция часового пояса, конвертируется в тики.
Ну а тики нужны для работы с системой электронного документооборота, это уже другая история.