The official client is closed source and releases are obfuscated, but there have been mappings (MCP) for quite a few years now.
http://minecraft.gamepedia.com/Programs_and_editors/Mod_Code...
The protocol is also well documented: http://wiki.vg/Protocol