An Interest In:
Web News this Week
- April 2, 2024
- April 1, 2024
- March 31, 2024
- March 30, 2024
- March 29, 2024
- March 28, 2024
- March 27, 2024
Code Smell 180 - BitWise Optimizations
Bitwise operators are faster. Avoid these micro-optimizations
TL;DR: Don't use bitwise operators unless your business model is bitwise logic.
Problems
Readability
Clevereness
Premature Optimization
Maintainability
Bijection Violation
Solutions
- Improve readability
Context
Some clever programmers solve problems we don't have.
We should optimize code based on evidence and use the scientific method.
We should benchmark only if necessary and improve code only if really necessary and bear the cost of changeability and maintainability.
Sample Code
Wrong
const nowInSeconds = ~~(Date.now() / 1000)
Right
const nowInSeconds = Math.floor(Date.now() / 1000)
Detection
[X] Semi-Automatic
We can tell our linters to warn us and manually check if it is worth the change.
Exceptions
- Real-time and mission-critical software.
Tags
- Premature Optimization
Conclusion
If we find this code in a pull request or code review, we need to understand the reasons. If they are not justified, we should do a rollback and change it to a normal logic.
Relations
Code Smell 20 - Premature Optimization
Maxi Contieri Nov 8 '20 2 min read
Code Smell 165 - Empty Exception Blocks
Maxi Contieri Sep 24 2 min read
Code Smell 06 - Too Clever Programmer
Maxi Contieri Oct 25 '20 2 min read
More Info
Disclaimer
Code Smells are just my opinion.
Credits
Photo by Frdric Barriol on Unsplash
Original Article Here.
Watch the little things; a small leak will sink a great ship.
Benjamin Franklin
Software Engineering Great Quotes
Maxi Contieri Dec 28 '20 13 min read
This article is part of the CodeSmell Series.
Original Link: https://dev.to/mcsee/code-smell-180-bitwise-optimizations-2072
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To