CST 338 Week 7/8
- What do you notice right away? Not what is wrong with it, what do you see now that you might not have seen when you submitted it?
- Pick one specific class or method, maybe
Game.java, one of yourPileimplementations, or how you handled theCodeenum, and describe in detail how you would write it differently today. Name the concept, pattern, or principle driving that change. "I would use the Observer pattern to notify the UI when game state changes" is a good answer. "I would make it cleaner" is not.
What immediately stands out to me is how massive Game.java is and how many concerns it handles. I would go through and find out how to split it into further groups. I would probably add a dealer class as well as something else to handle initializing the game state so that Game is mostly about managing the game state.
- Name at least two things that genuinely went well. A design decision
that held up. A test that caught a real bug. A moment where the
Pileinterface made something easier. A class you are actually proud of. - Be specific: name the class, the method, the line, the moment. Fight the urge to add "but...";this prompt is only about what went right.
- It is very easy, and very common, to focus on what did not work.
This prompt exists because noticing what did work is a skill worth building.
I had a breakthrough moment when a lot of my tests weren't working in part 2 of project 1. Everything compiled but any tests related to drawing cards weren't working. This led to me finding out that the way I was drawing cards was inconsistent, and upon further inspection I found out that drawCard() and drawCards() were pulling from the top and bottom of the deck respectively. A lot of my bug testing was smooth sailing after that.
Another proud moment for me was figuring out how to deal to tableaus in deal(). Something about having the loop be rows and columns that were connected to the rules of the game was difficult for me, but I came out of that method feeling like I had a much better understanding of how the whole program worked.
- Be concrete. "I now understand why
FoundationandTableauboth implementPileinstead of sharing a base class" is a good answer. "I got better at Java" is not. - Draw from anything we have covered: access modifiers, encapsulation, inheritance, polymorphism, interfaces, abstract classes, design patterns (Factory, Singleton, Observer), JavaFX scene management, FXML, unit test design, debugging strategy, reading code you did not write.
- Example: "I am comfortable extending classes now, I understand that
extendsis about an is-a relationship, not just code reuse, and I know when inheritance is the wrong choice."
I have improved greatly at designing unit tests. I was always at a loss before but asserts have made my life easy. My confidence in inheritance and OOP in general has improved greatly since my C++ days and I now have a better understanding of how and why to split up classes. JavaFX scene management is much more approachable now and I feel that that will open up many pathways for me to create my own applications in the future.
- Project 2 is a full JavaFX application: a significant undertaking. Name one skill or insight from this semester that you plan to lean on heavily, and explain specifically why you think it will matter.
- You can also be honest about something you feel less confident in as you head into it. What are you watching closely?
I will be leaning heavily on the code review skills we have learned throughout the class to process what my team is working on in this project and how I need to structure my own code based on that. This will be extremely important with the requirements that we review all pull requests on github.
I am lacking confidence in just about all of the claims available. Significant outside research will be required for any that I choose.
Comments
Post a Comment