Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I would agree that basic debugging skills are worse now than they were 10 years ago, but I would also say that basic math skills have deteriorated. Watch a group of friends try to determine what portion of a bill is theirs, and what size tip to leave and it is obvious. Blame the calculator.

With debugging it isn't quite as simple though.

When I first started programming I would sometimes write the program out on paper, and read through it while keeping track of all the variables. Being able to read code while keeping a mental list of what is happening is valuable when working in a group, but this skill is sometimes neglected due to the ability to run it in a debugger and watch certain variables.

My ideal development strategy is as follows:

1. Write the unit tests as a working specification document. This helps to identify flaws in the intended interface early in the development process.

2. Create mock objects that emulate the behaviour of the intended module, with fixed input/output. This allows you to verify that you have the necessary data at each step, and also allows you to verify the algorithms without external dependencies.

3. Implement the object.

This strategy leads to loosely coupled / tightly cohesive objects, which are easier to verify with testing and easier to isolate issues when debugging.

A similar strategy can be followed when debugging the code of your team members. Debugging manually is a very time consuming task, regardless of whether the debugging is done through code reading or with a debugger. Use this time more wisely and develop test cases that mirror the analysis you do during debugging.


In reply to Re: Are debugging skills atrophying? by imp
in thread Are debugging skills atrophying? by dws

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 learning in the Monastery: (3)
As of 2024-04-16 05:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found