Git Product home page Git Product logo

code-dojo-39's Introduction

Kata: Sing a song (refactoring)

You can find a Node.js and JavaScript ES6 implementation of the kata in the javascript folder; produce the song with:

node song.js

Similarly a Ruby version can be found in the ruby folder; produce the song with:

ruby song.rb

A Python version can be found in the python folder; produce the song with:

python song.py

A Java version can be found in the java folder; produce the song with:

javac Song.java && java Song

A PHP version can be found in the PHP folder; produce the song with:

php song.php

A .NET Core version implementation of the kata in the csharp\dotnetcore folder; produce the song with:

cd song
dotnet run

A Go version can be found in the golang folder; produce the song with:

go run main.go

You can find out more about the London Code Dojo at our homepage.

Objective

Code to produce a popular children's nursary rhyme was produced by a web agency for the customer last year. The customer now desires to produce multiple different versions of the song using the same structure but based on different themes, for example a current popular children's movie featuring a cast of animals. The customer asks that you make the song configurable for different lists of animals. The customer cannot guarentee that there will be the same number of animals in each different version.

No documentation or tests were provided by the previous developer.

Refactor the code to allow for the customer's needs. Remember: refactoring can only be done in the presence of tests that are passing, and after refactoring the tests still pass!

License

The code samples are licensed under the CC-SA-NC-4.0 license, as shown in the LICENSE file.

code-dojo-39's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.