Hello Bratelefant
I think that’s basically it, at least for me.
It has some / considerable overhead call-wise which isn’t that important if you call methods to trigger important actions one by one, but could get into trouble if you for example would create smaller methods to update / fetch some informationfor something and then would use that in a loop more than a handful of times.
(And these things can happen by accident eg. if you bury code to call another method in another function / method. These things can sneak up on ya! )
This could of course become a problem especially with nested calls, which then could add up to a lot of overhead. It’s just simpler and more efficient to just call it what it is, a function, which has much less / almost neglible overhead.
Think about a situation like this:
Client call: fetchProductsListFromServer()
Server: Find products(...) (maybe returns 20 products)
forEach product:
call getAdditionalInfoForProduct()
call getRelatedProducts()
getRelatedProducts:
call getProducts(relatedTo: xyz)
call getAdditionalInfoForProduct(relatedProduct)
So now you might have 20 products times 10 related products with additional helper methods → 200 things to call. Each Meteor.Method - call would add considerable overhead.
This is just an example of course, but could lead to notice-able higher load & longer reaction times.
Also, from a “code design” standpoint: I’d say that a Method IMPLIES it being called from outside somewhere. If you don’t plan to call it from the outside, why make it a method in the first place? It’s kind of misleading to others reading the code, so to speak.
Why would you like to use methods more often than strictly required?
Best