We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

Security Review

Just because our codebase passes all of our tests, linters, and security checks doesn't mean it's "perfect" (or frankly even that it's "good").

These kinds of automated tests can help us eliminate ~80% of the most obvious bugs, stylistic anti-patterns, and security vulnerabilities, but they can't catch everything. We still need to take care to write good, secure code.

CI is an amazing tool to automate a lot of the stuff you'd manually check anyway. However, just because the checks pass doesn't mean your code is perfect. You still need to use your brain!