Giter Club home page Giter Club logo

tdd-multi-currency-money's Introduction

tdd-multi-currency-money

Part 1 of 'Test-Driven Devlopment by Example' by Kent Beck

TODOs (copied from book)

  • $5 + 10 CHF = $10 if rate is 2:1
  • $5 + $5 = $10
  • Return Money from $5 + $5
  • Bank.reduce(Money)
  • Reduce Money with conversion
  • Reduce(Bank, String)
  • Sum.plus
  • Expression.times

Development

View the github workflow as it shows what is required for development. mypy is used for type checking and pytest is used for unit testing.

Quotes

"If the defect density can be reduced enough, then quality assurance can shift from reactive work to proactive work."

"Test-driven development is a way of managing fear during programming"

"Failure is progress."

"TDD is not about taking teeny-tiny steps, it's about being able to take teeny-tiny steps."

"There is a fabulous sequence in Crossing to Safety in which author Wallace Stegner describes a character's workshop. Every item is perfectly in place, the floor is spotless, all is order and cleanliness. The character, however, has never made anything."

"If you have a big system, then the parts that you touch all the time should be absolutely rock solid, so you can make daily changes confidently."

"Defect insertion is another way of evaluating test quality. The idea is simple: change the meaning of a line of code and a test should break. You can do this manually, or with a tool such as Jester."

Lessons Learned

If you're stuck, write lower tests to isolate the problem.

tdd-multi-currency-money's People

Contributors

rlratcliffe avatar

Watchers

 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.