CSC/ECE 517 Fall 2013/ch1 1w08 cc

From Expertiza_Wiki
Revision as of 02:12, 16 September 2013 by Ctmille2 (talk | contribs) (→‎Rietveld)
Jump to navigation Jump to search

Code review tools are used to aid and automate existing code review practices in order to simplify and guide the review work flow. In general, code review is a systematic analysis of source code by a peer to find bugs which may have been missed by the original coder. <ref> GoogleTalksArchive "Mondrian Code Review on the Web" </ref>. The code review tools discussed here are designed for multiple users to easily share, review, and comment on one another's code to speed up the debugging process. Another type of code review tools is static code analysis tools but those tools are not discussed here. Key features of code review tools are ... Limitations include ...

Code Review Tools

Agile Review

Barkeep

Barkeep is a code review system developed in Ruby by the company Ooyala <ref> GitHub "Comparing barkeep to other code review tools" </ref>. Although written in Ruby Barkeep is not language specific and may be used for code review of any language. Barkeep is standalone and the end user is responsible for hosting it. One of the key features that Barkeep prides itself on is it hackable nature. Since Barkeep is hosted by the user and they provide their “small codebase” it allows users to add on new features and make modifications as they see fit for their needs. So even if Barkeep doesn’t have a feature someone needs it is very feasible for the user to add it.

Cost: Free

Features

  • Email Notifications
  • Syntax Highlighted Color Diffs
  • Hackable
  • Commits Searching
  • Review Requests
  • Comments
    • Inline Code Snippets
  • Stats
    • Most Active Reviewers
    • Most Commented Commits
    • Review Coverage
    • Top Approvers

Collaborator

Collaborator is a code review tool built on CodeCollaborator by SmartBear. Unlike many other code review tools collaborator also doubles as a peer review tool allowing review of not only code but documents and other project deliverables such as user stories, test plans and user documentation. Companies such as Intel, Southwest Airlines, Cisco and Walmart have used Collaborator. <ref> SmartBear "Code & Document Review - Collaborator" </ref>

Cost: Paid

Features

  • Real-time Chat
  • Syntax Highlighted Color Diffs
  • Comments
  • IDE & SCM (Source Control Management) Integrations
  • Reports
    • Pending Code Reviews
    • Code Review Performance
    • Many more…
  • Customizable and Automated Workflows
  • Defect Tracking & Management
  • Review Checklists

Code Striker

Crucible

FlexPmd

Gerrit

Google Mondrian (may need to summarize under Rietveld)

Groogle

Hammurapi

JCode Review

Jupiter

Malevich

Perforce

Rietveld

Rietveld is an open source web application for code reviews. Rietveld was inspired by Mondrian a internal web application at Google used for code reviews. Mondrian is heavily used inside Google and a developer of Mondrian always wanted to release it as an open source tool but due to its popularity within the company was unable to. Rietveld came about from the inspiration of Mondrian and was released to the open source Python community. <ref> https://developers.google.com/appengine/articles/rietveld </ref>

Cost: Free

Features

  • Email Notifications
  • Syntax Highlighted Color Diffs
  • Hackable
  • Inline Comment

Review Board

Comparison

Functionality

Tool Maintainer Developed In Available For Desktop Client vs Web App Cost
Agile Review
Barkeep
Collaborator
Code Striker
Crucible
FlexPmd
Gerrit
Groogle Web App
Hammurapi
JCode Review
Jupiter
Malevich
Perforce
Rietveld
Review Board

Features

"*" denotes a feature.

Tools/Features Email Notifications Side-by-side file comparison Syntax Highlighted Color Diffs Subversion Integration Commenting
Agile Review *
Barkeep *
Collaborator
Code Striker
Crucible
FlexPmd
Gerrit
Groogle
Hammurapi
JCode Review
Jupiter
Malevich
Perforce
Rietveld *
Review Board

Examples

(Use the one with the most features as an example...with pictures etc)

References

<references />