[b/docs/gitfame_review_comments.md] Add note on user experience.
This commit is contained in:
parent
2495017852
commit
aa2840a0b5
1 changed files with 55 additions and 0 deletions
|
@ -284,3 +284,58 @@ for _, file := range files {
|
|||
Прочитайте [пост в go блоге](https://go.dev/blog/pipelines) про типичные pipeline паттерны.
|
||||
|
||||
Можно сделать одного producer'а workload'а, который будет писать файлы для обработки в канал фиксированного размера, а `n` worker'ов будут читать из этого общего канала и обрабатывать файлы.
|
||||
|
||||
## User experience
|
||||
|
||||
### Не нужно паниковать на невалидном input'е
|
||||
|
||||
Пользователь утилиты не очень хочет видеть stacktrace, если он неправильно указал путь до репозитория.
|
||||
|
||||
Вместо
|
||||
```golang
|
||||
files, err := git.ListFiles(*repository, *revision)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
```
|
||||
|
||||
Стоит написать человеческую ошибку:
|
||||
```golang
|
||||
files, err := git.ListFiles(*repository, *revision)
|
||||
if err != nil {
|
||||
_, _ = fmt.Fprintf(os.Stderr, "File listing failed: %s", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
```
|
||||
|
||||
### NIT Не печатать ненужную информацию в логах
|
||||
|
||||
При использовании стандартного пакета log в log message добавится время.
|
||||
|
||||
Возможно, эта информация польователю не очень нужна.
|
||||
|
||||
Вместо
|
||||
```golang
|
||||
files, err := git.ListFiles(*repository, *revision)
|
||||
if err != nil {
|
||||
log.Fatalf("File listing failed: %s", err)
|
||||
}
|
||||
```
|
||||
|
||||
который напечатает что-то вроде:
|
||||
```
|
||||
2023/03/12 21:26:15 File listing failed: path not found
|
||||
```
|
||||
|
||||
Можно написать
|
||||
```golang
|
||||
files, err := git.ListFiles(*repository, *revision)
|
||||
if err != nil {
|
||||
_, _ = fmt.Fprintf(os.Stderr, "File listing failed: %s", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
```
|
||||
|
||||
Либо можно сконфигурировать log так, чтобы он не печатал лишнего.
|
||||
|
||||
Если вы печатает прогресс по мере обработки файлов, то время в логе может быть уместно. Ещё лучше прогрессбар рисовать.
|
||||
|
|
Loading…
Reference in a new issue