Побитовые операторы работают быстрее. Избегайте этих микрооптимизаций

TL;DR: не используйте побитовые операторы, если ваша бизнес-модель не основана на побитовой логике.

Проблемы

  • Читабельность
  • Сообразительность
  • Преждевременная оптимизация
  • Ремонтопригодность
  • Нарушение биекции

Решения

  1. Улучшить читаемость

Контекст

Некоторые умные программисты решают проблемы, которых у нас нет.

Мы должны оптимизировать код на основе доказательств и использовать научный метод.

Мы должны проводить бенчмаркинг только в случае необходимости и улучшать код только в том случае, если это действительно необходимо, и нести расходы на изменчивость и ремонтопригодность.

Образец кода

Неправильный

const nowInSeconds = ~~(Date.now() / 1000)

Верно

const nowInSeconds = Math.floor(Date.now() / 1000)

Обнаружение

[X] Полуавтоматический

Мы можем сказать нашим линтерам, чтобы они предупреждали нас и вручную проверяли, стоит ли вносить изменения.

Исключения

  • Реальное время и критически важное программное обеспечение.

Теги

  • Преждевременная оптимизация

Заключение

Если мы находим этот код в запросе на включение или обзоре кода, нам нужно понять причины. Если они не оправдываются, то следует сделать откат и изменить на нормальную логику.

связи







Больше информации

Тильда Оператор ~~

Побитовые операторы JavaScript

Отказ от ответственности

Code Smells — это всего лишь мое мнение.

Кредиты

Фото автора Frédéric Barriol на Unsplash

Оригинал статьи Здесь.

Уделяйте внимание мелочам; небольшая утечка потопит большой корабль.

Бенджамин Франклин



Эта статья является частью серии CodeSmell.