---
title: "A few lessons from IntelliJ IDEA"
url: "https://osherove.com/blog/2003/10/26/a-few-lessons-from-intellij-idea.md"
canonical: "https://osherove.com/blog/2003/10/26/a-few-lessons-from-intellij-idea.html"
published: "2003-10-26T08:27:00"
updated: "2003-10-26T08:27:00"
tags: ["Off Topic"]
author: "Roy Osherove"
description: "My wife is currently taking Java classes as part of her curriculum at the university. I've played with Java a couple of times in the past, but because I never got a real chance of “working” with it, it never really grew…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# A few lessons from IntelliJ IDEA

By Roy Osherove October 26, 2003 In [Off Topic](https://osherove.com/blog/category/off-topic)

**Historical article** · Originally published October 26, 2003; technical details may be outdated.

My wife is currently taking Java classes as part of her curriculum at the university. I've played with Java a couple of times in the past, but because I never got a real chance of “working” with it, it never really grew into anything more than fiddling with it a little bit and then forgetting everything.

Fast forward a couple of years, and now I've been “playing” with C# for quite a while, and loving every minute of it. Now my wife has to play with Java, and I'm thinking, “What the hey, I might help her out with homework a little, just to get my feet wet again in this java thing”, besides, I really wanted to get a good look at the new [IntelliJ IDEA java IDE](http://www.intellij.com/), which some of my friends have been raving about like mad. Sure, I promised to help out with homework, but that doesn’t mean I can’t take a couple of hours and just play with the world of snazzy features that just fell into my lap, right?  Oh man. The refactoring features in the IDE are **dreamy**. Take every piece of code you ever wrote, and make changes to it with the ease of a few mouse clicks. One of my favorites is the ability to write private/public fields and then hit ALT+INSERT and select “Implement getters/setters” from the menu that pops up. Then I just check off the fields I want and they automatically get Getters and setters (and are turned private). Do the same routine again, but select “Create constructors”, and again, you get the ability to just check off the  fields that will be initialized automatically inside the constructors.

You also get tips that act like smart tags:

Here you can see what happens when I write a variable name in my method that is not declared. How cool is that? You get these tags when you do all sorts of things like not implement an interface correctly and so on.  Another favorite of mine: “Refactoring->Rename” allows you to change a field’s name and automatically make all the other code conform to the new name. You can do the same with class names, method signatures and so on. You can also extract code into a separate method, extract interfaces, extract superclasses, move members between class hierarchies… **very** nifty.

Now, what I’ve outlined here is just the tip of the iceberg. There are literally hundreds of useful refactorings available in the IDE, and I love the amount of thought that went into creating this usability heaven. I don’t know just how good Whidbey will be at refactorings, but if it offers just half of this, it will be very cool (still, you have to wonder, why just half? How hard is it to implement all those features? Not very hard. It’s all pure nitty gritty work of search and replace mostly, that’s all).

## More in Off Topic

[All posts in Off Topic](https://osherove.com/blog/category/off-topic)

- Oct 26, 2003

    ### [Leaving for PDC post hailstorm](https://osherove.com/blog/2003/10/26/leaving-for-pdc-post-hailstorm.html)

- Oct 26, 2003

    ### [And a few lessons from JBuilder](https://osherove.com/blog/2003/10/26/and-a-few-lessons-from-jbuilder.html)

- Oct 16, 2003

    ### [\[Rant\] Horrible two weeks](https://osherove.com/blog/2003/10/16/rant-horrible-two-weeks.html)

- Oct 14, 2003

    ### [Microsoft PDC 2003 Sessions RSS feed? Oh yeah!](https://osherove.com/blog/2003/10/14/microsoft-pdc-2003-sessions-rss-feed-oh-yeah.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
