mardi, avril 17, 2007

TDD, TET, and TTD...

As I am quite test infected these days, I tend to make my tests run AFAP (As Fast As Possible...).

This is quite an important topic when dealing with UNIT tests. In fact it's as much crucial as encapsulation of the System Under Test. If your tests run fast, you'll run them often. Hence the "make your tests run AFAP with a good TET (Test Execution Time) when using TDD (or not).

This is not quite new and has been advocated by anonymous people like Martin F. (Except for the TET part which I own a copyright for.... not...)

This is where enters TTD.

I found myself reverting from an everyday use of MyEclipse with JBoss 4.0.x to a WTP 1.5.x/JBoss 4.0.x pair.
And believe me... it's hell on earth! I was trying to explain to a colleague of mine how Struts 2 (interceptors... etc) and Spring work together, and believe me, it's really hard to demonstrate anything efficiently when you never know the status of your deployments and when a modification of a files "sometimes" triggers an awfully slow ant task making a full redeployment of the web application!

So it really seems that TTD (Time to deployment) affects a lot the productivity of a developer. Yet again nothing new, but it is very disappointing to see how a tool like WTP handles such a crucial task.

My conclusion is that I'm working right now on a "Workspace to File system synchronizer" allowing to keep part(s) of your workspace in sync with another part of the file system (for example a folder in JBoss's deploy folder, or in Tomcat's webapps folder) hooked on the Platform's events.

This way, with a great TET and a marvellous TTD, I'll be able to attain my goals ASAP.

3 commentaires:

David Dossot a dit…

SNATU?

Riyad a dit…

Just a quick tip that may make things easier for you.

When you use an "Exploded" deployment in MyEclipse, it is hooked into the build-loop, meaning any time you save a file, it is immediately copied out to the deployed location. No matter if it's a Java file compiled to class then copied, XML file, properties files, JSP, etc.

In addition to that, while MyEclipse supports shortcuts for deploying to all the popular application servers out there, we also provide a "Custom Location" deployment, so you can place your deployment anywhere you want it will be kept in sync.

Also, MyEclipse offers the ability to mark Java projects as dependencies of Web and EAR projects, so it will handle easily packaging up and deploying those as well if necessary (some folks have heavy modularization needs and it's important to them).

The last nice part of all of this is that it can all be managed from the server view. On succinct view in your perspective that lists all your app servers, their statuses (sp?) and their subsequent deployments and their individual statuses as well.

I wouldn't normally go on and on like this, but I feel your pain and wanted to let you know there are alternatives out there before you embark on tackling the problem yourself.

Best of luck.

--NOTE: I work for Genuitec on the Support team.

zepag a dit…

Thanks Riyad,

I already (as you may know) am a frequent user of MyEclipse as Stated in this post.

I really think it's great for this purpose and would find it very interesting to be able to only get the server deployment part of MyEclipse.

But there are some times when I have to deal with clients not wanting to pay the (very decent IMHO) fee for MyEclipse or find that MyEclipse goes against their inside recommandations by providing too many functionalities.

I'm not saying they are right though, and I really appreciate the fact that Eclipse can be improved with small dedicated features, and not only with very complete (sometimes too much) features suites.

I already have prototyped it and mean it to be very simple.

If you want I can state more clearly my appreciation of MyEclipse by editing this post ;)

Cheers