[Dbix-class] "the apparent complexity of it all"
Jess Robinson
castaway at desert-island.me.uk
Tue Apr 9 12:20:33 GMT 2013
Hey, this is partly a response to this email, and partly to the one from
March 24th (trying to catch up!)
General thought though, if the issue (as it appeared to be) was that you
hadn't seen/found Tutorial and SQLHackers, then wouldn't it be more useful
to set about improving these and making them more visible, than making
another file which will also get lost in the noise?
I'm not a fan of the idea to get them all using the exact same schema
classes, as that doesn't give much variance. Each is a separate doc for
teaching in its own way, or at least that was the plan. I don't really
understand the reasoning for doing this, can you explain it?
As to the previous comment somewhere that there's room for a whole bunch
of tutorials by lots of people.. Maybe, but not in the DBIC docs
themselves, that would just be confusing! There's plenty of room on the
website though... Dammit, must get that updated... volunteers? ;)
On Thu, 04 Apr 2013 07:36:53 +0100, Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 <daxim at cpan.org>
wrote:
> New patches on top of
> <https://github.com/daxim/dbix-class/commits/master>.
>
>> I wonder whether this should not mention DBIx::Class::Schema::Loader
>> from the start.
> With 974c7e5, the synopsis then has such a mention.
>
>> hope we get some feedback
>> from other folk versed in doc-writing
> I got valuable feedback after reminding on irc. I'm sorry, I don't know
> how to work the GH review feature so that it creates a forward link to
> the commit, I hope I have done it right by just reading the info and
> making a new one, backlinking to the review page. The result is
> 3a93a5e1cc. When rebasing onto master, you may fixup/squash this into
> 974c7e53e3.
>
> I decided to not include the alternative way to update and delete via
> row object accessors/methods because I feel that's too much for the
> scope - I want a newcomer to be able to have a first feeling of success
> after a very short time, and balance every side-step against the risk
> of not achieving the goal. It does say "minimum amount of code" in the
> intro. The row object alternatives are still explained in the main
> docs, in ::Tutorial, in ::SQLHackers, in the book for the approach of
> structured learning that comes afterwards, when the newcomer is on the
> proverbial hook.
This is one of those "people do it differently" things. What are we
actually trying to teach users? I would hope/assume its how to use DBIC as
a backend for your objects, and not how to use it to talk to your
database. There's a subtle difference. In the world of objects, and
certainly in most of my DBIC-using code, I use $row->update 20x more often
than $resultset->update. Your explanation doesn't really explain why one
is preferable to the other, you could replace the ResultSet ones with the
Row ones, and the above comment would still completely apply.
>> Not merged. While I like the idea, I am not sure if mentioning
>> DBIC::Row DBIC::Rel::Base (which is about to go away soon... I
>> hope... I really do) is a good idea. Especially given that we have
>> https://metacpan.org/module/DBIx::Class::Manual::ResultClass#INHERITED-METHODS.
> It's not the problem you think it is. The docs patch does and must
> reflect current reality. Worry about changing that when the time
> actually comes. Of course, one could reword it to indirectly refer to
> e.g. "the first two classes in the inherited methods list" or somesuch,
> but that can silently/unnoticably become a dangling link
> when ::Manual::ResultClass gets reorganised.
I'm not sure what this is about, but I agree with the general "document
whats there NOW", remove/change it later if/when it changes. Too much
planning ahead for changes that may not emerge is wasteful, and the change
may turn out to be not what we expected.
Unless of course riba's "soon" means "has been implemented and I'm going
to merge it before this document is done" ;)
>
> The explicit mention is better because it creates an obvious mode of
> failure: when ::Rel::Base is removed, the author hopefully acks through
> the whole source and sees this needs an update. Even if that is missed
> and the distro ships with that broken link going nowhere, eventually a
> reader notices and reports.
>
>> Also I would recommend changing L<SQL::Abstract> to
>> L<SQL::Abstract|SQL::Abstract/WHERE CLAUSES>.
> Done in 7923f7c1b5. When rebasing onto master, you may fixup/squash
> this into cc3ad5941e.
>
>> Perhaps we should have a separate test-less
>> DBIx::Class::ExtendedManual dist which is a direct dependency of
>> DBIx::Class?
> ++ to that
First we need to figure out how to smack metacpan around the head for not
displaying/acknowledging the existance of .pod-only docs.. It may just
work with .pm files that only have POD in? I like the ability to
distribute and update the manual separately, and have it a dependency of
DBIC itself, that seems to cover both worlds.
Jess
More information about the DBIx-Class
mailing list