I want to ask if my "empirical" method of guessing the vertex factor is correct. As far as I understand in canonical QFT the Feynman rules are only a way to rearrange the important parts of the perturbative expansion. So, if I have an interaction lagrangian (possibly also involving derivative terms) like scalar QED: $$\mathcal{L} = -i e A_{\mu}(\psi^{\dagger} \partial^{\mu} \psi - \psi \partial^{\mu} \psi^{\dagger})$$ one has to guess what is the vertex term in order to avoid doing the explicit calculation.
In a vertex like the one above I would consider an initial state like $b^{\dagger}(p) |0 \rangle $ and a final state $a^{\dagger}(k) b^{\dagger}(q) | 0 \rangle $ (one photon and one scalar). The vertex should bring me from the initial state to the final state. Only the first part of the interaction is $-i e A_{\mu} \psi^{\dagger} \partial^{\mu} \psi$. The $\psi$ field annihilate the scalar in the initial state through $b(p) e^{-i p x}$ so the derivative brings down a factor $-ip$. The second part has $ b^{\dagger} (p) e^{i p x}$ acting on the initial state that brings down a factor $ip$. So due to the minus sign the two momentum get summed and up to an overall phase the vertex is $e (p+q)^{\mu}$. As $\psi$ and $\psi^{\dagger}$ are different fields I don't have to worry about combinatorial factors.
I would apply a similar reasoning to every vertex (even if the legs are propagator) for every interacting field theory. Is it sensible? If not how can I guess every vertex without having to do long calculations? I want to avoid the use of the functional formulation of QFT. Anyone?