This guide is quite good. However I don't see the harm in using nesting and ampersand selectors when using a preprocessor. I feel like knowing that the specificity is precise has saved me from worrying about collisions. Extracting the styles to make them more generic is no big deal, to me it's better than naming things like my-rad-class_____descendant-----sibling__-attribute.