In C++, I follow a playbook for keeping all hell from breaking loose:
1) Write a googletest 2) Write a googlebenchmark 3) Run all unit tests under AddressSanitizer, ThreadSanitizer, and g++ UB sanitizer 4) Tidy up with clang-format 5) Run cppcheck
So I feel pretty confident I’m not doing something braindead if I can get this stuff through CI.
But for Python, I don’t really have good idea when I’m doing something that’ll cause me agonizing pain in the future. The only tool I use is flake8, which is awesome, but I can’t see memory leaks or performance profiles.
What strategies do you adopt (and what tools do you use) to keep all hell from breaking loose in large Python projects?