I think of PBP in the same way as strictures. They're great starting points and, in the absence of any better ideas, it's usually good enough to get by. That said, I violate strictures all the time in my code. In very specific places, for very specific reasons. I do the same thing with PBP. I have my own set of best practices that have grown over the past dozen years and 15+ gigs. They're mostly the same as TheDamian
's, but not quite.
That said, I'd much rather a slavish adherence to PBP over a slavish adherence to no best practices (which I see from time to time).
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?