> Be conservative in what you send, be liberal in what you accept.

This is absolutely wrong! You should be conservative in what you accept and 
conservative
in what you send otherwise you get huge troubles, shits and endless "it 
works here doesn't there" story.
Browsers are good example.

>people writing node modules should follow the node patterns and never mix 
sync and async behavior

There is a certain edge between the case when you should follow common 
practices event if you don't like them
and the case when you shouldn't, because they are so bad that cause a 
greater damage
than confusing people from time to time.

For the case of nextTick I ignored it, because it's such a PITA.

четверг, 22 августа 2013 г., 20:49:46 UTC+4 пользователь Scott González 
написал:
>
> This is just the robustness principle/Postel's law: Be conservative in 
> what you send, be liberal in what you accept.
>
> If you're implementing an API, you should be consistent. If you're 
> consuming the API, you should be defensive. But honestly, people writing 
> node modules should follow the node patterns and never mix sync and async 
> behavior.
>
>
> On Thu, Aug 22, 2013 at 12:44 PM, Eldar <elda...@gmail.com 
> <javascript:>>wrote:
>
>> I always followed the simple rule "callback may be called at any time" 
>> and I was pretty happy so far.
>> The resulting code is more portable and simpler. Just use tail recursive 
>> algorithms and be happy.
>>
>> вторник, 20 августа 2013 г., 21:47:22 UTC+4 пользователь Bryan Donovan 
>> написал:
>>
>>> I have been writing node.js client code for a couple of years now, and 
>>> have authored a couple open source libraries, but somehow I missed the memo 
>>> telling me that I'm supposed to wrap 'synchrounous' callbacks in 
>>> process.nextTick().  I kind-of understand why that is a best-practice, but 
>>> what I don't understand is what the drawback is if you don't do it.
>>>
>>> For example, I write code like this all the time, and have never had a 
>>> single problem with it:
>>>
>>> function getSomething(args, cb) {
>>>     if (!args) { return cb(new Error('args required')); }
>>>     if (!args.id) { return cb(new Error('args.id required')); }
>>>
>>>     SomeDatabase.get({id: args.id}, cb);
>>> }
>>>
>>> What are the potential issues with not wrapping those arg checks in 
>>> process.nextTick()?
>>>
>>>
>>> Thanks, 
>>>
>>> Bryan
>>>
>>  -- 
>> -- 
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: 
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to nod...@googlegroups.com<javascript:>
>> To unsubscribe from this group, send email to
>> nodejs+un...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>  
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "nodejs" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to nodejs+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to