🎙 Develpreneur Podcast Episode

Audio + transcript

Updating Developer Tools - Keeping Your Tools Sharp and Efficient

In this episode, we discuss the importance of keeping your developer tools up-to-date and efficient. Rob and Michael share their experiences and tips on how to stay current with the latest technologies and best practices.

2024-07-06 •Season 22 • Episode 6 •keeping developer tools up-to-date •Podcast

Summary

In this episode, we discuss the importance of keeping your developer tools up-to-date and efficient. Rob and Michael share their experiences and tips on how to stay current with the latest technologies and best practices.

Detailed Notes

The episode discusses the challenges of keeping developer tools up-to-date and the importance of regular maintenance. Rob and Michael share their experiences and tips on how to stay current with the latest technologies and best practices. They emphasize the need for regular updates and the use of modern IDEs, which provide features like code completion, debugging, and static code analysis. The hosts also discuss the importance of automation and refactoring code, which can save time and reduce errors. Additionally, they mention the use of virtual environments and emulators to test and debug code without affecting production.

Highlights

  • Regularly updating tools and plugins is essential for efficient and secure development.
  • Modern IDEs provide features like code completion, debugging, and static code analysis.
  • Tools like SonarCube, SonarLint, and OWASP can help detect vulnerabilities and improve code quality.
  • Automating tasks and refactoring code can save time and reduce errors.
  • Virtual environments and emulators can be used to test and debug code without affecting production.

Key Takeaways

  • Regularly update tools and plugins to stay current with the latest technologies and best practices.
  • Use modern IDEs to take advantage of features like code completion, debugging, and static code analysis.
  • Automate tasks and refactor code to save time and reduce errors.
  • Use virtual environments and emulators to test and debug code without affecting production.
  • Keep your codebase organized and maintainable by following best practices.

Practical Lessons

  • Schedule regular updates and maintenance for your developer tools.
  • Invest time in learning new technologies and best practices.
  • Use version control to track changes and collaborate with team members.
  • Test and debug code regularly to catch errors and improve quality.
  • Stay up-to-date with industry developments and trends.

Strong Lines

  • A little bit of effort every day ends up adding into great momentum and great success.
  • Regularly updating tools and plugins is essential for efficient and secure development.
  • Modern IDEs provide features like code completion, debugging, and static code analysis.
  • Automating tasks and refactoring code can save time and reduce errors.

Blog Post Angles

  • The importance of keeping developer tools up-to-date and efficient
  • The benefits of using modern IDEs and automation
  • The challenges of maintaining a large codebase and how to overcome them
  • The role of virtual environments and emulators in testing and debugging
  • The importance of refactoring code and maintaining a clean codebase

Keywords

  • developer tools
  • IDEs
  • automation
  • refactoring
  • virtual environments
  • emulators
  • code quality
  • security
