Best practices for component design