As others have said, use a good rim liner and a good tire liner (I use the Stop Flats 2 liners), in addition to a puncture resistant tube.
There is a difference between puncture resistant and heavy-duty tubes. Puncture resistant has twice the protection of the heavy duty, but it's ONLY on the outer edge of the tube, whereas heavy duty is like double thickness all the way around. Personally, I've only had one issue with a hole in the sidewall, and that's because I didn't mount the tire & tube properly, so there was a kink which caused a bubble that rubbed on the brakes.
There has only been TWO times that I've gotten flats in several thousand miles, and one I have reason to believe my bike was actually tampered with from leaving it outside. I also had a link on my chain come off that very same day. That was my one and only puncture, which I really don't believe came from the road.
Also, I wore my rear tires down until they were bald, then finally a hole started showing to where I could see the tire liner. Not sure when I noticed it, but I kept riding for a few hundred more miles, at least, until a hole was worn thru the liner itself... and then I got a flat. That was more an experiment to see how long I could go, but I wasn't actually keeping track. It was a LONG time, tho. There's a hole in the liner, but I'm still able to reuse it....no problem.