My Java workspace (Part 1)
IDE
At the beginning I was using NetBeans and then Eclipse, since then I never changed.
I know other IDEs are on the market such as IntelliJ, but I never used them. I can only say on each seminair I went, Eclipse was the
most well known and used.
Eclipse is based on OSGi and then is composed of bundles, here called plugins. A large number of plugins
is available for you. You can also write your on plugins and then use Eclipse as a RCP platform.
Database
First, it is
always better to have one database per developer (some unit testing framework have this assemption cfr Unitils), because this avoid
conflicts during the development and the unit testing. If it is not possible in your environment Spring-Mock can help you to solve
this issue.
A lot of databases are available, the best choice is to use the same database for development and production, but I know
that this is not always possible because some database are quiet expensive and you can't buy one for each developpers. I can say that
often each database provider has a free light version of their product and you can use it on your development platform. If your database
provider doesn't have it, either you negotiate with him to get it or you use another product for your development. In this case, you
can mitigate the risk by using an ORM framework such as Hibernate.
Some database can also run in-memory, this is an advantage because
you don't have to clean your database before each unit-test, but in the other hand you can't check what happen in your database after
your test if something goes wrong. I would suggest to use real database to stay closer than your production database.
The choice of
your database will be more driven by your non-functional needs rather than your development environment. Do you need clustering, double-byte
support,...?
For the time being I'm using MySql which is the most well known and easy to install, but some time it is easier to use
Derby (formerly known as Cloudscape).