Is the following a statement of best practices in Node.js with regard to web applications? If not, how could it be improved?
The lifecycle of any web app has at least two phases: a setup phase, and a ready phase (when the application is ready to respond to requests.)
In the ready phase,
IO operations (disk access, database calls, etc.) should always be asynchronous/non-blocking.
Even operations that occur purely in memory should be asynchronous, when possible. This is especially true when the operations involve iteration, and especially^2 true when the upper limit on the number of iterations is unknown.
Synchronous/blocking operations should never be performed in response to a request.
In my opinion, the question of whether or not something is part of the best practices for developing in a certain programming language can be answered decisively based on experience and objective criteria.