Tools
Scenario¶
- Someone suggested a tool that will "make my life easier" - but it's hard to use
- I know enough about a tool to get my job done, but it's a struggle
- I don't know what tool to use to do my work
Key Takeaways¶
- The right tools make the job MUCH easier.
- Read the documentation or do the tutorials for tools you will use - it will save time in the long run
Learning tools is part of your job
It's ok to spend time working through tutorials and learning how to use the tools effectively. It will make you more efficient and productive overall!
Code Tools¶
Static Code Analyzers¶
Why use it?
Helps maintain consistent code quality and best practices.
There are many tools available to analyze, standardize, and clean up code in automated ways.
Some examples are:
- Type checking
- Linting - Static analysis on source code to flag patterns that might cause errors or other problems (reference)
- Code formatter
- Logging
Templates and Blueprints¶
Why use it?
Using templates helps standardize code and implements pre-configured best practices
Some example code blueprints from @hagenjt1:
Debuggers¶
Why use it?
Makes debugging code MUCH easier! See the Debugging section for more info.
- gdb
Workflow Tools¶
Source Control¶
Why use it?
Tracks changes as you work and lets you always go back to a working state...provided the changes were committed! So commit often!!
- Git
- Interactive Git tutorial: https://learngitbranching.js.org/?locale=en_US
- Useful Git commands: https://dev.to/mukeshkuiry/10-must-know-git-commands-for-software-engineers-3733
- Fixing Git problems: https://dangitgit.com/en
Continuous Integration/Continuous Deployment (CI/CD)¶
Why use it?
CI/CD can automate testing and verifying that code is correct by building and running tests. This can help prevent Breaking Changes.
Some example tools:
- GitLab CI
- There is a lot of contents and it can be daunting to learn...but is not that hard!
- GitLab's documentation is pretty good: https://docs.gitlab.com/ee/ci/
- Bamboo CI
- Ties to BitBucket
Integrated Development Environments (IDEs)¶
Why use it?
IDEs can streamline the development process and have a lot of features to make life easier
- VS Code
- PyCharm
- CLion
Notetaking¶
Why use it?
Keeping good Documentation will help yourself and others on the team
Some example tools:
Confluence labels
I found adding labels to Confluence pages makes finding them much easier. This allows you to group similar pages by content or topics so you can find all related pages at once.