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=95&tid=217&tid=8";

Good luck!

Jared

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

Reply via email to