Another tip: Models don't have to be one continuous object. It's okay to make a new cylinder object for the barrels rather than just extruding them from the existing object.
This one that I made (for the Source-engine), for instance, contains around 10 independent objects, which also makes it highly modular. If I wanted, say, to have a scope on it, or swap the handle out for a more... ergonomic grip, I could just move or replace an object, rather than trying to rebuild the model entirely:
