Developer Tools [#14]
Recently, a friend of mine enrolled in a software development course at the university, and he was very curious about what tools a professional developer uses daily. I made a list of tools I use for software development for him, and now I am sharing it in this article. In the last years, I have done a lot of API and SPAs (Single Page Application) development, so most of these tools are focused on that area.
This is a list of tools I currently use or have used for software development and related tasks. I have separated them into these categories: IDEs and Code editors, tools I use for testing and inspection, and documentation.
IDEs / Code editors / Database Tools
Visual Studio Code
Visual Studio Code (VS Code) is an IDE that supports multiple languages. In my last three teams, Visual Studio Code was the preferred tool for front-end projects (Mostly Single Page Applications). I have used it for Angular and React development, but I have seen people use it for backend projects.
VS Code is available here: code.visualstudio.com
Visual Studio
If you are working in a Microsoft stack, you must have already worked with Visual Studio. This IDE has a free community edition currently available for Windows and Mac. You can build desktop, web, games, and machine learning applications; it supports languages such as C++, C#, Java, and Python so you may be able to build any type of application you can imagine.
I have heard some teammates complaining about Visual Studio in the past regarding it being slow. I may have felt it only after installing ReSharper and having many instances running simultaneously a few years ago, but I have not had troubles with it in the last years. I feel it is constantly making improvements that make debugging and testing easier. I feel so comfortable using it that I have not thought I need to replace it, but I have heard good things about other IDEs, such as Rider from Jetbrains.
Visual Studio is available here: visualstudio.microsoft.com
DBeaver
I have worked with SQL Server for a long time, the goto tool for it is SQL Server Management Studio (SSMS). In the last two projects I worked on, a migration to PostgreSQL was part of the roadmap, and I had to work with multiple database engines for some time. If you are in a similar situation I recommend using DBeaver, it is a free multi-platform database tool which supports SQL Server, PostgreSQL, MySQL, Oracle, and a few others.
DBeaver is available here: dbeaver.io
If you are working with only one database technology, you will probably be fine just using one of the tools from the same provider. Here is a list of the four database technologies I have used in the past:
- SQL Server: SQL Server Management Studio (SSMS)
- PostgreSQL: pgAdmin
- Oracle: SQL Developer
- MySQL: MySQL workbench
Testing / Debugging / Inspection
Postman
Postman is an excellent tool for API testing. I was introduced to it by a young developer doing an internship many years ago (Until then, I had only used SoapUI to test SOAP and REST services). I was amazed at how easily we could add endpoints, organize them in folders and share all the configurations using the export feature. Since that moment, it has become my go-to tool for API testing.
Postman offers a web app and a desktop app. You can find it here: https://www.postman.com/
jsondiff.com
jsondiff.com is a website that allows you to compare two JSON objects. You can copy and paste text, use an URL or upload a file. It has been handy for me to compare results from API requests.
jwt.io
I have been in the position where I had to inspect a JWT token to debug an application a few times. If you ever need to do something similar jwt.io is a great tool that will allow you to paste a token and get all the information in it.
Documentation
Confluence
Confluence is a product from Atlassian that allows you to build and share documentation. You can document anything you can think about (business processes, roadmaps, software design and architecture, etc). It has a lot of templates built-in and features such as versioning, co-edit and real-time editing, commenting, and notifications.
Confluence is available here: atlassian.com/software/confluence
draw.io
If you don't have available tools such as Microsoft Visio and you need to draw diagrams for business processes, software design, flowcharts, etc. you have draw.io (now app.diagrams.net) which allows you to draw diagrams in a web app and store them in the cloud (goodle drive, one drive) or locally. It has a lot of templates and supports notations such as BPMN, and UML.
You can find it here: app.diagrams.net