SlideShare a Scribd company logo
CodeNarc and GMetrics

   Groovy Code Analysis
Introduction
•  Hubert A. Klein Ikkink -> mrhaki
•  Java developer for many years (started in 1996)
•  Live in the Netherlands (Tilburg)
•  Work at VX Company
•  Enjoying Groovy since 2008
•  Groovy Goodness (and other Gr8 Goodness) blog
•  http://mrhaki.blogspot.com
•  Follow me on twitter: @mrhaki
Code Analysis

                  CodeNarc:
Analyze Groovy code for defects, bad practices,
     inconsistencies, style issues and more


                   GMetrics:
  Calculation of size and complexity metrics
               for Groovy code
Rulesets
•  Basic Rules             •  Grails Rules
•  Braces Rules            •  Imports Rules
•  Concurrency Rules       •  JUnit Rules
•  Design Rules            •  Logging Rules
•  DRY Rules               •  Naming Rules
•  Exceptions Rules        •  Size/Complexity Rules
•  Generic Rules           •  Unnecessary Rules
                           •  Unused Rules
Links
•  http://codenarc.sourceforge.net
•  http://meetcodenarc.appspot.com
•  http://gmetrics.sourceforge.net
•  https://github.com/mrhaki/CodeNarc
•  https://github.com/mrhaki/GMetrics
•  http://mrhaki.blogspot.com

More Related Content

PDF
Hacktoberfest - An Open Source Story
PDF
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
PDF
GR8Conf 2011: Adopting Grails
PDF
GR8Conf 2011: Grails, how to plug in
KEY
Developing Mobile HTML5 Apps with Grails
PDF
Idiomatic spock
PDF
GR8Conf 2011: Grails 1.4 Update by Peter Ledbrook
PDF
Mum, I want to be a Groovy full-stack developer
Hacktoberfest - An Open Source Story
GR8Conf 2009: Groovy in Fiance Case Study by Jonathan Felch
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Grails, how to plug in
Developing Mobile HTML5 Apps with Grails
Idiomatic spock
GR8Conf 2011: Grails 1.4 Update by Peter Ledbrook
Mum, I want to be a Groovy full-stack developer

Similar to GR8Conf 2011: CodeNarc and GMetrics (20)

PDF
GOTO Paris | @see Gopher
PPTX
SignalR & WP8 Community day 2013
PPTX
Patrones de diseño en solidity
PDF
ScalaClean at ScalaSphere 2019
PDF
Why use Go for web development?
PDF
TDD for jenkins pipelines
PPTX
Real life unit testing tools and practices
PDF
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
PPT
Mongo db and wee data
PDF
PWL: One VM to Rule Them All
PDF
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
PDF
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
PDF
Ruin your life using robot framework
PDF
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
PPT
Cross Platform Mobile App Development
KEY
GR8CONF Contributing Back To Grails
PDF
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
PDF
Building the Pipeline of My Dreams
PDF
How to monitor your IBM Connections environment with Python Scripts, JMeter a...
PDF
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
GOTO Paris | @see Gopher
SignalR & WP8 Community day 2013
Patrones de diseño en solidity
ScalaClean at ScalaSphere 2019
Why use Go for web development?
TDD for jenkins pipelines
Real life unit testing tools and practices
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Mongo db and wee data
PWL: One VM to Rule Them All
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Ruin your life using robot framework
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Cross Platform Mobile App Development
GR8CONF Contributing Back To Grails
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Building the Pipeline of My Dreams
How to monitor your IBM Connections environment with Python Scripts, JMeter a...
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Ad

More from GR8Conf (20)

PDF
DevOps Enabling Your Team
PDF
Creating and testing REST contracts with Accurest Gradle
PDF
Metaprogramming with Groovy
PDF
Scraping with Geb
PDF
How to create a conference android app with Groovy and Android
PDF
Ratpack On the Docks
PDF
Groovy Powered Clean Code
PDF
Cut your Grails application to pieces - build feature plugins
PDF
Performance tuning Grails applications
PDF
Ratpack and Grails 3
PDF
Grails & DevOps: continuous integration and delivery in the cloud
PDF
Functional testing your Grails app with GEB
PDF
Deploying, Scaling, and Running Grails on AWS and VPC
PDF
The Grails introduction workshop
PDF
The Groovy Ecosystem Revisited
PDF
Groovy 3 and the new Groovy Meta Object Protocol in examples
PDF
Integration using Apache Camel and Groovy
PDF
CRaSH the shell for the Java Virtual Machine
PDF
Grooscript gr8conf
PDF
CRaSH the shell for the Java Virtual Machine
DevOps Enabling Your Team
Creating and testing REST contracts with Accurest Gradle
Metaprogramming with Groovy
Scraping with Geb
How to create a conference android app with Groovy and Android
Ratpack On the Docks
Groovy Powered Clean Code
Cut your Grails application to pieces - build feature plugins
Performance tuning Grails applications
Ratpack and Grails 3
Grails & DevOps: continuous integration and delivery in the cloud
Functional testing your Grails app with GEB
Deploying, Scaling, and Running Grails on AWS and VPC
The Grails introduction workshop
The Groovy Ecosystem Revisited
Groovy 3 and the new Groovy Meta Object Protocol in examples
Integration using Apache Camel and Groovy
CRaSH the shell for the Java Virtual Machine
Grooscript gr8conf
CRaSH the shell for the Java Virtual Machine
Ad

GR8Conf 2011: CodeNarc and GMetrics

  • 1. CodeNarc and GMetrics Groovy Code Analysis
  • 2. Introduction •  Hubert A. Klein Ikkink -> mrhaki •  Java developer for many years (started in 1996) •  Live in the Netherlands (Tilburg) •  Work at VX Company •  Enjoying Groovy since 2008 •  Groovy Goodness (and other Gr8 Goodness) blog •  http://mrhaki.blogspot.com •  Follow me on twitter: @mrhaki
  • 3. Code Analysis CodeNarc: Analyze Groovy code for defects, bad practices, inconsistencies, style issues and more GMetrics: Calculation of size and complexity metrics for Groovy code
  • 4. Rulesets •  Basic Rules •  Grails Rules •  Braces Rules •  Imports Rules •  Concurrency Rules •  JUnit Rules •  Design Rules •  Logging Rules •  DRY Rules •  Naming Rules •  Exceptions Rules •  Size/Complexity Rules •  Generic Rules •  Unnecessary Rules •  Unused Rules
  • 5. Links •  http://codenarc.sourceforge.net •  http://meetcodenarc.appspot.com •  http://gmetrics.sourceforge.net •  https://github.com/mrhaki/CodeNarc •  https://github.com/mrhaki/GMetrics •  http://mrhaki.blogspot.com