Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
BMaximus, you have a high sense of self-integrity to question your own design so well. The skill (art) of organizing a project is unique to each person. What I have found is that regardless of OO vs. structured approaches the program is a state machine.

Example:

  • What is the startup state of the script, environment variables, internal variables
  • How does the script leave startup to a running state
  • How does it handle signals and exceptions, not in the normal flow - what state does it go to and then leave on exception
  • What inputs drive the script to what new states - like reading lines in a file, processing each line, looking for EOF, scanning for input errors
  • Are errors handled gracefully
  • How does the script terminate - what does the terminate state do

    I once had to write a text restructuring program that had three variables with two states each for a word processor ruler function. It wouldn't translate ceratin content right. Then I realized that the scanner had eight states (two to the third power) but I had only coded for six. Me dumb. Twenty minutes of new code and she shebanged. So.. are all of the states accounted for in YOUR code.

    Also on the advice from above, use the simplest means you can employ to get it done.

    Also, I usually prepare by writing psuedo code-like comments. The stunning wonder of Perl is the move from the psuedo code to the Real Thing is so short. Sometimes I draw state diagram pictures, especially if I have to explain it to others.

    -diskcrash


    In reply to Re: Starting a project and landing between a rock and a hard place. by diskcrash
    in thread Starting a project and landing between a rock and a hard place. by BMaximus

    Title:
    Use:  <p> text here (a paragraph) </p>
    and:  <code> code here </code>
    to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • 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, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (14)
As of 2014-08-29 16:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (282 votes), past polls