The No.1 i-Technology Magazine in the World !
   
 
Clint Shank's Blog

Quotes from No Fluff Just Stuff

28 Apr 2008
Some memorable quotes from the No Fluff Just Stuff conference in Reston, Virginia.
tags:    
Category: Conferences

Hudson CI Game Plugin

17 Apr 2008
redsolo has implemented a version of The Continuous Integration Build Game as a Hudson plugin.
tags:      
Category: Tools

Spring Configuration Per Environment

30 Jan 2008
It's common that configuration changes between environments (e.g., development, test, production). This entry describes the specification of a custom PropertyPlaceholderConfigurer for per environment Spring configuration.
tags:  
Category: Spring

Law of Demeter and Unit Test Setup

30 Nov 2007
Have you ever seen or even developed a long, complex setup method in JUnit? Maybe it was because the production code was violating the Law of Demeter. Here's another Robert Martin Craftsman style entry.
tags:      
Category: Design Testing

Parallel JUnit Ant Task

16 Oct 2007
Over time, how do you maintain a maximum 10 minute build? This is an important agile practice for continuous integration. This entry describes an Ant task designed to run standard JUnit tests concurrently.
tags:        
Category: Tools Testing

The Continuous Integration Build Game

14 Sep 2007
This entry describes a fun game agile software development teams can play to encourage best practices and discourage bad practices for continuous integration builds.
tags:      

The Difference Between a Property, Field, Attribute

3 Aug 2007
This blog entry attempts to clear up the confusion among the terms property, field, instance variable, and attribute.
tags:    

How to Refactor Many Arguments

25 May 2007
Ever have a constructor with 72 parameters? No, that wasn't a typo. How would you go about refactoring it? [...]
tags:    

DBC Precondition/Postcondition Subclass Rules

12 Apr 2007
Here's an analogy to explain the precondition and postcondition covariance and contravariance rules of design by contract (DBC) in an inheritance/implementation hierarchy. These rules support the Liskov substitution principle (LSP) [...]
tags:  
Category: Design

Groovy or JRuby?

24 Mar 2007
Which dynamic programming language should I introduce to a group of relatively young, inexperienced Java developers? The choice is between Groovy and JRuby [...]
tags:    
Category: Groovy Ruby

Bad PMD Rules

9 Mar 2007
PMD is an excellent tool for finding potential bugs and improving code quality, but it can generate a lot of false positives. Here's my list of the top 10 rules I turn off immediately [...]
tags:  
Category: Tools

The todo Test Category

26 Jan 2007
Should a failing unit test break the build? Elliotte Rusty Harold recently discussed why he doesn't think so. Ever heard of test categorization? Well, there's a new test category in town - the todo test category[...]

Behavior Driven Development with JUnit 4

14 Dec 2006
JUnit 4 makes Behavior Driven Development (BDD) easier...
Category: Tools Testing

Testing Private Methods

18 Nov 2006
There are some practical reasons for testing private methods (and inspecting private fields on occasion). This entry discusses these reasons and why using reflection instead of just changing the access scope of the method itself is the way to go.
Category: Testing

Comments on The Danger of Mock Objects

24 Sep 2006
Rarely do I disagree with Uncle Bob. I’ve learned a lot from reading his writings over the years. He recently blogged about mock objects in response to a blog from Cedric Beust...
Category: Testing

Break, Then Leave and Pre-Check In Checklist

16 Sep 2006
My build/SCM blog series ends with a look at one of the most annoying things a member can do to his team and a checklist to follow for reducing the chances of breaking a build.

After the Build Breaks

28 Aug 2006
The second part of the build/SCM blog series deals with what happens when a build breaks. This happens, hopefully infrequently, but it happens. Getting the build back on track should be one of the highest priorities...

Anti-Practice: Reserving Files

20 Aug 2006
Here is the first blog in a series discussing some obsolete practices and just plain annoyances regarding builds and source code management. The context is an agile development environment following the best practices of continuous integration...
Category: SCM

Checklist for Finding Test Cases

4 Jun 2006
Suppose I'm focused on specifying the behavior of a particular method. How do I know if I've specified everything? I'd like to share a checklist of things I think about to help accomplish this...

How to Pick a Conference Session

14 May 2006
Have you ever had a hard time choosing among concurrent conference sessions, tutorials, BOFs, etc? Here’s an objective scoring system for helping you get the most bang for your buck.
Category: Career

Collection Utility Methods on the Object

16 Apr 2006
When used judiciously, the technique of adding collection-related utility methods on an object has its benefits.

Test Smell: Test Breaks After Good Refactoring

17 Mar 2006
What does it mean when you perform a correct refactoring, but your tests break? This blog entry describes some decoupling tips to deodorize this code (or test) smell.
Category: Testing

A Logical Ordering of Import Statements

3 Mar 2006
This entry describes a guideline for ordering import statements in Java classes and interfaces. The ordering aids in module dependency management, particularly in a layered architecture.
Category: Programming Java

A Common Set of Test Refactorings

19 Feb 2006
A set of low level Eclipse refactorings commonly used together when refactoring unit tests.

TDD Pattern: Tabular Tests

5 Feb 2006
This entry discusses a controversial, yet practical technique for refactoring test methods into a concise specification of test cases for a production class method.
Category: Design Java Testing

Small Methods: A Best Practice

22 Jan 2006
Writing small methods is an effective technique for developing quality software by removing code duplication and providing chunks of reusable code.
Category: Programming

Coding By Intention

10 Jan 2006
The technique of coding by intention (along with test-driven development) is the first step in crafting elegant software.