I’ve always think that the less clicks you need to do in order to get what/where you want means a great design but whenever you have to pay for it it’s click upon click upon click.
Anyways, that’s just a personal opinion. What’s Flexible Software? Is it good design? Less clicks? Great GUI?
Chapter five gives us a deep reading on what this truly means. As you make progress with your software it becomes harder and harder to keep up with the client requirements and need; nevertheless, any software is subject to change. Giving maintenance and constantly modifying the files is extremely normal but throughout my life I’ve seen two types of so called “patches”. Some AAA Companies that make video games release updates every month or so and the player base has to wait and struggle with those bugs until they fix it. On the other hand we have Epic Games, creator of Fortnite. Those guys release a weekly patch to fix bugs, stability improvements and overall QOL updates for the game across all platforms.
I think Epic Games is the best example to use with this since they’ve divided their classes such as weapons, buildings, vehicles etc. Ch 5 talks about generalizing objects then make super class, for instance weapons instead of assault rifles, snipers, SMGs etc. Once accessed you will break down the super class in smaller classes and so on.
Couple of bullet points to have into consideration whenever making this type of strategy.
- Must be abstract class
- Implement placeholders
- Implement the actual objects, in this case weapons.