Week of 15 Nov
This week in Software Engineering, we started discussing various techniques for refactoring code. We went over the example about movie rentals in Fowler’s Refactoring book and discussed techniques such as extracting methods, moving methods between classes, and using state objects instead of type code. We also discussed the quirks of method overriding in Java and the danger of defining methods in children classes with the same name but different arguments. We also went over the difference between static and dynamic binding. The most interesting part of this discussion was how to figure out which method an object should execute if that is not known until runtime.
We also had two guest speakers from Atlassian talk to us about their development process and how they use agile. It was interesting to see a real world example along with the tools they used for grooming their backlog and displaying progress of the sprint.
The final phase of the IDB project was also started this week. The main added functionality is a search engine for the website. The rest of the project focuses on utilizing another group’s API, creating a presentation, and trying a sprint planning tool to define and estimate stories. I do wish that we could have used the tool in the earlier phases since it may have helped in figuring out what we needed to do from the beginning.
For the software tip of the week, this article goes through common design patterns and uses examples and diagrams to add to the discussion.