FAQ
After tasting the magic of ES6 generators (combined with promises or
thunks), I never want to look again at the async module (or any other
callback-based constructs).
On Saturday, September 20, 2014 7:04:32 AM UTC+3, Tom Boutell wrote:

I think the async module results in readable code. It's just too verbose
to type. (:
On Sep 19, 2014 9:00 PM, "Alexey Petrushin" <alexey.p...@gmail.com
<javascript:>> wrote:
The problem with sublime snippets is that most of the time you reading
code or thinking and sadly there's no sublime snippets that helps you
effectively read callback-heavy code :)
On Friday, 19 September 2014 00:22:46 UTC+4, Tom Boutell wrote:

(I don't disagree that "use callbacks to do five simple things
consecutively" is a lot to ask and can be offputting and bug-prone. It
absolutely is. I use sublimetext snippets to stay out of trouble,
which means I'm effectively coding in a higher-level language with a
really, really crude compiler (: )
On Thu, Sep 18, 2014 at 3:35 PM, Tom Boutell wrote:
The async module is used pretty heavily; I would suggest that if you
understand plain old callbacks, you won't have any trouble reading
code written with the async module. It's just a way to do the common
async patterns more consistently and not get lost.

Promises is a much bigger cognitive shift than the async module.

More importantly though, if your module successfully implements its
advertised API, it doesn't matter what you use internally to implement
it.

The API you advertise to the rest of the world is a more important
question. Generally you should be exporting methods like:

doSomething(arg1, arg2, ..., callback)

Where the callback expects to receive:

err, ...

And if err is falsey, nothing is wrong and the other arguments (if
any) can be safely examined.

That much at least is extremely consistent in node. The only common
exception is streams, which are a viable option if you'll be inputting
or outputting a lot of data gradually over time.


On Thu, Sep 18, 2014 at 8:19 AM, Axel Kittenberger <axk...@gmail.com>
wrote:
As you can see this has always been and is still a controversial
issue.
The gospel is, callbacks are fine and you are wrong. Somethings are
still
going to be fixed with domains etc.

I think the misunderstandings is due to the fact on the level of
complication of stuff being handled. Some people just push some
streams
through and need high effectiveness others do stuff that is already
complicated enough by itself.

My first larger project I did with node was scientific analysis of
data
collected in a mongodb database -- controlled by a user via a web
interface.
Thus I personally never bought into that gospel. Things were
complicated
enough without having to wrap my head around callback issues, and
being able
to request several items at the same time from database could speed
up
stuff, it didn't really matter that much. I changed the project on
the fly
to Bruno's streamline which rescued it (otherwise I'd had to redo it
with
something completely different, it wasn't manageable anymore)

I also know of friends whom I tried to convince how awesome node is
of which
I know that turned it down due to callbacks.

Node has recently lost one of its main contributors due to callback
issues.
And no, promises and flow control libraries didn't cut it. His main
point I
understood was, bugs caused by misbehaving libraries that fail to
call a
callback or even worse, call it twice, are extremely hard to debug.

Right now I'm using suspend,
https://github.com/jmar777/suspend
which takes advantage of harmony generators.

I like it, since it is the most reliable on getting backtraces in
case of an
error. Bruno's stuff should generate backtraces too, but I had issues
in
case of rethrowing catched errors. On the other hand, suspend and
generators
are little more try on when to put a * and when not, and result into
hangups
if you do it wrongly, while Brunos preprocessor proofed to be very
reliable
in pointing out a variety of coding errors.

My advice is, if you do a library that is to be used by others, you
ought to
use simple callbacks, as this is still the lingua franca in node
world.
What you do inside is up to you and if you do an application or
anything
that is not a library to be used by others, there is no definitive
answer,
do not listen to the gospel, try things out, look what works best for
you.
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to a topic in
the
Google Groups "nodejs" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/nodejs/wBAJhYOzjqQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
nodejs+un...@googlegroups.com.
To post to this group, send email to nod...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/CABg07fvC_
5vKW3vNdJ86FW%2BBu4AXX%3DxzJ%2B%2BmaQOVO%2BRa2NAW5w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


--


THOMAS BOUTELL, DEV & OPS
P'UNK AVENUE | (215) 755-1330 | punkave.com


--


THOMAS BOUTELL, DEV & OPS
P'UNK AVENUE | (215) 755-1330 | punkave.com
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to a topic in the
Google Groups "nodejs" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/nodejs/wBAJhYOzjqQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
nodejs+un...@googlegroups.com <javascript:>.
To post to this group, send email to nod...@googlegroups.com
<javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/dd788333-b998-4e32-b047-b67ea4add34b%40googlegroups.com
<https://groups.google.com/d/msgid/nodejs/dd788333-b998-4e32-b047-b67ea4add34b%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 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 unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscribe@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/50de4bdb-7214-412e-a9e2-e844011bccd4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

People

Translate

site design / logo © 2021 Grokbase