Before we move on to even dirtier and more dangerous hacks, lets first
define what constitutes a hack. IMO, a programming hack must fulfil the following criteria:
A hack uses a non-sanctioned way of performing a task - it bypasses official and documented APIs. It uses a "clever" and non-intuitive method to perform a task that would otherwise be hard or impossible to do.
Cons:
Usually makes your code harder to maintain
Fragile code, breaks easily when the code it depends upon changes
Hard to port to other platforms
Refactoring, improving the design, is often a better solution
Pros:
No other way to perform a task - the alternative is to rewrite or re-implement OPC (Other People's Code)
Potential for improved performance
Curiosity, gaining a better understanding of the system
Its great fun!
The general advice is to avoid hacks in production code. Hacks can be very useful as short-term solutions during research and development, but is best replaced with
refactored code and design before going to production. That said, most real-world software contain the odd hack or two.
No comments:
Post a Comment
Comments are moderated - spam and non-relevant links to will be deleted.