I have been developing an application for EMS* Squads and volunteer fire departments. This project has a CGI frontend, using the MLDBM abstraction layer over DB_File for the database backend.
I have learned many, many, many things as I developed this project in a rather
ad hoc fashion, implementing things on the fly as I learned them. One of the things I have learned is to *not* do that. While I learned alot by experimentation, the code base was riddled with kludgy mechanisms and practices that were anathema to maintainability and readability. The project grew, and grew and got more and more out of control, until I had to rewrite it using the ideas and concepts that I had learned throughout my trials and tribulations, which I will present the lessons of now:
- Get a solid idea of exactly what you want to do with your program *before* you start writing it.
- Use a physical pen and paper to map out what you are going to do and why.
- Use your gut! Your intuition will tell you whether what you are doing is right or wrong (that and The Camel).
- Pay attention to implementation. You may have the best ideas, and have them come out really crappy because of the way you implemented them.
- Don't be afraid to go back and revise or rewrite as you learn new skills or hone the skills you already have.
I have learned that programming is a multi-faceted discipline that requires many different types of abilities combined in different ways for different situations. Some of these talents can only be gained over time and through experience.
* EMS = Emergency Medical Services
redmist
redmist.dyndns.org
email::redmist
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.