Becoming a better software developer is a challenging undertaking. It feels like there are a million things to learn, and a lot of different perspectives to consider. Here are 5 techniques that we encourage our developers to follow to maximize code quality.
1. Use Code Linters
If you care about the quality of your code, then you have Code Linting integrated into your IDE. VS Code, Atom, and RubyMine all support modern linting.
It’s much better to get instantaneous feedback on your code than wait for a human to review your pull request and hope that they give you comprehensive feedback.
2. Perform Comprehensive Static Analysis
Computer programs aren’t great at writing software to solve business problems, but they’re pretty darn good at analyzing and critiquing software that squishy humans have written.
In your journey towards becoming a better software engineer, static analysis tools are absolutely essential.
Check out our post on Static Analysis for more information.
3. Write Tests
If you’re not writing tests, then you’re not doing it right.
A developer who doesn’t write tests is waving a huge flag that says “I DON’T CARE ABOUT THE QUALITY OF MY WORK”.
An application should have automated tests in the following areas:
- Unit tests : test business objects in isolation
- Integration tests : test the interactions between business objects
- End-to-end tests : test user interactions in a scripted web browser. Cypress is our favorite tool, but Selenium is another popular option.
4. Code Reviews
Another developer should review your code and make sure that it is well documented, well organized, and contains tests.
- CodeSee facilitates code reviews
- Branch protection rules should be applied such that a branch can’t be merged until:
- it’s been approved by at least one other stakeholder
- it passes all CI tests
Check out our post on creating great Pull Requests for more information.
5. Documentation
Documentation is really important for building quality software. It’s distilled knowledge about what your code is supposed to do, and how it goes about doing it.
Great areas to focus on:
- Write a good README
- Generate an ERD (Entity Relationship Diagrams)
- Create an architecture diagram
- Use a process digram for any parts of the application that are especially complicated
Check out our post on Documentation Best Practices for more information.