Transcript Text
Welcome to Building Better Developers, the Developer podcast, where we work on getting better step by step professionally and personally. Let's get started. Well, hello and welcome back. We are continuing our season of the developer journey and we've got our parkas on and we're going through the blizzards and all that kind of stuff. And I don't know, I'm trying to work on a good analogy there. It's really not even that sunny and warm sometimes on that developer journey. But this episode, we're going to talk about basically your tool set and making sure that you keep it, keep your tools sharp and current and all those kinds of good things. So we're going to get into that a little bit. First off, I want to introduce myself. My name is Rob Brodhead. I am one of the founders of Develop-a-Nor and Building Better Developers. Also the founder of RB Consulting, where we do integration, simplification, automation, all those shuns that are very important about making it easier for your organization to use technology better, to leverage it and make the most of it so that you can have time to listen, more time to listen to us and other podcasts will even allow that those exist. On the other side is Mike and because he's so much better at it, I'm going to let him introduce himself. Hello everyone. My name is Michael Malosh. I am another founder of Develop-a-Nor and I am the founder of Envision QA, where we help businesses review their processes and help build software or integrate software to help streamline their processes. And now we're going to go talk a little bit about you streamlining your own processes. Now one of the things that is a challenge in general as a developer is that we are in technology and technology is moving and moving and moving. It's always advancing. Whether you are in a very niche area of technology or whether you're very broad, there is going to be new versions, new libraries, new problems, new solutions, new add-ons, new you name it. It's moving. So whatever you did last year, you're probably not going to be doing the same thing this year and not the same thing next year. If you are, then you've made a mistake because there is definitely, there's this whole, this old idea that still holds to some extent. You could have 10 years of experience or you could have one year of experience 10 times. If you're a developer, what we want to get you to is 10 years of experience and not one year of experience 10 times. So that is that each year, each, and even more than that each month, really even each sprint to some extent, you're advancing, you're growing, you're learning. Because that's how we do it. We have a limited time here. We have a limited number of years that are our career. And so we want to make the most of those. We want to get as far as we can along that developer journey. Now, our tools are very important to that, to us. And depending on how you got stuff set up, you may be very much in one tool all day long. If you are heavy in a coding mode, you may be heads down in like Eclipse or Visual Studio or one of those kinds of tools that's out there that I always forget all like IntelliJ or one of those, I forget all these different families of stuff because there are families of stuff out there. There are families of IDEs out there. First off, if you're not in an IDE, regardless, pretty much regardless of what your development style is, you probably need to be in an IDE. If you're still using VI or you're still on like just a simple editor or something like that, even if you're in like SQL development or something like, you know, if you're doing database development, you're doing SQL or building shell scripts or something, there are tools that will help you do that stuff better. And sometimes it's simple things like syntax highlighting and autocomplete. But now there are a lot of now being in 2024, we're really starting to see a lot of AI stuff that's being integrated into a lot of these things so that you will find a lot of times that the repetitive code that you've always banged your head against having to write it and it just takes too long. There are AI pieces that are doing suggestions and autocompletes that can just build a lot of that stuff out for you so much faster. And I'm not talking like you go out to chat GPT and you throw your problem and it tries to give you a solution, which is okay. I'm old school, I just throw it out to Google and usually I get enough links that I can figure that stuff out. Chat GPT will take you to the next level. Sorry, I'm old school. I'm trying to catch up. I got to renew my tools. But your IDEs will be able to do that and allow you to work things faster. In particular, I think I've mentioned this before, when you step into a new project, when you step into a new environment, the first thing, the most valuable thing you can do is set it up in a way that you can put a debugger on that sucker where you can go line by line in your code. You can put breakpoints, you can do exit, you can examine and inspect values. That is going to be so much better than the old school printing stuff out to a console and being like, this is my value right now. This is my value right now. Not to mention cleaning up all those print statements when you go to production is a real headache. It is amazing how often I've seen stuff that is production code that is just blowing up log files with useless information or more importantly, the stuff you don't want where it's displaying passwords or key IDs or things like that where you're like, no, you cannot put that into a log file. And yeah, you can do that when you're developing. But if that's in production, you've got problems. That is just a little bit of a minor security hole. So I'm digressing a little bit. What I think you need to do and what I do is I definitely every year and usually twice a year, usually like the middle of the year and the end of the year, one of the things I do is I do like a quick inventory, just sort of looking like you've got a desktop laptop or something that you normally use. Look at the desktop. Look at your primary menu. I'm pointing over here visually because I've got a Mac and it's got my little thing. If your windows, I guess it's usually down here, I guess Mac sometimes is too. But you've got like your most commonly used apps or on your desktop, you've thrown them on your desktop. So you've got these apps that you use on a regular basis. Take a look at those and assess one, how often are you really using them? Because some you may want to take off of your most frequently used because you haven't touched that in six years. But then the others, the ones that you do use is take a look at them and go look at first thing for each one of them, go into the menu. There probably is somewhere like a check for updates, check for updates, get your latest thing and make sure that you grab the latest version because sometimes those things are not automatic. They're not going to put reminders out there. And the next thing you know, you're working on an environment that has been updated 15 different times and is faster, easier to use, less painful to watch and all that kind of There's just so much stuff that goes into these IDs. It is worth it to do that on a regular basis. The other thing that you do is look in those tools, particularly the IDs they're normally going to have or even your browsers. There's going to have a section on like extensions or plugins or modules or add ons or something along those lines. They may even have a store for them. For example, you may like if you've got WordPress, there's all kinds of little things like that add ons and stuff that it can do. Spend a little time and by a little time, it's like, it depends on how often you use this tool, but I would say at least a half hour to an hour, once or twice a year, just browsing, just be a window shopper and look at what kind of stuff is out there because you're going to find tools that are very valuable and you're going to find things that you never really thought of. And you're like, Oh, that looks interesting. I'm going to use that and then go check it out. That may cost money, but a lot of it's free. There's a lot of stuff out there that isn't going to charge you or it's free to some extent. So you can at least try it out and see if it makes sense to you, whether it's, it could be something that's going to be much more, help you be more proficient. So it may be something like a database plugin that helps you generate your database code better or helps you more quickly view something in a database. And maybe something that's like, it does, maybe it's an email client so that you can just sit in your email in your ID and you can see your email queue. Or if you're using Jira, maybe it's an integration to that or an integration to your version control. I mean, there's, it's amazing how many integrations are out there and how many things that you will find in IDEs that you don't really think of until you need it. Like maybe a color coded comma separated values file viewer, or it may be a viewer that allows you to stay in your ID and do a quick view of an Excel spreadsheet or a Word document or a PowerPoint. There's, I could go on and on, take that time, invest a little bit periodically to say, what is it maybe that I'm missing? Because when you do that, you will, one, you will often pat yourself on the back at some point and say, wow, that was a really cool find. I'm glad I did that. But also you'll make yourself more, one, actually two things here, you'll make yourself more efficient, but also you will be more up to date. So when you step into that next project, when you step onto that next thing that you're doing, you now have a modern set of tools that you're utilizing, like your IDEs, but also even your libraries themselves is take a look when you do a new project. Am I using, for example, am I using Bootstrap 1.0? And I should be now migrating my way up to Bootstrap, I think five or six, wherever it's up to, or like Font Awesome. I don't know how many different versions of Font Awesome I've seen out there. They're way up there on what they do. There's a lot of cool stuff they do. But inevitably, I'll find something that was just built last week, but it's on version 1.0 and it really confuses developers when they're used to something modern and now you're basically forcing them backwards because you never brought your updated your libraries and your tools. And that includes, like I said, your IDEs, because if you share your ID, your code out to somebody else, and it's got all kinds of little dot files that the ID saves so that it sort of makes it easier to go from place to place in the same ID. If you're using a different version, that can blow up everybody else. Now that I've blown up this conversation, I will pass it over to Michael though, because I wanted to step down off of my soapbox because I may have gone a little long. Your thoughts on this? Sure. So I'd like to kind of add on to a couple things you said early on. So one of the things you were talking about was if you're using like command line, BI, you really should be looking at these and IDE for development because it helps with a lot of things like code completion, pre-defying, coding standards, like if you need to do a certain code format and have things look the same across your project, you can have things like prettier code formats, Google format, things that are very useful, especially in today's world, are things like SonarCube, SonarLint, which are static code reviews that will look at your code base and tell you, oh, you may have a vulnerability here, or, oh, you might want to add some additional code checks here around this particular code base. So there are a lot of different tools out there that you can utilize for what you're working with currently. Now, the other thing to think about before I go a little bit further is to also take what you said, Rob, which is, you know, make sure you update your tools or look at what you're currently using the most and update it to the latest version. The only thing I will add as a caveat to that is before you go and upgrade your software, back up what you have because sometimes going to a new version or a major release could break what you have. So if you need to continue production support on a current code base, spin up like a virtual machine and test your environment there, test all these cool plugins, make sure everything works before you roll it out. This is especially useful if you're doing with large development teams. You could essentially have a virtual environment stood up and about once a quarter go through and check your software and make sure all the current tools and plugins work together. And then you can roll it out to the team as a smooth release, like all these particular versions of this software work. Now, in addition to IDEs tools that are out there and that you're already using, take the time every so often, maybe once a week, once a month, once a quarter, at least once a year, look at what you're doing. How much of what you're doing is manual? How many tasks are you doing repetitively? Can you automate any of that with a tool, with a script, buy something, or even potentially find something? One of the coolest tools I found was a project me and Rob were working on and we had this very nasty database environment that had all these tables, very ugly schema, and it was very hard for us to figure out the paths to get to the code. But we found this cool little tool. What was it? Not DB Visualizer, VM. Crap, I forget what it was. But what it was... A schema? Yeah, DB schema. And what it does is you basically point it to your database schema and it builds a nice visual representation with all your keys and everything so you can physically see what's going on. And it'll even group it for you. So certain type of data tables will be over here, color codes it. Once we found that, it literally took weeks of headaches and now it's like, oh, I can just pull this up. Oh, there's what I'm looking for. Hours to minutes just by a simple tool. So make sure you review your processes. Make sure you are using the right tools and that you are keeping them up to date. Now, along with that, we haven't really touched on languages or environments, but if you're doing mobile development, always make sure that you review the latest operating systems that are coming out for your phones or devices that you're developing on. Even your desktops going from Windows 8 to Windows 10 or what was it? Windows 98 to Windows NT or Windows 2000. Software doesn't necessarily always carry over. If architectural or environments change, you need to stay on top of that. Otherwise, you're going to be dead in the water and struggling to get back up to speak quickly to support what's going on. The other things we didn't touch on that are great tools to consider are things like OWASP. So if you're in an environment where you're using like a lot of third party plugins for your software or your tools, well, there's this thing called OWASP, which is like a government database that monitors like Maven repositories, things of that nature for vulnerabilities. And you can easily configure your coding environments to do a scan every time you build your software. And it will essentially come back and say, hey, we found these vulnerabilities. If it's greater than say six, we're going to not let your code build. We're going to throw you an error message telling you that, hey, you may need to upgrade to the latest version or review the vulnerabilities that are out there. So you're covering your basically your CYA to make sure that your software doesn't go out with security flaws or even potential vulnerabilities that could be hacked. I really want to follow up on that piece is that we tend to start out as just focused on coding, compiling, building bugs, that kind of stuff. It's like, okay, if I've got it, if it builds it, if it builds, ship it and stuff like that. Modern IDEs beyond just general efficiency hacks and stuff like that that they provide you is it really does help you write better code because you can build all of these systems in. You can have all kinds of automation and suggestions and things like that. Highlighters that will look at your code and say, hey, you're doing this and this is, you know, maybe this is a security flaw or this could be a hole or you're using, you know, this could allow for SQL injection attacks or cross site and all these different things that are out there. And yes, there are sites that will walk you through all of that. And it's a little bit mind boggling at time, but the nice thing is there are tools out there for a lot of that that will allow you to very quickly leverage all of those rules. And then a lot of times you can, you can tweak them so you can say, well, this is one that doesn't matter or this is one that I, it's a false flag too often or something like that, or maybe even step your way into it. So, yeah, you slowly over time get more and more, we'll say attuned to what clean code looks like. It's the simple things like you may have a, I just went through this recently. So it's the kind of thing where you have errors in your code that you have to fix or it won't build right. But then you have a lot of suggestions, warnings that'll say, hey, you, you know, this is unused or this is not used correctly, or this is dead end code or things like that. Clean your code out, go ahead and do that kind of stuff. That's what version control is before. If you need to go find it again, you can go dig it up in a past version. But this really utilizing these tools is not just about being more efficient. It really is about higher quality and really about becoming a better developer. So make sure you're up to date, make sure that you're taking a look at these things, make sure that you are in modern environments, even if you can't afford to update your laptop or something like that, there are virtual environments like Michael suggested that maybe you can go test it out there, or if you can't test it, you can at least utilize that. There are emulators that are, you can find for mobile devices and things like that. There are big testing grounds. There's all sorts of ways for you to, to really like beat on your, your application, your solution, your environment. But there's a lot of things that you can do to help you find those issues before it goes out into the field and somebody reports it. And now it's critical because they need it done yesterday. Closing thoughts? Yeah. The only thing in addition to that is a lot of these tools will also help you if you're in larger environments, find if you find yourself copying and pasting code a lot, which does happen within as being a coder over time. It's like, oh, well here, I can just copy this API, paste over here, update a few things. One of the cool things about a lot of these tools is they'll scan your code and say, Hey, you have a lot of duplicate code. This does the same thing as this. Why don't you refactor? So not only will it help, you know, with debugging, help with testing, it will also help you refine and clean up your code and make it better. And we're going to clean this podcast up and make it better, but not right now. Instead, we're just going to wrap this one up. This again, I want to thank you so much for your time. I don't think we thank you often enough. We are here for you. We're trying to find, you know, just continue to work through the topics that we see, the problems that we see to just try to give back to the community. The best way you can help us out with that is to leave us comments about questions, comments, anything like that, that you have that you would like to see us talk about. And we'll be happy to have that you would like to see us talk about. Shoot us an email at info at developerneur.com. You can check us out on our forums. You can check it out on developerneur.com. You can have a contact us form. You can leave us comments on the, whether it's a podcast or out there on YouTube. We do have YouTube videos. We have a vast array of content that we've, we've put together now over the last, I think it's eight or nine years, whatever it's been, however long this thing's been going on. We also have school.developerneur.com. If you want something that's a little more focused, more like tutorials and, you know, some, some quick references and things like that, those things are out there. If you're just lost with the information that we have, shoot us that email and we will help point you in the right direction as best we can. We might even jump on like an email Slack call, some sort with you to just sort of help you walk through stuff, because that's what we're here for, is to help you guys become building developers, better developers, just as we are trying to become better developers and sometimes just a better speaker. But, you know, sometimes English, even for us, it was, I have no first language. English is my like eighth language and I'm just trying to learn it. That being said, we're going to let you get out there. We're going to release you for now. So class dismissed, go out and enjoy your day. Have yourself a great day, a great week, and we will talk to you next time. Thank you for listening to Building Better Developers, the developerneur podcast. You can subscribe on Apple Podcasts, Stitcher, Amazon, anywhere that you can find podcasts. We are there. And remember, just a little bit of effort every day ends up adding into great momentum and great success.