[Dbix-class] RFC: Documentation/manual improvements

Andrew Ford A.Ford at ford-mason.co.uk
Thu Mar 30 11:15:54 CEST 2006


Richard Jolly wrote:
> Nigel Metheringham wrote:
>   
>> Sent: 29 March 2006 13:39
>> To: dbix-class at lists.rawmode.org
>> Subject: Re: [Dbix-class] RFC: Documentation/manual improvements
>>
>> On Wed, 2006-03-29 at 13:13 +0100, Matt S Trout wrote:
>>     
>>> A more interesting question is - what took you a while to get your 
>>> head round conceptually, and what features did you find incredibly 
>>> useful once you were using them but hard to get up and 
>>>       
>> working in the first place?
>>
>> The biggest problem for me has been (and still is) getting a 
>> handle on how all the various classes hook together.  What I 
>> would really like is some form of diagram showing the links.
>>     
>
> A related request, perhaps. I'd really like a simple reprentation of a
> typical file/class layout. My current tree looks like:
>
> MyApp/Schema.pm
> MyApp/Schema/Foo.pm
> MyApp/Schema/*.pm           # one for each table
> MyApp/ResultSet/Foo.pm      # 
> MyApp/ResultSet/*.pm        # only for resultsets that have custom
> searches
> MyApp/Foo.pm                
> MyApp/*.pm                  # only for row objects that have custom
> methods 
>
> This seems to work. But it took me _ages_ to figure this out, and I've
> lingering doubts about whether it is correct.
>
> Secondly, the Glossary is fantastic - but needs expansion.
>   

I agree that the glossary is good.  However, I feel it is a bit of a 
minefield knowing where to start with a system as complex as DBIC, and I 
think that is almost as true for experienced perl programmers who might 
like to contribute to the project or develop components as it is for 
programmers who just want to use DBIC. 

The difficulty comes when one starts delving into the module 
documentation -- obviously one starts with the DBIx::Class, ::Schema, 
::ResultSource, ::ResultSet and ::Relationship pages, but then there is 
documentation hidden in modules like AccessorGroup, InflateColumn, PK, 
etc.  What I would like to see is an architectural overview document -- 
I just counted the '*.pm' modules in the DBIx::Class namespace on my 
checked-out subversion tree and there are 79 -- and that doesn't include 
any plugin modules.   By the time one has looked at all the modules for 
documentation and maybe printed out some of the most relevant, one does 
an "svn update" and a dozen or so modules have changed and one wonders 
whether there are any significant changes to the documentation in those 
modules.  Of course part of this is that the project is still at a 
relatively early stage in its development and I think it is great how 
the documentation is growing. 

I think the documents in DBIC::Class::Manual are a very good start at 
introductory documentation -- the documents are generally quite well 
written, well structured and don't have too much overlap.  Obviously the 
glossary needs to be expanded and I worry that the Cookbook could easily 
become a random collection of thoughts without much focus. 

I would like to contribute towards the documentation effort myself but I 
am moving from self-employment to a permanent job in just over a week 
(my first permie job in almost 20 years) and have lots of admin to get 
out of the way.  One thing that I had wondered about doing is creating a 
quick reference card for refcards.com and possibly a "pocket reference 
guide" style book (I wrote the "mod_perl Pocket Reference" a couple of 
years ago) -- though given the new job it would be a while before I 
could really devote much time to that.  Would people be interested in a 
refcard or refguide?

Regards
Andrew

-- 
Andrew Ford,  Director    Pauntley Prints / Ford & Mason Ltd            
A.Ford at ford-mason.co.uk   South Wing Compton House                      
pauntley-prints.co.uk     Compton Green, Redmarley  Tel: +44 1531 829900
ford-mason.co.uk          Gloucester GL19 3JB       Fax: +44 1531 829901
refcards.com cronolog.org Great Britain          Mobile: +44 7785 258278





More information about the Dbix-class mailing list