In my experience, Over Programming is caused by two often-conflicting things in the mind of the programmer:
- An incomplete understanding of the problem or the dataset
- The desire to write a quick bugfix, rather than overhauling the whole function
It's my opinion that sitting down with a few blank pieces of paper away from your computer for an hour to hash through a couple of designs and to draw some diagrams is the best programming discipline I have. If I can't list the basic steps I need to take, I don't understand what I'm trying to do.
Only after I can fit the whole conceptual model in my head am I able to deal with the exceptions that make code so crufty and weird most of the time -- they let me refine the model to where it works best, most of the time.
That doesn't mean there are still tweaks and rewrites ahead, just that I know what's important and I can code for that, instead of throwing things here and there, hoping they'll work. (Okay, I'm bitter at some existing code some days that isn't so much designed as it is blenderized.)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.