Work with the same partner(s) with whom you worked for Phases 1 and 2.
Goals
- Practice implementing pre-specified interfaces.
- Get experience doing development with unit tests pre-written.
- Reflect on the test-driven development experience. How did it change your programming experience?
- Gain experience with how independent teams implementing the same specification
can interpret things differently.
Your job for Phase 3
- Implement the interfaces in booksdatasource.py.
- Make sure your implementations pass the unit tests you developed during Phase 2.
Ensure that the "make test" command included in Phase 2 still runs all your tests.
- Once you're happy with your implementations, tag your repo with the tag books_phase3 and
push the results to GitHub.
- All files should be in your books folder at the top level of your repository.
Reiterating and expanding on the message from Phase 2. IMPORTANT:
You might find that you'll want to add new methods to BooksDataSource to make your
code easier to read and understand, to avoid duplicate code, etc. Go right ahead and do this if you wish.
But you may not change BooksDataSource's original method signatures or expected behavior.
Those interfaces are a given, and are not yours to change unilaterally.
(Think about this. Why is it so important that you not change the interfaces? What bad things
could happen if you do?)
Start early, ask questions, and have fun!