Побитовые операторы работают быстрее. Избегайте этих микрооптимизаций
TL;DR: не используйте побитовые операторы, если ваша бизнес-модель не основана на побитовой логике.
Проблемы
- Читабельность
- Сообразительность
- Преждевременная оптимизация
- Ремонтопригодность
- Нарушение биекции
Решения
- Улучшить читаемость
Контекст
Некоторые умные программисты решают проблемы, которых у нас нет.
Мы должны оптимизировать код на основе доказательств и использовать научный метод.
Мы должны проводить бенчмаркинг только в случае необходимости и улучшать код только в том случае, если это действительно необходимо, и нести расходы на изменчивость и ремонтопригодность.
Образец кода
Неправильный
const nowInSeconds = ~~(Date.now() / 1000)
Верно
const nowInSeconds = Math.floor(Date.now() / 1000)
Обнаружение
[X] Полуавтоматический
Мы можем сказать нашим линтерам, чтобы они предупреждали нас и вручную проверяли, стоит ли вносить изменения.
Исключения
- Реальное время и критически важное программное обеспечение.
Теги
- Преждевременная оптимизация
Заключение
Если мы находим этот код в запросе на включение или обзоре кода, нам нужно понять причины. Если они не оправдываются, то следует сделать откат и изменить на нормальную логику.
связи
Больше информации
Побитовые операторы JavaScript
Отказ от ответственности
Code Smells — это всего лишь мое мнение.
Кредиты
Фото автора Frédéric Barriol на Unsplash
Оригинал статьи Здесь.
Уделяйте внимание мелочам; небольшая утечка потопит большой корабль.
Бенджамин Франклин
Эта статья является частью серии CodeSmell.