SlideShare a Scribd company logo
1 of 5
Download to read offline
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

Similar to GR8Conf 2011: CodeNarc and GMetrics

SignalR & WP8 Community day 2013
SignalR & WP8 Community day 2013SignalR & WP8 Community day 2013
SignalR & WP8 Community day 2013
Nico Vermeir
 
Real life unit testing tools and practices
Real life unit testing   tools and practicesReal life unit testing   tools and practices
Real life unit testing tools and practices
Gil Zilberfeld
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
DOCOMO Innovations, Inc.
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
DOCOMO Innovations, Inc.
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grails
bobbywarner
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
jward5519
 

Similar to GR8Conf 2011: CodeNarc and GMetrics (20)

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

More from GR8Conf

More from GR8Conf (20)

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

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