Structuring code between client/server

What’s the best way to organize your code for a multiplayer game? Share all code? Share no code? Have abstract base classes called “Player”, with a “ClientPlayer” and “ServerPlayer” extending it?

I think that it depends on what kind of game it is a lot, because for some games simple HTTP requests are enough.

Maybe my game architecture gives some ideas: http://voodoobits.blogspot.de/2013_08_01_archive.html