We trained our puppy to stay in his crate at night and when we were cooking/eating. There is nothing more annoying than a dog begging for food at the table. He is three years old now, and goes to the porch as soon as he hears dishes or pots and pans being rattled around. We still put him in his crate at night and if we are going to be away from home for a few hours. I have left him on the sofa if I'm only going to be gone for an hour or two and he hasn't taken advantage of being loose in the house. I would be worried about leaving him for several hours though.
He did destroy a few things outside, but for the most part has been very good.