1. Your controller action should ideally expose only one instance variable to your views - the presenter.
  2. Back each view or partial with its own presenter.
  3. Rendering partials within partials means your presenters can return other presenters for these partials.
  4. If your view requires an author and the current user, provide that to your presenter - don’t make your presenter navigate through an item to get the author.
  5. Write your view first, assuming no knowledge of how our domain is modelled, then write the presenter to drive it.
  6. Prefer composition over inheritance.
  7. Presenters shouldn’t know about CSS class names.