On Jul 12, 2016, at 9:15 AM, Daniel Perrett <[email protected]> wrote:
> 
>> Someone, please show me code that the new keywords makes better.
> 
> Here's one I prepared earlier:
> 
> https://github.com/PerlDancer/Dancer2/pull/1213/commits/0745c2797f477401bc9ef6ef1c387f4330e9e06b
>  

The first example is essentially the same as the second example in my previous 
post, which I called horrible coding style.  (Horrible API design style, 
actually.)  If your app is dependent on the path the data took to get to it, it 
is brittle.

Consider the design of cat(1).  Would it be better if it behaved differently 
when its input comes in via stdin vs when it comes from a named file on the 
command line?  Or, would its design be improved by denying one of the two input 
paths, forcing you to use stdin or the command line, not the other?

Your second example is simply contrived.  If create_song() expects a song name, 
you should call it as:

    find_artist(param('id'))->create_song(param('name'));

Using “params” in the second function call is no more justified than using it 
in the find_artist() call.

You should only be passing the params() hashref around to functions which you 
know in advance are capable of extracting any parameters they need and ignoring 
the rest.
_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users

Reply via email to