I took part in a chat yesterday to discuss some of the nitty gritty details around splitting code between plugins and themes. Aaron Holbrook kindly shepherded us together and hosted. There were ten or so of us in and out, and I personally learned a good bit from what Otto Wood and Pippin Williamson had to say. I talked too much – as I do. We discussed naming and storing code for our custom post types, taxonomies, and meta data. We discussed separation between the functional and presentation layers. We talked about dependent plugins, templating, hooks, and all that good stuff. Give it a listen.