title: Best practices for clean domain model
body: <p>I'm looking for some best practices for developing a clean domain object model.  By 'clean', I mean a domain (or business) model that isn't cluttered up with a bunch of DB persistence, xml/json serialization/deserialization, dependency injection stuff.  For example, I've read thru several 'how-to' tutorials about implementing the REST API.  When they all get to the point of implementing the 'model', they all end up having some annotations about transforming from the 'pojo/poco' to the xml/json view via [XmlAttribute],  or making the field be more user friendly in the UI via [Display/Display Type] attribute.  The platform doesn't matter, I've seen the cluttering in the Java world (not familiar with other scripting languages).  </p>
  
  <p>I'm aware of the Data Transfer Object design pattern as those objects could use these attributes, but is this the only method?  DTO seems like it would require a lot of object mapping to/from view to the business layer.  If that's what it takes to have a clean domain layer, then great, just looking for feedback.</p>
  
  <p>Thanks</p>