Topic 9
Topic 9
Ruby source files are converted directly from the English source tree.
Overview
Why this topic matters ๐ก
The capstone exists to gather the course ideas into one small domain. Students move from isolated features to a coherent miniature system with domain objects, state changes, validation, collaboration, and export behavior.
Learning outcomes ๐ฏ
By the end of this topic, students should be able to:
Assessment focus โ
Students should be able to explain why the model is split across Book , Member , Library , and LibraryReport .
Short Note
A capstone should not be large. It should be large enough to reveal whether the student can connect the ideas from earlier topics:
Ruby beauty in this topic:
Ruby caution in this topic:
Reflection prompt:
Worked Examples
Example 1: Borrowing rule on the member ๐ก
The borrowing limit belongs to Member , not to a controller-like script, because it is part of the member's domain constraint.
This is a useful teaching decision:
Example 2: Exporting lending state ๐ก
The library may need to expose lending state in multiple forms:
That makes the exporter boundary realistic and shows the payoff from Topic 7.