Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

It is a nice book from what I've seen (and that's not just because it's the first time I've seen somebody use one of my modules in an actual print book :-)

You've not really mentioned the main subject of the book which is given away by the full title "Perl Medic: Maintaining Inherited Code". It has lots of concrete advice on approaching existing legacy Perl code and turning it into something vaguely sane.

If you're faced with this sort of task and are unsure how to approach it then it's definitely worth looking at.

For those who are interested perlmedic.com has downloads for code + errata. Chapter 3 is available online.

The table of contents gives an idea of what it covers:

1. Introduction (First Response). First Things First. Reasons for Inheritance. What Next? Observe the Program in Its Natural Habitat. Get Personal. Strictness. Warnings. 2. Surveying the Scene. Versions. Part or Whole? Find the Dependencies. 3. Test Now, Test Forever (Diagnosis). Testing Your Patience. Extreme Testing. An Example Using Test- Modules. Testing Legacy Code. A Final Encouragement. 4. Rewriting (Transplants). Strategizing. Why Are You Doing This? Style. Comments. Restyling. Variable Renaming. Editing. Line Editing. Antipatterns. Evolution. 5. The Disciplined Perl Program. Package Variables vs Lexical Variables. Warnings and Strictness. use strict in Detail. use warnings in Detail. Selective Disabling. Caveat Programmer. Perl Poetry. 6. Restructuring (The Operating Table). Keep It Brief. Cargo Cult Perl. Escaping the Global Variable Trap. Debugging Strategies. 7. Upgrading (Plastic Surgery). Strategies. Perl 4. Perl 5.000. Perl 5.001. Perl 5.002. Perl 5.003. Perl 5.004 +. Perl 5.005. Perl 5.6.0. Perl 5.6.1. Perl 5.8.0. Perl 5.8.1. Perl 5.8.2. Perl 5.8.3. 8. Using Modules (Genetic Enhancement). The Case for CPAN. Using CPAN. Improving Code with Modules. Custom Perls. 9. Analysis (Forensic Pathology). Static Analysis. Eliminating Superfluous Code. Finding Inefficient Code. Debugging. 10. Increasing Maintainability (Prophylaxis) Making It Robust. Advanced Brevity. Documentation. Custom Warnings. Version Control System Integration. 11. A Case Study. The Setup. Triage. Desperately Seeking Sanity. Coming into the 21st Century. Incorporating Modules Effectively, 12. Conclusion (Prognosis).

If this all sounds familiar to you then you're probably not going to get a lot out of it. If you've not been faced with having to take over somebody else's code, or aren't used to building and maintaining larger Perl applications, then it's a useful read.

Peter Scott's other Perl book 'Perl Debugged' is also a good read, and not to be confused with the terrible 'Debugging Perl'.


In reply to Re: Perl Medic: Transforming Legacy Code by Peter J. Scott by adrianh
in thread Perl Medic: Transforming Legacy Code by Peter J. Scott by nite_man

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2024-04-18 12:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found