Trappole nella Documentazione delle Promise
Evitare problemi derivanti dalla documentazione più diffusa
Individuare gli anti-pattern delle Promise nei risultati di ricerca di Google e nelle librerie più diffuse.

Parto da una confessione: mi sono reso colpevole anch’io di scrivere gli stessi “anti-pattern” che critico qui sotto, e sono certo che molti sviluppatori JS abbiano fatto altrettanto. Nulla di quanto espongo è pensato come attacco personale o rivolto direttamente agli autori originali. Sto semplicemente facendo una code review di pattern comuni — spero di trasmettere una comprensione delle mie priorità e del mio processo di pensiero critico.
Con un po’ di fortuna, dopo aver esaminato questo progetto sarete in grado di riconoscere i segnali d’allarme delle Promise scritte male.
CallbackHell.com
CREDIT: http://callbackhell.com/
StrongLoop
CREDIT:
https://strongloop.com/strongblog/node-js-callback-hell-promises-generators/
RisingStack
CREDIT: https://blog.risingstack.com/node-js-async-best-practices-avoiding-callback-hell-node-js-at-scale/ Questo è un articolo piuttosto solido. Ho solo un’osservazione:

Q Library
CREDIT: https://github.com/kriskowal/q
La libreria Q è una delle più utilizzate e delle più antiche ad essere associata alle “Promise”. Per questo soffre di esempi datati e della necessità di mantenere la retrocompatibilità.
Dico “associata alle ‘Promise’” perché ritengo che Q ruoti in realtà attorno al pattern deferred.
Potrà assomigliare alle Promise, ma io insisto che non lo è. Ha una superficie d’interfaccia fin troppo ampia, e per tutte le ragioni sbagliate. Inoltre la convenzione di denominazione abbrevia i nomi in modo incoerente, rendendo più difficile memorizzare l’interfaccia. Metodi come when e done non sono necessari.
In sintesi: il pattern deferred è un anti-pattern doloroso — non migliora praticamente nulla rispetto al tipico approccio basato su callback.


Date un’occhiata (e mettete una stella) al progetto GitHub compagno di questo articolo, Escape From Callback Mountain
Obiettivo del progetto: ricercare e sviluppare migliori pattern di linguaggio funzionale in JavaScript.

