Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

My suggestions for the book #2

Open
hoelzro opened this Issue Jul 8, 2011 · 2 comments

Comments

Projects
None yet
2 participants

hoelzro commented Jul 8, 2011

Alberto-

Thanks for going to the trouble of writing this book! I think a lot of people in the Perl community, both newbies and veterans, will find it remarkably useful.

I've gone over what you have so far, and I have a list of suggestions. Some of them are based on my opinion, so feel free to use whichever ones you want, since it's your book!

Introduction

  • You should mention beta.metacpan.org in the section with AnnoCPAN and such. It's a new way to search the CPAN.
  • cpanm uses the CPAN MetaDB to discover module information, not the MetaCPAN. (The meta prefix gets thrown around too much!)

OO

  • I feel like you should mention Moose first, as Moo and Mouse are modeled after it, and not the other way around.
  • I think that instead of mentioning how Mouse and Moose include a meta model, Moo lacks one.
  • You should probably mention the MooseX:: and MouseX:: namespaces that contain Moose and Mouse extensions, respectively. Maybe you should also cover some of the more popular extensions?

Web

  • I think you should mention PSGI/Plack. All of the frameworks you currently mention support it, and it's the direction in which Perl web development is moving.
  • You might want to mention the CGI module, just for historical purposes.

Markup

  • JSON and YAML aren't markup; they're more like data formats. They definitely deserve a mention in this book, though.

Testing

  • You should mention Test::Exception; it makes testing code that leverages exceptions very easy.
  • You should also mention Test::Class; it's a Perl-style way of writing xUnit tests.

More Modules/Chapters

I know you're probably just getting started, but I wanted to mention some other useful modules sooner rather than later:

Event Loops

  • AnyEvent
  • POE

Command Line Tools

  • App::Ack
  • App::pmuninstall
  • App::cpanoutdated
  • pmtools

Module Authoring Tools

  • Dist::Zilla
  • shipit
  • ExtUtils::MakeMaker
  • Module::Build
  • Module::Install

Deployment Tools

  • App::FatPacker
  • carton
  • Shipwright

OS Specific Modules

  • Win32::*
  • Mac::*

Miscellaneous

  • Try::Tiny
  • Data::Dumper
  • Devel::REPL

Thanks again!
-Rob

Owner

ambs commented Jul 8, 2011

Hello, Rob.

Thanks for your suggestions.

Note that MooseX is already mentioned in the See Also section, if I am not wrong. Also, there is a reason for putting Moo in the beginning, it make is easier to write with increments. Reversing the order would make things harder, as instead of adding features, I would need to list unsupported features. But I might add a notice in the beginning of the chapter stating the historic story of the OO modules for Perl :)

Unfortunately I won't be able to touch all the modules I would like. If a first book gets printed and some copies sold I might think on a more than one volume book. But for now, I preffer to keep my expectations low :) This means that probably some of the modules you suggest (like Win32:: or Mac::) will be leaved for future editions :)

As a final note, I might refer CGI in the introduction of the Web Frameworks chapter, and who knows add some pointers to resources about it in the Web, but not write a section about it. There are too many books on that, and too many people claiming it is crap :)

These are my thoughts at the moment, it doens't mean I will not change my mind :)

Once again, thank you for your comments, They are helpful :)

hoelzro commented Jul 8, 2011

Ah, I just saw MooseX when looking at the raw POD; Github's POD renderer doesn't display it.

Thanks for taking my ideas into consideration!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment