-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.golangci.yml
56 lines (56 loc) · 2.64 KB
/
.golangci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
run:
allow-parallel-runners: true
issues:
exclude-rules:
- path: controller #достаточное кол-во контекса на уровне контроллеров
linters:
- wrapcheck
- path: transaction #транзакции прозрачны
linters:
- wrapcheck
linters:
enable-all: true
disable:
- goimports #у нас собственные правила форматирования импортов
- wsl #расставление пробелов очень индивидуально
- exhaustivestruct #не имеет смысла
- varnamelen #очень индивидуально (db)
- exhaustruct #не имеет смысла
- golint #устарел
- contextcheck #не имеет смысла
- gci #у нас собственные правила форматирования импортов
- gofumpt #у нас собственные правила форматирования импортов
- nolintlint #Goland все равно форматирует с отступом
- nlreturn #не всегда имеет смысл
- godot #не актуально для свагера
- ifshort #приняли решение, что мы так не пишем if err := ...; err != nil {}
- godox #не позволяет оставлять todo
- maligned #аллокацией памяти для структур конфликтует с удобством их чтения
- nosnakecase #не позволяет заводить пакеты используя snake_case
- depguard #не всегда имеет смысл
- dupword #не имеет смысла
- tagalign #не всегда имеет смысл
- musttag #у нас собственные правило: не используем теги, если работаем с пакетом isp-kit/json и с внутренними структурами(между нашими сервисами), при этом теги обязательный для всех внених для нас структур
- perfsprint #мнимая производительность в угоду читаемости
- gomnd #устарел
linters-settings:
funlen:
lines: 80
lll:
line-length: 150
cyclop:
max-complexity: 15 #по умолчанию 10 мало
revive:
rules:
- name: var-naming #отключаем Id -> ID
disabled: true
stylecheck:
checks: #отключаем Id -> ID
- "-ST1000"
- "-ST1016"
- "-ST1020"
- "-ST1021"
- "-ST1022"
testifylint:
disable:
- compares