3 exercises — write meaningful approvals and clearly explain what must change before a PR can merge.
0 / 23 completed
1 / 23
You have reviewed a PR and everything looks good. Which approval comment is the most professional and useful?
Option C is the model approval. It tells the author exactly what you verified (tested locally, existing tests, the specific edge cases), which builds confidence that the review was thorough. It also ends with genuine praise.
"LGTM" has become a shorthand that can mean anything from "I read every line carefully" to "I glanced at the diff". It's fine in a pinch for small changes among close collaborators, but for significant PRs, more detail signals real engagement.
Approval comments should answer: What did you verify? Did you test it? Are there open questions? A 2-sentence approval is always better than a one-word one.
2 / 23
You're requesting changes on a PR. Which opening line sets the right tone for a blocking review?
Option B works because it: (1) signals due diligence ("reviewed this thoroughly"); (2) frames the outcome clearly ("need to be addressed before merge"); (3) offers collaboration ("happy to discuss"). This is the standard opening for a change-request review in professional environments.
Key vocabulary: "Before we can merge" is the standard phrase for blocking feedback. Compare: "blocking issue", "must be addressed", "required change" (all blocking) vs. "nit", "optional", "consider" (non-blocking suggestions).
Option A is hostile and vague. Option C and D leave the author with no context or path forward.
3 / 23
A PR touches a security-sensitive area. You want to approve it but note that the security team should also review it. What do you write?
Option B demonstrates mature team communication. It: (1) gives a scoped approval ("from a backend logic perspective") — you're not blocking the PR, but clarifying the scope of your review; (2) flags the specific concern (authentication flow); (3) makes a concrete recommendation (loop in security); (4) specifies the threshold (before merging to production).
This pattern is called a conditional approval or scoped approval — common in organisations with separate security and compliance review processes. Option C is a hard block without explanation. Option D gives false assurance on a security-sensitive change.
4 / 23
Alex submitted a pull request to update the user authentication module. During your review, you identified a potential race condition in the session management logic that could lead to unauthorized access. You need to provide feedback to Alex while maintaining a constructive and collaborative tone. Which of the following Slack messages is most appropriate?
The best response clearly outlines the issue (race condition) and suggests a specific action (investigate and implement locking). Options A and B are too brief and don't explain the problem or guide Alex toward a solution. Option C is overly terse and lacks helpful guidance.
Option D is unprofessional and unproductive, failing to offer any constructive feedback. This example demonstrates how to address a technical issue with clarity and collaboration, which is crucial for effective code reviews.
5 / 23
Sarah submitted a pull request to refactor the database query logic for the reporting API. During your review, you noticed that while the performance is improved, there's no input validation on the `report_type` parameter – this could potentially allow malicious users to generate extremely large reports and overload the system. You want to provide constructive feedback to Sarah in a PR comment. Which of the following options best achieves this?
The correct answer highlights a specific issue and offers positive reinforcement. The other options are either too vague (insufficient), overly enthusiastic without addressing concerns (great job!), or focus solely on a technical problem without acknowledging the refactoring effort. It's crucial to balance constructive criticism with recognizing the developer's work, particularly when discussing potential vulnerabilities like input validation – this demonstrates you value their contribution while also ensuring code quality and security.
6 / 23
John submitted a pull request to implement a new feature: a real-time chat module. During your review, you noticed that the frontend JavaScript is heavily reliant on synchronous API calls, potentially causing UI freezes during high user load. You want to provide feedback to John while encouraging him to explore asynchronous solutions. Which of the following PR comment descriptions is most effective?
A: 'This code is terrible and needs to be rewritten immediately! Synchronous calls are a disaster.'
B: 'The frontend uses synchronous API calls, which could lead to UI freezes under heavy load. Consider using asynchronous techniques like Promises or async/await for improved performance and responsiveness.'
C: 'Please fix this code ASAP.'
D: 'I'm not sure about the design choices here, but it seems to function correctly.'
Option B is the most effective because it clearly identifies the problem (synchronous calls leading to UI freezes) and provides a constructive suggestion for improvement – using asynchronous techniques like Promises or async/await. Options A is overly aggressive and unhelpful; option C lacks detail and doesn't offer guidance, while option D simply dismisses the issue without offering any feedback. Providing specific, actionable advice is crucial in code reviews to help developers learn and improve their code.
7 / 23
David submitted a pull request to add logging to the payment processing service. During your review, you noticed that all log messages are written directly to the console without any structured formatting or context. You want to provide feedback to David in a PR comment to encourage him to improve the quality of the logs. Which of the following options is the most effective?
A: 'This logging is completely useless! It needs to be fixed immediately.'
B: 'The current log messages are unstructured and lack context, making them difficult to analyze. Consider using a structured logging library like log4j or SLF4J to improve the readability and maintainability of your logs.'
C: 'Please add some logging.'
D: 'I don't think this is necessary.'
The incorrect options focus solely on demanding immediate action without explaining *why* the current approach is problematic. The core issue here isn't just that logs are present but their lack of structure and context – unstructured logging makes debugging extremely difficult. Option B correctly identifies this problem and suggests a solution (structured logging) with concrete examples of libraries, demonstrating an understanding of best practices for log management.
8 / 23
Maria submitted a pull request to update the image resizing library. During your review, you noticed that she's using a synchronous callback function within the library's core processing logic. This could block the main thread and lead to UI freezes when handling large images. Which of the following PR comments best guides Maria toward a solution while maintaining a constructive tone?
Maria's pull request is bringing in a new image resizing library, but the synchronous callback function presents a potential performance bottleneck.
The best response acknowledges the potential issue (UI freezes) and provides a specific, actionable suggestion using asynchronous techniques. Option A is overly critical and unhelpful. Option C is too vague. Option D dismisses the problem entirely. This approach aligns with collaborative code review practices by offering guidance rather than simply pointing out a flaw.
9 / 23
Alex submitted a pull request to update the user authentication module. During your review, you identified a potential race condition in the session management logic that could lead to unauthorized access. You need to provide feedback to Alex while maintaining a constructive and collaborative tone. Which of the following Slack messages is most appropriate?
The best response clearly outlines the issue (race condition) and suggests a specific action (investigate and implement locking). Options A and B are too brief and don't explain the problem or guide Alex toward a solution. Option C is overly terse and lacks helpful guidance.
Option D is unprofessional and unproductive, failing to offer any constructive feedback. This example demonstrates how to address a technical issue with clarity and collaboration, which is crucial for effective code reviews.
10 / 23
Sarah submitted a pull request to refactor the database query logic for the reporting API. During your review, you noticed that while the performance is improved, there's no input validation on the `report_type` parameter – this could potentially allow malicious users to generate extremely large reports and overload the system. You want to provide constructive feedback to Sarah in a PR comment. Which of the following options best achieves this?
The correct answer highlights a specific issue and offers positive reinforcement. The other options are either too vague (insufficient), overly enthusiastic without addressing concerns (great job!), or focus solely on a technical problem without acknowledging the refactoring effort. It's crucial to balance constructive criticism with recognizing the developer's work, particularly when discussing potential vulnerabilities like input validation – this demonstrates you value their contribution while also ensuring code quality and security.
11 / 23
John submitted a pull request to implement a new feature: a real-time chat module. During your review, you noticed that the frontend JavaScript is heavily reliant on synchronous API calls, potentially causing UI freezes during high user load. You want to provide feedback to John while encouraging him to explore asynchronous solutions. Which of the following PR comment descriptions is most effective?
A: 'This code is terrible and needs to be rewritten immediately! Synchronous calls are a disaster.'
B: 'The frontend uses synchronous API calls, which could lead to UI freezes under heavy load. Consider using asynchronous techniques like Promises or async/await for improved performance and responsiveness.'
C: 'Please fix this code ASAP.'
D: 'I'm not sure about the design choices here, but it seems to function correctly.'
Option B is the most effective because it clearly identifies the problem (synchronous calls leading to UI freezes) and provides a constructive suggestion for improvement – using asynchronous techniques like Promises or async/await. Options A is overly aggressive and unhelpful; option C lacks detail and doesn't offer guidance, while option D simply dismisses the issue without offering any feedback. Providing specific, actionable advice is crucial in code reviews to help developers learn and improve their code.
12 / 23
David submitted a pull request to add logging to the payment processing service. During your review, you noticed that all log messages are written directly to the console without any structured formatting or context. You want to provide feedback to David in a PR comment to encourage him to improve the quality of the logs. Which of the following options is the most effective?
A: 'This logging is completely useless! It needs to be fixed immediately.'
B: 'The current log messages are unstructured and lack context, making them difficult to analyze. Consider using a structured logging library like log4j or SLF4J to improve the readability and maintainability of your logs.'
C: 'Please add some logging.'
D: 'I don't think this is necessary.'
The incorrect options focus solely on demanding immediate action without explaining *why* the current approach is problematic. The core issue here isn't just that logs are present but their lack of structure and context – unstructured logging makes debugging extremely difficult. Option B correctly identifies this problem and suggests a solution (structured logging) with concrete examples of libraries, demonstrating an understanding of best practices for log management.
13 / 23
Maria submitted a pull request to update the image resizing library. During your review, you noticed that she's using a synchronous callback function within the library's core processing logic. This could block the main thread and lead to UI freezes when handling large images. Which of the following PR comments best guides Maria toward a solution while maintaining a constructive tone?
Maria's pull request is bringing in a new image resizing library, but the synchronous callback function presents a potential performance bottleneck.
The best response acknowledges the potential issue (UI freezes) and provides a specific, actionable suggestion using asynchronous techniques. Option A is overly critical and unhelpful. Option C is too vague. Option D dismisses the problem entirely. This approach aligns with collaborative code review practices by offering guidance rather than simply pointing out a flaw.
14 / 23
Alex submitted a pull request to update the user authentication module. During your review, you identified a potential race condition in the session management logic that could lead to unauthorized access. You need to provide feedback to Alex while maintaining a constructive and collaborative tone. Which of the following Slack messages is most appropriate?
The best response clearly outlines the issue (race condition) and suggests a specific action (investigate and implement locking). Options A and B are too brief and don't explain the problem or guide Alex toward a solution. Option C is overly terse and lacks helpful guidance.
Option D is unprofessional and unproductive, failing to offer any constructive feedback. This example demonstrates how to address a technical issue with clarity and collaboration, which is crucial for effective code reviews.
15 / 23
Sarah submitted a pull request to refactor the database query logic for the reporting API. During your review, you noticed that while the performance is improved, there's no input validation on the `report_type` parameter – this could potentially allow malicious users to generate extremely large reports and overload the system. You want to provide constructive feedback to Sarah in a PR comment. Which of the following options best achieves this?
The correct answer highlights a specific issue and offers positive reinforcement. The other options are either too vague (insufficient), overly enthusiastic without addressing concerns (great job!), or focus solely on a technical problem without acknowledging the refactoring effort. It's crucial to balance constructive criticism with recognizing the developer's work, particularly when discussing potential vulnerabilities like input validation – this demonstrates you value their contribution while also ensuring code quality and security.
16 / 23
John submitted a pull request to implement a new feature: a real-time chat module. During your review, you noticed that the frontend JavaScript is heavily reliant on synchronous API calls, potentially causing UI freezes during high user load. You want to provide feedback to John while encouraging him to explore asynchronous solutions. Which of the following PR comment descriptions is most effective?
A: 'This code is terrible and needs to be rewritten immediately! Synchronous calls are a disaster.'
B: 'The frontend uses synchronous API calls, which could lead to UI freezes under heavy load. Consider using asynchronous techniques like Promises or async/await for improved performance and responsiveness.'
C: 'Please fix this code ASAP.'
D: 'I'm not sure about the design choices here, but it seems to function correctly.'
Option B is the most effective because it clearly identifies the problem (synchronous calls leading to UI freezes) and provides a constructive suggestion for improvement – using asynchronous techniques like Promises or async/await. Options A is overly aggressive and unhelpful; option C lacks detail and doesn't offer guidance, while option D simply dismisses the issue without offering any feedback. Providing specific, actionable advice is crucial in code reviews to help developers learn and improve their code.
17 / 23
David submitted a pull request to add logging to the payment processing service. During your review, you noticed that all log messages are written directly to the console without any structured formatting or context. You want to provide feedback to David in a PR comment to encourage him to improve the quality of the logs. Which of the following options is the most effective?
A: 'This logging is completely useless! It needs to be fixed immediately.'
B: 'The current log messages are unstructured and lack context, making them difficult to analyze. Consider using a structured logging library like log4j or SLF4J to improve the readability and maintainability of your logs.'
C: 'Please add some logging.'
D: 'I don't think this is necessary.'
The incorrect options focus solely on demanding immediate action without explaining *why* the current approach is problematic. The core issue here isn't just that logs are present but their lack of structure and context – unstructured logging makes debugging extremely difficult. Option B correctly identifies this problem and suggests a solution (structured logging) with concrete examples of libraries, demonstrating an understanding of best practices for log management.
18 / 23
Maria submitted a pull request to update the image resizing library. During your review, you noticed that she's using a synchronous callback function within the library's core processing logic. This could block the main thread and lead to UI freezes when handling large images. Which of the following PR comments best guides Maria toward a solution while maintaining a constructive tone?
Maria's pull request is bringing in a new image resizing library, but the synchronous callback function presents a potential performance bottleneck.
The best response acknowledges the potential issue (UI freezes) and provides a specific, actionable suggestion using asynchronous techniques. Option A is overly critical and unhelpful. Option C is too vague. Option D dismisses the problem entirely. This approach aligns with collaborative code review practices by offering guidance rather than simply pointing out a flaw.
19 / 23
Alex submitted a pull request to update the user authentication module. During your review, you identified a potential race condition in the session management logic that could lead to unauthorized access. You need to provide feedback to Alex while maintaining a constructive and collaborative tone. Which of the following Slack messages is most appropriate?
The best response clearly outlines the issue (race condition) and suggests a specific action (investigate and implement locking). Options A and B are too brief and don't explain the problem or guide Alex toward a solution. Option C is overly terse and lacks helpful guidance.
Option D is unprofessional and unproductive, failing to offer any constructive feedback. This example demonstrates how to address a technical issue with clarity and collaboration, which is crucial for effective code reviews.
20 / 23
Sarah submitted a pull request to refactor the database query logic for the reporting API. During your review, you noticed that while the performance is improved, there's no input validation on the `report_type` parameter – this could potentially allow malicious users to generate extremely large reports and overload the system. You want to provide constructive feedback to Sarah in a PR comment. Which of the following options best achieves this?
The correct answer highlights a specific issue and offers positive reinforcement. The other options are either too vague (insufficient), overly enthusiastic without addressing concerns (great job!), or focus solely on a technical problem without acknowledging the refactoring effort. It's crucial to balance constructive criticism with recognizing the developer's work, particularly when discussing potential vulnerabilities like input validation – this demonstrates you value their contribution while also ensuring code quality and security.
21 / 23
John submitted a pull request to implement a new feature: a real-time chat module. During your review, you noticed that the frontend JavaScript is heavily reliant on synchronous API calls, potentially causing UI freezes during high user load. You want to provide feedback to John while encouraging him to explore asynchronous solutions. Which of the following PR comment descriptions is most effective?
A: 'This code is terrible and needs to be rewritten immediately! Synchronous calls are a disaster.'
B: 'The frontend uses synchronous API calls, which could lead to UI freezes under heavy load. Consider using asynchronous techniques like Promises or async/await for improved performance and responsiveness.'
C: 'Please fix this code ASAP.'
D: 'I'm not sure about the design choices here, but it seems to function correctly.'
Option B is the most effective because it clearly identifies the problem (synchronous calls leading to UI freezes) and provides a constructive suggestion for improvement – using asynchronous techniques like Promises or async/await. Options A is overly aggressive and unhelpful; option C lacks detail and doesn't offer guidance, while option D simply dismisses the issue without offering any feedback. Providing specific, actionable advice is crucial in code reviews to help developers learn and improve their code.
22 / 23
David submitted a pull request to add logging to the payment processing service. During your review, you noticed that all log messages are written directly to the console without any structured formatting or context. You want to provide feedback to David in a PR comment to encourage him to improve the quality of the logs. Which of the following options is the most effective?
A: 'This logging is completely useless! It needs to be fixed immediately.'
B: 'The current log messages are unstructured and lack context, making them difficult to analyze. Consider using a structured logging library like log4j or SLF4J to improve the readability and maintainability of your logs.'
C: 'Please add some logging.'
D: 'I don't think this is necessary.'
The incorrect options focus solely on demanding immediate action without explaining *why* the current approach is problematic. The core issue here isn't just that logs are present but their lack of structure and context – unstructured logging makes debugging extremely difficult. Option B correctly identifies this problem and suggests a solution (structured logging) with concrete examples of libraries, demonstrating an understanding of best practices for log management.
23 / 23
Maria submitted a pull request to update the image resizing library. During your review, you noticed that she's using a synchronous callback function within the library's core processing logic. This could block the main thread and lead to UI freezes when handling large images. Which of the following PR comments best guides Maria toward a solution while maintaining a constructive tone?
Maria's pull request is bringing in a new image resizing library, but the synchronous callback function presents a potential performance bottleneck.
The best response acknowledges the potential issue (UI freezes) and provides a specific, actionable suggestion using asynchronous techniques. Option A is overly critical and unhelpful. Option C is too vague. Option D dismisses the problem entirely. This approach aligns with collaborative code review practices by offering guidance rather than simply pointing out a flaw.
What does the "Approving & Requesting Changes" exercise practise?
Go beyond 'LGTM'. Practice writing meaningful approval comments and professional change requests with clear reasoning. 3 exercises.
How many questions are in this exercise?
This exercise has 23 questions, each multiple-choice with a full explanation shown after you answer.
What English level is this exercise for?
This exercise is tagged Beginner. If the vocabulary feels difficult, browse the Code Review Language category page for an easier module to start with.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free with no account, sign-up, or paywall.
Do I get feedback if I answer incorrectly?
Yes — whichever option you choose, right or wrong, you'll immediately see an explanation clarifying the correct term and why the other options don't fit.
Can I retry this exercise?
Yes — once you finish all the questions, a "Try again" button on the results screen resets the exercise so you can practise as many times as you like.
Do I need an account to track my progress?
No account is required. Your progress bar and score for this session are tracked in the browser as you go, but nothing is saved once you leave the page.
Is "Approving & Requesting Changes" part of a larger series?
Yes — it's one exercise in the Code Review Language category on CoderSlingo. See the category page for the full list of related exercises on similar terminology.
Can I link directly to this exercise?
Yes — this exercise has its own permanent URL, so you can bookmark it or share the link directly with a colleague or study partner.
Where can I find more exercises like this one?
See the Code Review Language category page for related exercises, or browse the main Exercises hub for other IT English topics.