Question 1: Emergent abstraction
Describe how abstraction emerged in your C2 design when extending your C1 implementation (i.e., what did you abstract, why, and how)? Provide links to either a PR or at least two pieces of code that demonstrates the abstraction.
Question 2: Refactoring code smells
Provide links to three commits where you addressed smells in your code (this should be easy since you followed the best practice stated in both Journal 3 and Journal 6 about making atomic refactor commits---if not, describe which parts of the commits contain the refactor). Name the code smell and the refactoring(s) you applied.
Are there code smells that you chose not to address? Why or why not?
Question 3: Refactoring practice [Optional but recommended practice for Quiz 2]
Work through each of the refactor_ examples in the lectures_practice repo (you can skip refactor_dependency-inversion for now). The video store example is particularly good practice as it covers most of the code smells and refactors we have looked at. Be sure you know what steps you applied to complete the refactoring and why. You should be comfortable answering questions about where different behaviours exist in the code before and after a refactoring and what benefits are gained in the refactored version.
Question 4: Reflect on learning [Ungraded]
Have the journals been helping you? (Yes/No)
What positive aspects have you found with the journals?
What could be improved in subsequent journals?