Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
As someone who's taken over a similar project in the past, I'm going to give you a piece of advice you're not going to want to hear. Do it by hand. Do not use a tool to do your work.
  • Tools don't understand architecture
  • Tools cannot give you proper naming
  • Tools cannot tell you how to optimize code
  • Tools cannot give you new features by noticing commonalities between dissimilar areas
  • Tools cannot comment confusing code
  • Tools cannot create the third and fourth levels of modules/objects - the basic infrastructure that the code users run depends on, but that users never see

As if that isn't enough, you're probably going to also need a whole bunch of documentation. I'll bet you don't have most of the following:

  • Project description
  • Architecture document
  • Test plan / Test suite
  • Use cases (or other user-design tools)
  • Design documents (both high- and low-level)

Those documents are at least as important than the code, because they tell you what the code is supposed to do. The code just tells you what it currently does. Are you sure that what it does right now is correct? How much are you willing to bet?

Furthermore, most tools aren't able to use many of the reasons to use Perl in the first place. For example, I doubt a tool could reasonably handle

  • Array operations
  • Hashes in their non-trivial uses, especially as a way of passing named parameters
  • References (especially scalar, glob, and sub references)
  • Multiple return values from a subroutine
  • Context-aware subroutines
  • Complex data structures, especially dispatch tables and the like
  • Objects, in all their glory
  • The use of die, eval, and sub
  • Correct scoping of variables

I hope you really choose to do this by hand. It will take about 3-6 man-months to do it. (I'm not kidding - it won't take that long.)

We are the carpenters and bricklayers of the Information Age.

The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

... strings and arrays will suffice. As they are easily available as native data types in any sane language, ... - blokhead, speaking on evolutionary algorithms

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

In reply to Re: Finding duplicated code in Perl by dragonchild
in thread Finding duplicated code in Perl by shushu

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!
  • 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, 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
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            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?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others chanting in the Monastery: (4)
    As of 2018-05-25 09:23 GMT
    Find Nodes?
      Voting Booth?