Skip to content

arolla/kata-refacto-rental-movie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Movie Rental

Refactoring kata inspired by book "Refactoring: Improving the Design of Existing Code" (Martin Fowler).

Usage

The purpose of this is to provide good examples for the refactoring workshop.

When you find you have to add a feature to a program, and the program's code is not structured in a convenient way to add the feature, first refactor the program to make it easy to add the feature, then add the feature.

Whenever you do refactoring, the first step is always the same. You need to build a solid set of tests for that section of code. The tests are essential because even though you follow refactorings structured to avoid most of the opportunities for introducing bugs, you are still human and still make mistakes. Thus you need solid tests.

Step 1

Actually the statement method prints out a simple text output of a rental statement

Rental Record for martin
  Ran 3.5
  Trois Couleurs: Bleu 2.0
Amount owed is 5.5
You earned 2 frequent renter points

We want to write an HTML version of the statement method :

<h1>Rental Record for <em>martin</em></h1>
<table>
  <tr><td>Ran</td><td>3.5</td></tr>
  <tr><td>Trois Couleurs: Bleu</td><td>2.0</td></tr>
</table>
<p>Amount owed is <em>5.5</em></p>
<p>You earned <em>2</em> frequent renter points</p>

Step 2

We want to add now a new movie category:

  • Scifi category
  • The price is 2
  • After 3 days, each extra rental day will cost 2.5
  • Customer won an extra frequent renter point when rental is 2 days or more

About

kata de refactoring rental-movie

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published