I like dynamic languages for small fun projects as much as the next person however I never found them to fit for large projects.
I'm always impressed/curious how people deliver large software on a dynamic language.
I guess you just have to unit test twice as much (to compensate for the compiler's checks?)
I guess you just have to unit test twice as much (to compensate for the compiler's checks?)
I still personally just aim for a combination of auto-verified 100% coverage, and an intuitive sense of whether it's real testing or "call this to get it in the coverage report" testing; I also try to keep functions/methods short enough, and overall systems simple enough, to be able to think about the various code paths and ensure I have tests to cover them all.
I don't and never have worried about whether I'm appropriately type-checking everything, and in fact that idea is antithetical to why I work in Python (i.e., Python is a "care about the interfaces, not about the types" language). I have seen people coming from Java-land who write tons of "if not isinstance(some_var, some_type)" checks, but sooner or later they get over it and learn that these things are rarely if ever actually necessary.
2 comments
[ 3.0 ms ] story [ 16.2 ms ] threadI still personally just aim for a combination of auto-verified 100% coverage, and an intuitive sense of whether it's real testing or "call this to get it in the coverage report" testing; I also try to keep functions/methods short enough, and overall systems simple enough, to be able to think about the various code paths and ensure I have tests to cover them all.
I don't and never have worried about whether I'm appropriately type-checking everything, and in fact that idea is antithetical to why I work in Python (i.e., Python is a "care about the interfaces, not about the types" language). I have seen people coming from Java-land who write tons of "if not isinstance(some_var, some_type)" checks, but sooner or later they get over it and learn that these things are rarely if ever actually necessary.