Code review tools and techniques

11 views
Skip to first unread message

warwickhunter

unread,
Feb 8, 2010, 7:05:04 PM2/8/10
to Gold Coast Java Users Group
Hello Gang,

I am thinking about deploying some sort of code review tool within the
company to start doing more code reviews and make it easy. We use
Java, C, C++, Obj-C, PHP and Python. Can any of you comment on tools
that you use or have used?

Cheers,

Warwick

Mitchell Smith

unread,
Feb 8, 2010, 9:44:18 PM2/8/10
to gc...@googlegroups.com
Hi,

We have been using the Atlassian tools for a couple of years now, and find
they work pretty well for our team.

* Jira - bug tracking
* Confluence - wiki
* Fisheye - VCS browsing
* Crucible - code review

We also use Hudson which is an open source tool for continuous builds.

If your team is smaller than 10, Atlassian have some insanely well priced
starter licenses.

You could probably achieve the same result entirely with open source tools,
such as Trac and Review Board, but they might not tie together quite as
nicely.

We also have a post commit hook set up in our Subversion repository which
emails a diff on each commit out to everyone in the dev team, this is fairly
basic, but quite helpful. Often you might just skim the commit comments,
but it is a good way of quickly reviewing something that may impact some
code you are working on, or identify areas that may need further review.

I hope this helps.

Cheers,

Mitch

> --
> You received this message because you are subscribed to the Google Groups
> "Gold Coast Java Users Group" group.
> To post to this group, send email to gc...@googlegroups.com.
> To unsubscribe from this group, send email to
> gcjug+un...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/gcjug?hl=en.
>
>

Steve Dalton

unread,
Feb 9, 2010, 4:53:37 AM2/9/10
to gc...@googlegroups.com
Ditto on Crucible for code review... It's very impressive and as Mitch said - very cheap for small teams. Our company Refactor are Authorised Atlassian partners, so if you need any help with any of the Atlassian stuff let me know.

Personally - if you are doing Agile, promiscuous pair programming is the way to go - continual code review, so no need for any tools there - although I would still recommend at least Jira and Confluence (or equivalents - I'm not religious about it!) for any team.

Also - make sure you have a CI server - you can do a lot of automated review in there such as code coverage, find bugs and check style. Bambo from Atlassian is a good one, or for a free one you can't go wrong with Hudson.

HTH
Steve
--
I did have a signature, but the dog ate it.

google/googlewave:steve.dalton | skype:spidieman | twitter: @spidie

Craig Aspinall

unread,
Feb 9, 2010, 6:00:14 AM2/9/10
to gc...@googlegroups.com
Hi,

Whilst I only have experience of Java, I can second the use of Hudson for CI. I set up our build system at my last place of work with Maven and Hudson and between the (plugins for the) two of them, you can find out an awful lot about your code. Of course, you still need to look at the output to see what is going on! 

Using Maven you can also cause the build to fail if things like Checkstyle or  FindBugs report any findings, which is useful for enforcing coding standards and avoiding some nasty but common pitfalls (and/or implementing a "stop the line" approach when something bad is checked in). 

I did have Maven building a fairly complex JNI project including the native FFMPEG library and JNI wrappers, so you can use it to build non-Java code, but if you're not integrating that code with Java, then I'm not sure there would be any advantage.

We were also looking at code review tools but never got around to trying any out before I left. The one we were most likely to try was Review Board.

Hope that helps,

Craig.

Steve Dalton

unread,
Feb 9, 2010, 7:03:27 AM2/9/10
to gc...@googlegroups.com
I know a few people that use Hudson for doing .net builds (with nant I think) and I have also used it for PHP, Python & Ruby code using plugins. Same applies to Bamboo and Cruise Control.

I'm assuming there is something for Objective C out there too.

Steve

warwickhunter

unread,
Mar 5, 2010, 6:56:59 PM3/5/10
to Gold Coast Java Users Group
Thanks to everyone for your comments and recommendations. I will look
at a number of the code review tools that you have mentioned.

It's fascinating to hear what tools and techniques that other people
use for development. Thanks for sharing. With that in mind, my company
uses CruiseControl as our CI server. I looked at Hudson a year or so
ago, but the way that Hudson uses Perforce (our code repo) was too
simplistic for our needs.

We have two CI servers: one running on Fedora Linux that builds all
our Java and C/C++ code, one on an iMac that builds all our iPhone
client code. CruiseControl is a lot more work to setup than Hudson,
but once you have an instance going I find it easy to add and remove
projects. I wrote an ant wrapper for our scripts that build RPMs which
makes it easy to invoke our custom scripts from CC. I also integrated
Findbugs and Cobertura analysis into the CC build of our Java
projects.

We use Bugzilla for tracking. I wrote a submit hook for Perforce that
takes a check-in comment and marks the bug in Bugzilla with the
comment or marks the bug as resolved based on the keywords in the
check-in comment.

Warwick

Reply all
Reply to author
Forward
0 new messages