Skip to Content
LearnCode ReviewCode StructureCompatibility

Compatibility

Let’s look at how to maintain backwards compatibility in code reviews. We’ll show you a simple example and explain why the feedback matters.

The Scenario

A developer has updated a function to remove the age field from user data. The code works but could break existing functionality.

userData.ts
function getUserData(user: User) { return { name: user.name, email: user.email, // Removed age field that existing code depends on } }

PR Comment

Choose the comment that you think is the most constructive and helpful.

function getUserData(user: User) { return { name: user.name, email: user.email, birthDate: user.birthDate, /** @deprecated Use user.birthDate instead */ age: calculateAge(user.birthDate), // Keep for backwards compatibility } }

Click here to learn more

Improvements

1. Compatibility

  • Original code would break existing features
  • New code maintains backwards compatibility
  • Deprecated field allows gradual updates

2. Code Quality

  • Clear documentation of changes
  • Type-safe implementation
  • Better maintainability

3. Future Maintenance

  • Easier to remove deprecated fields later
  • Clear upgrade path for other developers
  • Better for team collaboration

Tips

1. Start Positive

  • Acknowledge the working code
  • Show you understand the current approach
  • Example: “Great work on the user data structure!“

2. Explain the Benefits

  • Why does compatibility matter?
  • How does it help other developers?
  • Example: “This gives other developers time to update their code”

3. Be Specific

  • Suggest concrete improvements
  • Explain why they matter
  • Example: “Marking the field as deprecated helps with gradual updates”

4. Keep It Friendly

  • Focus on improvement, not criticism
  • Use encouraging language
  • Example: “Thanks for considering backwards compatibility!”

Common Pitfalls to Avoid

1. Being Too Critical

  • ❌ “This will break everything.”
  • ✅ “Good work! Here’s how we can maintain compatibility.”

2. Not Explaining Why

  • ❌ “Keep the old field.”
  • ✅ “Keeping the age field helps prevent breaking changes for other developers.”

3. Ignoring the Positive

  • ❌ “This needs backwards compatibility.”
  • ✅ “Great work! Here’s how we can make it even more compatible.”

Remember: The goal is to help your teammate write better code while maintaining a positive and collaborative environment!

Last updated on
Trade-OffsDocumentation