While everyone has a favorite IDE, we all have less important, but still extremely helpful little tools. These tools won't make a project successful on their own, but can make a job feel a lot smoother. We asked some of our developers what their little lifesaver tools are.
There are three tools I think more developers should use.
The first is DotNetFiddle (https://dotnetfiddle.net/). This tool is an online IDE that makes it really easy to sketch out small snippets of code. I use it to proof concepts instead of writing a throw away console apps. You can also share your fiddles if you want to review it with your team.
The second tool is cmder (http://cmder.net/). Cmder is a tabbed shell emulator. You can create PowerShell, Bash, and standard command shells within the same interface. It goes great with command line friendly tool stacks like .NET Core and Node.js.
The final tool is RegExStorm (http://regexstorm.net/tester). This tool provides a handy testing environment for regular expressions. I develop and test all of my regexes here before putting them in my code.
If you’re developing for iOS or macOS using Swift and you haven’t checked out Playgrounds in Xcode you’re missing out. It has become a habit for me to rapidly iterate on some chunk of code in a playground with real time output both to the console and also to UIViews. It allows for great interactive development that can really speed things up. When I recently implemented a view animation for a client iOS app, I built it using a playground with an output UIView. As I changed the animation parameters and curves, I could see in real time how the animation would look. This eliminated a lot of guess work and time that would have been consumed in build and run cycles. I find myself often popping open a playground for things like date formatting, data processing, and view layout testing. Playgrounds are also great for just interactively learning Swift or to quickly share running code with other developers.
Sometimes I have to write regular expressions, or regex, and whenever I do I use RegExr at regexr.com. It's a live regex editor that allows you to type regex statements and see them matched up against sample text in real-time. In a handy sidebar it contains a cheatsheet and reference material so you're never stuck wondering what that cryptic expression does. You can even hover over each character in your expression to get a short description of what each one does. Just playing around with the site has leveled up my regex skills, and also saved me quite a bit of time in figuring out some complex expressions.
If you are a developer that spends a lot of time writing apps in React, Angular, or some other front end framework, a tool I highly recommend is Visual Studio Code (VSCode). A common theme in its feature-set is that every feature speeds up development. Since a lot of front end frameworks employ the use of npm and webpack these days, I find the built in terminal a feature that is invaluable. It lets me transpile my JS code quickly and I’m able to see the changes I recently made reflected without ever having to lift my hands off my keyboard. I also find the inclusion of intellisense support makes my development process much more fluid. Between its support for a wide number of languages, and a healthy store of extensions available to fill in features not included by default makes it a tool that I would highly recommend to anyone that writes web apps.
There are three tools that I’ve found extremely useful: Agent Ransack, Productivity Power Tools for Visual Studio, and Liquibase. Agent Ransack is a file searching utility which I’ve found extremely helpful, especially when trying to learn a big application. It can search for files that contain text much faster and with easier to understand results than the built-in search functions that I’ve tried. Productivity Power Tools is an extension for Visual Studio which can do a number of things, but I especially like it for its ability to color-code Visual Studio tabs according to the project they belong to, and to auto-sort and remove unused “using” statements in my code. Finally, Liquibase is an open source database migration tool that allows you to write SQL migrations in XML that you can check into your codebase. I’m as much of a fan of Entity Framework’s migrations as the next person, but there are times when having a platform-agnostic tool you can easily integrate with any application is really useful.