Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^2: Section Dividers - What are your thoughts

by LanX (Cardinal)
on Jun 05, 2020 at 15:29 UTC ( #11117721=note: print w/replies, xml ) Need Help??


in reply to Re: Section Dividers - What are your thoughts
in thread Section Dividers - What are your thoughts

> Moreover, I'm a huge fan of Skimmable code

unfortunately is this link only showing the talk abstract, but no further details.

From what you describe, this is very close to the recommendations of Damian's PBP, especially:

> I often use "paragraphs" inside subroutines

IIRC, this is called "chunks" there, though I tend to start them with one full line comment

You didn't mention it explicitly, but avoiding too many nesting levels is one of general best practices.

They are a clear indication for more smaller subroutines.

for instance a contrived example following the input/process/output scheme

#--- calculate debts per client my %result; for my $client (@clients) { #--- get data my %details = fetch_details_from_DB($client); ... ... ... #--- process data my $debt = calculate_debts(%details); ... ... ... #--- store result $result{$client} = $debt; ... ... ... }

I like to read such a loop inside a full page ( at most 100 lines), even prefer to have a sub inside such a window. (I hate guessing in which function/loop I'm currently being, {update: I want to see the declared private variables too})

So if the chunks consist of more than a handful of lines, I try to refactor them into a bunch of dedicated subs.

With meaningful "self-documenting" naming I can even avoid the then redundant #--- documentation line.

Hope I'm grasping your idea, and would love to hear where Schwern's recommendations are differing from Damian's.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

UPDATE

for very strange reasons I'm getting my own code displayed with doubled line distance. I hope it's only me, logging out shows them correctly.

update

Changed the css settings to line-height: 10px , no idea when this changed.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2020-09-28 19:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If at first I donít succeed, I Ö










    Results (144 votes). Check out past polls.

    Notices?