alvarogarcia7 / katas-we-love

A repository for katas. Add yours and send a pull-request!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Katas we love

This repository is a mix of Papers We Love and katas: a place where to store katas for future reference.

How-To

  • Create a new header (h3 - ###) with the title.
  • Create a human-readable description as the body of the element
  • Create a Tags element specifying any information about the kata, in machine readable form:
    • comma-separated tags
    • all lowercase
    • prefer using nouns (rather than verbs)
    • Suggestion:
      • include the topic
      • the author
      • what to learn
      • what to practice
      • the programming language
      • the size of the exercise
      • and anything else that comes to your mind

Contents

Legacy code katas

Take a legacy codebase and refactor to separate the concerns.

The code is small enough to be understood at once, but big enough to add validation, input and output, side effects.

Plus:

  • Use only automatic refactorings until you have broken the dependencies

Tags: legacy-code, richard-dalton, c-sharp, automatic-refactoring, one-day, dependency-breaking-technique, any-language


aptera/effectively

These kata illustrate some techinques we can use to stabilize legacy code—the code that works, DON'T TOUCH IT.

Tags: legacy-code, extract-and-override, static-cling, sprout-method, interface-indirection, john-fazzaro, warren-barnes, j-d-gomes, dependency-breaking-technique


Agile Software Development In Practice


Numerology

An incremental kata to replace some numbers with others, following some rules.

This kata is ideal to practice Rules and Rule Engine

Tags: incremental-kata, rule, business-rule, gianfranco-alongi, number, algorithm, business-code


Tell don't ask kata

A refactoring kata with nearly perfect code coverage in which the feature envy smell is very strong. Almost all behavior is separated from its data and the domain is anemic.

Tags: refactoring, gabriele-tondi, tell-dont-ask, design-principle, solid, value-object, object-orientation, oop, feature-envy, code-smell, anemic-domain


Video Store

A classic legacy-code kata by Martin Fowler.

A 1/2 to 1 day exercise

Tags: refactoring, martin-fowler, classic, video-store, solid, code-smell, object-orientation, oop, half-day, one-day


Gilded Rose

A legacy-code kata by Emily Bache.

The purpose is to add a new feature to a legacy code, with the [optional] restrictions of not changing some elements in the classes.

Tags: legacy-code, emily-bache, github, example, constraint, restriction, c, groovy, java, spock, kotlin, r, smalltalk, typescript, abap, c99, clisp, cpp, csharp, dart, elixir, fsharp, go, haskell, js, perl, perl6, php, plsql, python, ruby, rust, scala, swift


Greeting kata

A greenfield kata to practice specialization and some business rules.

The purpose is to build a new system that can greet differently based on the input.

This Kata is designed to help practice what a test of a pure function ought to look like. It is intentionally designed to start with a very easy, non-branching base case which slowly becomes addled with complexity as additional requirements are added that will require significant branching and eventually a pressure to compose additional units.

This Kata was suggested by Nick Gauthier and inspired a bit by Bob from Exercism.

This Kata is designed to be used with Detroit-school TDD.

Tags: nick-gauthier, bob, exercism, detroit-school-tdd, outside-in, pure-function, greeting-kata, business-rule


Pacman kata

A kata for creating a PacMan game.

The purpose is to balance the big design upfront (BDUF) with the small design upfront, finding exactly the amount of design to be effective.

Originally by William Van Den Ende

Tags: codingdojo-org, pacman, game, easy, bduf, sduf, design, ui, user-interface, ai, artificial-intelligence, pacman-kata

https://github.com/wlodekkr/tests-refactoring

This repository contains the codebase that is subject to the refactoring.

Tags: refactoring, kata, java, java-8

About

A repository for katas. Add yours and send a pull-request!