Where do you draw the line to stop making abstractions and to start writing sane code? There are tons of examples of ‘enterprise code’ such as the dozen-file ‘FizzBuzz’ program… even something simple such as an RTS game can have something like:
class Player {} ;/// contains Weapons class Weapons{} ;/// contains BulletTypes class BulletType{} ;///contains descriptions of Bullets class Bullet{} ;///extends PlaceableObject and RenderableObject which can be placed/drawn respectively class PlaceableObject{} ;///has x,y,z, coords class RenderableObject{} ;///an object with a draw() command class MovingObject{}; ///an object with a move() function
etc… and it can turn into a nightmare. This can be drawn to its logical extreme, much like functional programming can be drawn to the extreme where you can create a language with only variables, function application, and anonymous function definitions (although I must admit that is slightly more elegant)…
Any sane advice on this topic?
1 Answer