Tooling is very important for us developers. It makes the difference between struggling with your tasks and doing them in fast and easy way. Here’s the collection of tools I like to use on daily basis. In addition I added few I used in the past and I’m still sure they’re great as my friends and colleagues are using them.
IntelliJ Idea Ultimate (and other from JetBrains)
In my opinion the best IDE on the market. I’m huge fan of Ultimate edition as it allows me to work with multiple languages in the same time. The same applies to language specific versions like PyCharm or PHPStorm.
From design and “look and feel” of the dark Dracula theme to everything you’d think you need to write, debug and refactor code. After few months I couldn’t go back to NetBeans or Eclipse.
It’s commercial tool, so you need to pay a subscription fee for it but in the greater scope this money saves me more time than I’m paying. It’s even better if your company can get you a licence – it’s instant win-win.
Surprisingly Microsoft did something right this time. Their editor is sudo IDE and offers great deal of features being reasonably lightweight.
I’m using it mostly for devops work editing yams files, very rarely for code.
Anyway with ease and clarity of work it offers you’ll get built in plugin registry with suggestions of new plugin when you open new file extension. It’s approach to dealing with files is also very nice with Workspaces and list of open files on top of usual directory tree.
Nice cherry on top is a plugin mapping all IntelliJ shortcuts which helps when you used to it like I am.
Honourable mention for Atom as great editor as it was my favourite for long time.
The one to rule them all. (Emacs users please keep calm).
I’m mentioning it here as it’s the most common console editor and you’ll find it at any box you ssh to. With that in mind I think it’s good to know it at least to a level of comfortable editing and exiting.
After you learn the basics have a look at GitHub – amix/vimrc: The ultimate Vim configuration: vimrc – a great collection of vim plugins which I’m using basically everywhere I need to edit files in console environment.
MySQL / Relational Database GUI Tools
OSX – SequelPro
Hands down the best tool for work with MySQL databases on Mac. Multiple tabs of connections, very clean day of viewing the data and very nice query editor make it very lightweight and powerful tool.
Windows/Linux – HeidiSQL
It’s the best in class for non OS X operating systems. Offers everything what SequelPro with addition of support for Postgres and MSSQL databases.
JetBrains Data Grip
Database tool I’m trying to migrate to. Quite different to two I mentioned before.
It’s a full blown IDE for databases. It’s not that lightweight as other as it’s based on IDE framework JetBrains is using for other of their products. The tradeoff is great deal of features and ability to connect to any RDBMS Java has driver for. Which means – any you can imagine.
Great thing is their query editor which benefits of all the features their IDEs are using.
It’s smaller brother of bigger suite for MongoDB. It’s like SequelPro – very nice to use and lightweight with all the features you’d like to have from free tool.
Local databases and services
Docker && docker-compose
If you don’t know Docker yet it’s time to learn. Every month it’s becoming more and more popular. It excel both in development and in production environments.
Docker Compose is great as development tool as it allows you to quickly set up all the dependencies you need for you application. Times when you installed MySQL and other services for you apps on your local system are past.
Having few templates, like the one I’ve created some time ago GitHub – darsadow/docker-compose-snippets: Collection of snippets for fast and easy provisioning most common tools for local development allows you to quickly set up or remove environments for applications.
Later on you can easily provision whole systems you working on with one command. It’s great improvement from local installations and slow Vagrant machines.
Testing REST APIs
I’d say Postman is the leader of the pack. Since it worked as extension for Chrome it made it’s way to be standalone application with synchronisation in between machines and proper workhorse of API testing.
After some problems with caching requests some time ago I dropped it for a while but recently I’ve came back and I’m happy again.
At the time I switched to Insomnia. It’s very nice API client based on Electron framework. I can recommend you to try it to decide if you like it of not. It does everything you’d like API client do so it’s more matter of preference what you’ll prefer.
As the last tool in this list is the most advanced one. Wireshark is a network monitoring tool. What it does is to capture everything what happens on the wire in raw format and reports it to you.
It’s the last hope when you debug applications communicating over the network as it’s external tool and there is no way to hide request or response from it.
I remember working with Spring Integration when I was getting internal errors without any debut details. Wireshark helped a lot as I could see exactly what was the response and fix the issue.
To use it effectively you need a bit of networking knowledge but I don’t think it should be a problem.
Here it is. List of my favourite tools. Let me know if you use them and if you have your own favourites we should know and use. Bottom line is to find the tools to make our life and work a better experience.