The best resource we have right now is the Planual which is fantastic. You can find it here: link
Regarding subsidiary views, they are not bad in that they perform poorly, but often times when they are doing calculations, that logic is hidden away from other model builders. If model builders were to just create a new module, others will be able to find it, use it, and then not replicate the same logic in other modules. With that said, some subsidiary views are needed for filtering and removing dimensionality, but if they are being used for logic, please put the logic in another module.