“Don’t modify objects you don’t own” and other practical advice for maintainable JS