Thanks.  I too am a BIG believer in pre/post compile automated testing.  I
should not have left that out.  I have historically made all of that part of
the build process using shell scripts (as in, if tests fail, the build fails
too)... Nice to see there are some tools now that seem to integrate this.
Thanks for the suggestion.

David 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Jared Richardson
Sent: Thursday, March 31, 2005 1:43 PM
To: Research Triangle Java User's Group mailing list.
Subject: RE: [Juglist] Returning to coding from leave of absence...

Hey David,

I've replied to a few spots inline. More on build infrastructure though... 

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of David Spitz
> Sent: Thursday, March 31, 2005 1:13 PM
> To: 'Research Triangle Java User's Group mailing list.'
> Subject: [Juglist] Returning to coding from leave of absence...
> 

<snipped>

> 
> With those vague guidelines, here are my preconceived notions 
> of what I'll
> begin to assemble.  I would appreciate suggestions, comments, 
> corrections,
> etc.
> 
> Development
> * Build Management: Ant (I will miss make)

I'll lend a ~heavy~ endorsement to a Continuous Integration system
(http://martinfowler.com/articles/continuousIntegration.html). Get one. My
favorite is CruiseControl (http://cruisecontrol.sourceforge.net/). CC will
build your project (via the Ant script) and then run tests every time the
code gets changed. It's amazing how much easier development is when you
~know~ the code tree is still compiling and a basic test suite still passes!
This also catches mistakes quickly, while you still remember what you were
working on when you make the changes.

In that vein, have at least a basic JUnit test suite to verify
functionality. (http://junit.sourceforge.net/). Some people believe in
having complete end-to-end unit tests for every object in the system. I tend
to use unit tests sparingly and focus more on API level or integration type
JUnit tests.

Ant can be driven by CruiseControl. Ant has built in support for JUnit and
will generate nice HTML reports of JUnit test runs.

You may also want to have a look at Maven (given time)
(http://maven.apache.org/). It seems to be maturing into a very nice
complete build system. It can also be driven by CruiseControl, can run Ant
scripts, etc. Maven has an organized build structure that it imposes on your
build and it has ~tons~ of plugins it can run to everything code coverage to
static code analysis, etc. 


> * SCCS: Probably perforce since I have experience with it..

Save your money and use CVS (https://www.cvshome.org/) or Subversion
(http://subversion.tigris.org/). Both have tons of 3rd party support and run
everywhere. Lots of good books about them floating around as well
(http://www.pragmaticprogrammer.com/bookshelf/index.html)

> * Coding: Slickedit (I will always be a vi bigot, eclipse 
> fans flame away)

Jedit is nice and free as well. http://www.jedit.org/ but I'm not crazy
enough to tell anyone what editor to use! :)


> * I am still looking for a good pre/post-analysis lint-like tool
>   to do things like complexity analysis, etc.  Suggestions?
> 

I have set up a number of these here at SAS and FindBugs is the BEST.
(http://findbugs.sourceforge.net/) We are using anti-c, jlint, and PMD.
FindBugs has the lowest rate of false positives, the best feedback, and the
easiest to read reports.

Cobertura is the best coverage tool around
(http://cobertura.sourceforge.net/). Of course, the fork of Jcoverage came
out of my department here so I'm a little biased! :) Cobertura has a Maven
plugin, runs in Ant, etc


> Tech stack
> * Hosting: Have used Inflow and IBM in past. Current favorites? We'll
>   be providing our own hardware, just need good managed cages.
> * Boxes: Dell rackmount..?  Any IBMers out there want to give me
>   a reason to look elsewhere?

Opterons take more memory than anyone else, and the memory costs less. If
you boxes will need tons of ram, check them out (but Dell doesn't sell
them).


> * OS: RedHat Linux..? Or do folks prefer BSD?
> * DB: MySQL... Who will vouch?  I used Oracle previously... But it's
>   expensive and the tentacles get deep.


MySql is great. I worked at a bio-tech that used it for a db we built w/a
quarter billion entries... 70 gigs (ballpark) if I remember. Learn to putz
around w/the memory settings and the performance will amaze you.


> * J2EE: (Warning, I have not delved into J2EE personally, so what
>   follows are sure to be dumb questions... But do have substantial
>   servlet/JSP experience and I know the concepts, having had to
>   invent them in-house prior to J2EE out of necessity)
>       * The basics: I have prototyped some systems using servlets
>         based on Apache/Tomcat/Jakarta.
>       * App Server: JBoss?  Does this subsume what's provided
>         by Apache/Tomcat/Jakarta?  How does it compare to
>         BEA or WebSphere? Pros/cons?

I'll leave the Jboss questions to Andy Oliver! 

>       * UI: I've heard nice things about Tapestry.  What's the
>         best (most flexible/maintainable) UI framework these days
>         for web-based UIs?

I don't do much in this area but I'm told that the Struts successor (Shale)
will be great but it will be an entirely new code base. I'd also look at
Spring (http://www.springframework.com/) and Webwork
(http://www.opensymphony.com/webwork/), but I'm Tapestry is also great.

Also, look at Ajax for your client
http://developers.slashdot.org/article.pl?sid=05/02/23/1859222&tid=189&tid=9
5&tid=217&tid=8"

Good luck!

Jared

_______________________________________________
Juglist mailing list
[email protected]
http://trijug.org/mailman/listinfo/juglist_trijug.org


_______________________________________________
Juglist mailing list
[email protected]
http://trijug.org/mailman/listinfo/juglist_trijug.org

Reply via email to