// No Comment!

“Comments are – at best – a necessary evil” (Uncle Bob, “Clean Code”) – Over the years I gathered quite a collection of examples for bad code comments. The most precious gems among them I would like to share with you. You will listen in on developer monologues and dialogues, try to analyze cryptic bylines, experience different levels of UnCamelCasing(tm) skill and fight your way through a redundant, useless and misleading inline thicket. You will also hear about well-meant tools and plugins that should not even exist if the motto “No Comment!” would be valued as it should be.

You can find the original presentation slides here: http://no-comment.kimminich.de

Some comments on // No Comment! from Clean Code Days 2015:

 

 

 

 

Exploring the GitHub Service Universe

Tools for unit testing, building applications, analyzing software quality and planning release scopes are an essential aspect of modern software development. With GitHub and “pluggable” external services there are lots of options to move these aspects into “the Cloud”. For open source projects this is a viable alternative to on-premise solutions. In these slides I present the CI lifecycle of some of my recent projects hosted on GitHub where I tried to integrate modern tools (e.g. Gradle, npm, bower) and external services (e.g. Travis-CI, Code Climate, Coveralls, HuBoard, AmazonSNS, NMA). I am not affiliated with any of the providers mentioned, so this is no marketing slide deck! Instead, you will hopefully learn about some enhancements to try out with your own GitHub projects!

You can view or download the PDF version on Slideshare or you can view the original HTML-based presentation here:

http://github-service-universe.kimminich.de

Practicing Advanced Unit Testing with the TCG Kata

Doing Code Katas alone or in a Dojo can help sharpen our elementary skills as software developers. Practicing IDE shortcuts and TDD mini-step cycles is very useful for the daily business, yet I find some existing Code Katas too far away from real-life programming situations. That’s why I came up with the Trading Card Game Kata – which is (very loosely) based on Blizzard Entertainment’s free-to-play online-game “Hearthstone – Heroes of Warcraft”. This Kata is focused on practicing TDD in a slightly more complex (but not complicated) situation where you might have to think about rules like Single Responsibility Principle or Command Query Separation and might even feel the urge to use a Mocking framework at some point.

First I will introduce the ideas of Katas and Dojos in general and explain the TCG Kata rules to you. Then I will demo some real-life best-practices for writing good developer tests, using my TCG Kata sample solution as a showcase. This will include:

  • Picking the right Test Double
  • Test Data Builders
  • Behavior Tests with BDDMockito
  • Prose-like Assertions with Hamcrest
  • Readability Sugar

The full Kata ruleset and a sample solution in Java 8 can be found on https://github.com/bkimminich/kata-tcg.