Especially concurrency-related code, because they are difficult to test, although you can use go test -race
command to detect race condition.
Besides, how to ensure that the goroutine does not leak memory and has the best performance.
Code review generally requires people with more relevant experience, so it seems to be more difficult than solving program problems.
It may take a lot of time for code reviewers. Time is precious. Therefore, without any incentives, I am not sure that my code can be reviewed in time by others and provide good suggestions.
A simple example:
package main
import (
"fmt"
"time"
)
func main() {
var x = 123
go func() {
x = 789 // write to x
}()
time.Sleep(time.Second)
fmt.Println(x) // read from x
}
The above code has an issue. We should not use time.Sleep
calls for synchronization between goroutines.
But go language does not have such a restriction mechanism, and the correctness of concurrent code seems to be based on experience.
Therefore, although the code passes the go compiler, there is a bug in the code logic.
I only know two places:
But I am looking for other places. Any suggestion? Thanks!
Top comments (1)
You should try gophers.slack.com/?redir=%2Fmessag...
And the #review channel.
Good luck!