Outstanding article ! I think you should be much more affirmative in your assertions : disregarding the wise suggested practices WILL compromise or even KILL your project very quickly. This is of particular importance for all newbies reading you, avoiding these approaches is not an option if you take pride in your work. Coming from some muddy Spring/Angular project, I cannot overstate how much wisdom is intertwined with technical aspects (and nice leads left all over). Trying to correct these architecture/workflow defects afterwards is much more expensive as the ball of mud spreads very fast.