Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

comment on

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

> I found that if I got the data structures correct, the code usually flowed. If not, things got messy fast.

This reminds me of some famous quotes from Fred Brooks, Rob Pike, Eric S. Raymond, and Linus Torvalds:

The programmer at wit's end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming.

-- from The Mythical Man Month by Fred Brooks

Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.

-- Rob Pike

Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I won't usually need your code; it'll be obvious.

-- Eric S. Raymond

I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

-- Linus Torvalds

A few classic performance quotes:

Don't diddle code to make it faster -- find a better algorithm.

-- The Elements of Programming Style

Don’t Optimize Code -- Benchmark It.

-- from Ten Essential Development Practices by Damian Conway

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

-- Donald Knuth

Perl Data Structure References

  • YAML - YAML Ain't Markup Language
  • JSON - JSON (JavaScript Object Notation) encoder/decoder
  • JSON::MaybeXS - Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP
  • TOML - Parser for Tom's Obvious, Minimal Language
  • TOML Spec (github)

  • Sereal - Fast, compact, powerful binary (de-)serialization
  • SerealX::Store - Sereal based persistence for Perl data structures
  • Config::Any - Load configuration from different file formats, transparently
  • Config::Tiny - Read/Write .ini style files with as little code as possible
  • Config::INI - simple .ini-file format

  • feature - note that Perl 5.34+ allows you to disable old Perl 4 multidimensional array emulation via the 'multidimensional' feature
  • perl 5.36 delta - ... and that use v5.36; disables multidimensional array emulation

  • Data::Dumper - stringified perl data structures, suitable for both printing and eval
  • Data::Dump - Pretty printing of data structures

Build and Test Automation References

Database References

  • EAV (wikipedia)

See Also

Updated: added "Perl Data Structure References" section. Added a few classic performance quotes.




  • 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 chilling in the Monastery: (6)
As of 2024-03-28 22:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found