Helen is a Java Developer Advocate at JetBrains. She has over 20 years’ experience in the software industry which has been gained in a variety of roles including developer, technical writer, product owner, and advocacy.
In the Debugger Checklist (Part I), I introduced some of the high level concepts and reviewed some of the common things you can do.
In this part, we’ll get down to the process. Again, it’s important to stress that this is boiled down and concentrated!
Win at debugging by following an organized process and leveraging the tools you already have!
We’re going to skip ahead to a point where you have a bug you can reproduce (consistently or otherwise) but you don’t understand or can’t prove the cause.
A new Java release every six months can be exciting, overwhelming, or both. Given that Java 17 is also an LTS release, it’s not just the developers but enterprises also noticing it. If you have been waiting to move on from Java 8 or 11, now is the time to weigh its advantages.
As developers, we’re all familiar with debuggers. We use debugging tools on a daily basis – they’re an essential part of programming. But let’s be honest. Usually, we only use the breakpoint option. If we’re feeling frisky, we might use a conditional breakpoint.
But guess what, the IntelliJ IDEA debugger has many powerful and cutting-edge features that are useful for debugging more easily and efficiently.
- IntelliJ IDEA
Let’s take a look at some of my favourite keyboard shortcuts in IntelliJ IDEA.
It’s really helpful to use keyboard shortcuts because it speeds you up and keeps you in the flow of coding!
- IntelliJ IDEA
Sometimes you need to modify multiple lines of code on separate lines inside IntelliJ IDEA with the same change.
The fastest way to achieve that is with multiple carets that are either stacked vertically in a list, placed at the end of each line or positioned exactly where you want them in your code.
Most people will start with using “git blame” (or the respective functionality within their IDE/editor).
But on most non-trivial projects, you usually end up with a refactoring commit, a rename, or a trivial cross-project fix like switching to another assertion library. At first glance, we only see the most recent changes, not the most important ones.
We need to carefully remove layer by layer of sand and dirt that has been swept over the real changes to unearth them.
Have you ever been in the situation where you’ve been looking for a specific JDK version of a specific distribution?
Sometimes that was easy… sometimes it was hard… but it never was fun.
After creating the Disco API (“Universal OpenJDK Discovery API”, in full) which serves up JDK distributions as a service, I had the idea to create plugins for IDEs to enable people to download the JDK of their choice more easily.
Since Java switched to a 6-month release cycle, JavaFX has done the same, so next version will be number 17.
Keep in mind, although Java and JavaFX are on the same version-number, you can still use Java 11 and combine it with the JavaFX 17 runtime if you want to benefit from its improvements. Up till now, there were no breaking changes in either of the frameworks which force you to use a Java-version higher than 11.
In this tutorial, we’ll use the New Project Wizard in IntelliJ IDEA to create a Spring Boot project with the Spring Web dependency.
We’ll also create a Spring Controller and served some text to the local Tomcat webserver.
Finally, we’ll add a test for our HTTP call.
Nowadays, developers are responsible for more than just creating the application. Besides working on features, developers have to focus on their applications’ maintainability, scalability, reliability, and security. Many developers are unsure of where to start with security. In addition, most companies still work with a dedicated security team instead of having security expertise inside the team.
A lot of developers practically live in their integrated development environment (IDE). A good IDE is like a swiss army knife: it is your go-to tool to do almost everything. Having everything I need to build, run, test, debug, and secure my application, makes a good IDE invaluable for many developers.