N+1 query in loop
Review this Go code that enriches a list of comments with author names.
Comment lists routinely hold 200+ items.
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix, specific and kind.
0:00 of about 22 min
Mark a line and say what kind of problem it is.0 findings
1func enrich(db *sql.DB, comments []Comment) ([]EnrichedComment, error) {
2 out := make([]EnrichedComment, 0, len(comments))
3 for _, c := range comments {
4 var name string
5 err := db.QueryRow(
6 "SELECT name FROM users WHERE id = $1", c.AuthorID,
7 ).Scan(&name)
8 if err != nil {
9 return nil, err
10 }
11 out = append(out, EnrichedComment{Comment: c, Author: name})
12 }
13 return out, nil
14}
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.
Run or narrate your approach, then ask the coach.