Stages of correctness
Software projects are built in passes.
Static analysis (lint?) time. Compile time. Link time. Test time. Run time.
Correctness checking exists at each stage. Pushing it earlier leads to more explicit code, like type safety. Pushing it later incurs performance penalties. Not everything can be tested at the earliest stages.
Starting with static analysis, you can verify style adherence, type safety, deprecated function calls, and more. It’s helpful for identifying those silly bugs where you pass a string of a number when a function is expecting a number type. Ideally, these checks are done in your IDE so you can get constant and fast feedback as you write code.
Do you use static analysis tools? Linters or style enforcement? Any favourites or ones to be avoided?