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" <[email protected]> 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 <[email protected]> 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 <[email protected]> >> 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 >> >> [email protected]. >> >> To post to this group, send email to [email protected]. >> >> 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 > [email protected]. > To post to this group, send email to [email protected]. > 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 [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CAORXhGJwgxgCm_D%3DMqYjoS4AayMz9Yei26R9PgfefxGta4OiWw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
