Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re^3: Do not understand code

by sundialsvc4 (Abbot)
on Sep 28, 2017 at 19:24 UTC ( #1200309=note: print w/replies, xml ) Need Help??

in reply to Re^2: Do not understand code
in thread Do not understand code

“Anonymous” as usual.   (Sigh.)   But, given that I am presently leading yet-another software rehabilitation project with a six-figure budget, maybe I do “know whereof I speak.”

Always pressing on my mind is the daily “burn rate.”   So-many thousand dollars a day are going to be spent on salaries and overhead, whether the team is making progress or not.

Not only was the OP confronted with a piece of source-code that (s)he did not understand, but the OP found it necessary to seek professional guidance from an Internet web-site that is known to be dedicated to this increasingly-arcane programming tool.   How many hours or days might this programmer have been utterly show-stopped?   What if (s)he had simply guessed?   The original author sought to be clever, which gains the sponsoring company absolutely zero dollars in revenue.   S/He did not seek to be clear, which exposed the company to actual financial losses, at least equivalent to the OP’s salary while “stuck” and possibly very(!!) much more.

And all that you folks can think to say in reply to this observation is, “show me a working code example?”   (Derisive chuckle ...)   “You just don’t get it, do you?”   Tell me, have you ever in your entire professional life done anything other than “slinging source-code,” and have you in fact ever worked with any language other than Perl-5 (JavaScript doesn’t count ...) in the last ten years?   Does the term, “business risk,” mean anything at all to you?

But maybe I should stop myself:   if it were not for “legions of programmers just like you,” I probably wouldn’t have a job.

“Write source-code that will survive you, and that will do so without incident.”   Instead of crafting a “clever” piece of code that tries to win an episode of “Name That Tune,” write code to be maintainable, patchable, and always “immediately obvious.”   This precept is true regardless of what programming language you are dealing with at any particular time.

But maybe I should stop myself again:   maybe you don’t have any idea what I am talking about, nor why it is important to the people who hired the people who hired the people who hired you.   To the people who hire people like me.

Replies are listed 'Best First'.
Re^4: Do not understand code
by Laurent_R (Canon) on Oct 01, 2017 at 09:37 UTC
    Come on, sundialsvc4, do you really think that this:
    unlink $file if /.BGV/;
    is too clever? Or that it is not clear?

    How so? If we set aside the fact that the regex pattern /.BGV/ may very well be an error and that, perhaps, /\.BGV/ or even /\.BGV$/ might better express the developer's real intent (but we can't know for sure and that's obviously not what you're concerned about), what's wrong with this? Is it the statement modifier (with postfix conditional)? Is it the use of a regular expression? Or is it the default match against the topical variable $_? Or something else?

    But statement modifiers, regexes and implicit uses of $_ are all fairly basic features of the Perl language. If you don't know these or if you think they are too advanced, then maybe we should conclude that you just don't know Perl. Or that you know only a very small subset of it.

    I certainly think that we should not try to be too clever. But that's not the case here. This code is fairly basic and well in accordance with Perl's philosophy.

    And, BTW, I would be very interested to see how you would suggest to rewrite it. But can you?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1200309]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2020-01-25 20:53 GMT
Find Nodes?
    Voting Booth?