Trace: » codingdojo.html

[hemmerling] Coding Dojo / Coding Kata / Randori / Code Retreat / Object Calisthenics / Elephant Carpaccio Exercise - Group-Awareness, Self-Awareness, Self-Training in Software Development

Definitions

  • Coding Dojo = Teamwork / competiton / contest at a community event.
  • Coding Kata = Self-Training in coding, single work, alone.
  • Code Retreat = A day-long, intensive practice event, focusing on the fundamentals of software development and design.
  • Git Kata = Training of the code versioning skills.
  • Codefests, Hackathons, Hackfests = The project may last 6, 12, 24, 48 hours.
  • Competitions = The projects may last up to several 100s of hours.

Literature

Events

My Coding Dojo / Code Retreat Events and similar Events

Some other Coding Dojo / Code Retreat Events and similar Events

Code Retreat & Codeing Dojo Rules

Rules for Code Retreat in Wolfsburg, 2012-09-22

  1. Tests must pass.
  2. No duplication.
  3. Reveal intention ( good names ).
  4. Small.

Rules "Simple Design Applied" by Alistair McKinnell, Declan Whelan

The Manifest

Design Rules

  1. All tests must pass.
  2. No code is duplicated.
  3. Code is self-explanatory.
  4. No superfluous parts exist.

Characteristics of "Simple Design"

  1. Passes its tests (given TDD).
  2. Minimizes duplication.
  3. Maximizes clarity (fix names).
  4. Has fewer elements.

Implementation

1 Three-Step Behavour-Driven Implementation of each Rule

  1. Given.
  2. When ( = If ).
  3. Then.

2 Create your own Tests to proceed with Implementation

Object Calisthenics Rules

The Manifest with detailed Explanations

The Rules

  1. One level of indentation per method
  2. Don’t use the ELSE keyword
  3. Wrap all primitives and Strings
  4. First class collections
  5. One dot per line
  6. Don’t abbreviate
  7. Keep all entities small
  8. No classes with more than two instance variables
  9. No getters/setters/properties

Elephant Carpaccio Exercise Rules

  • Create a software application with GUI interface ( console, commandline, web site, 2D desktop GUI, smart phone app, tablet app ).
  • The application shall be developed in slices. For each slice, there is the requirement:
    • May be developed completely in 2-6 minutes.
    • May be presented to a user ( i.e. no plain mockup, data structures, testcases ).
    • Always create an added value, in comparison to the previous slice ( for the user and the gain of understanding ).

Legacy Code Retreat

Experts

Sample Codebases

Tasks

1 Golden Master

2 Pullup & Delegate

  1. Introduce a superclass “A extends B” ( e.g. “Game extends SpecialAspectOfGame” ).
  2. Pulling methods & instance variables.
  3. Replace inheritance by delegation: “class A() { B b; };”

3 Extract Pure Functions

Tasks

Tasks and Task Collections

AntMe!

The Tool

Antme! 1.6, 1.7, 2.0
Antme! 1.6
Antme! 2.0 Development is discontinued on this Platform

Authors and Supporters

Literature

Resources

API Testing Dojo

Elephant Carpaccio Exercise Tasks

Sales Calculator

  • Develop a price calculator with 3 inputs
    1. Number of articles.
    2. Price per article.
    3. EU country code.
  • Apply a volume discount.
# Total order sum in EUR Volume discount in %
1 1000 3
2 5000 5
3 7000 7
4 10000 10
5 50000 15
  • Apply the country-specific VAT.
# Country VAT in %
1 DE 19
2 IT 22
3 SE 25
4 LU 15
5 MT 18

Fizz Buzz

Resources

Solutions

Game of Life ( without GUI )

Resources

Solutions

C
C/C++
C#
Excel
Java
Javascript
Python
Scala
VB.NET

Mars Rover

Meiern, Mäxchen

Robocode

The Tool

Resources

Roguelike Development

Rock-paper-scissors

Tick-Tack-Toe

Software Tools

Resources

Resources - Code Retreat

Resources - Coding Dojo

Resources - "Git Kata"

Resources - "Given, When, Then"

Resources - Object Calisthenics

Resources - Elephant Carpaccio Exercise

Literature

Forums, Newsgroups

Off-Topic: Same Name, but not about Programming Contests & Self-Training in Coding

 
en/codingdojo.html.txt · Last modified: 2024/03/17 07:21 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki