TGViewer
Make. Build. Break. Reflect. Make. Build. Break. Reflect. @makebreakreflect · 1.37K subscribers
Post #266 1.09K
Заметка ненависти.

Бесят три типа переменных:
1) double negative (Двойное/обратное отрицание).
Примеры:
- https://github.com/VictoriaMetrics/helm-charts/blob/master/charts/victoria-metrics-k8s-stack/values.yaml#L39
operator:
disable_prometheus_converter: false

- https://github.com/VictoriaMetrics/helm-charts/blob/master/charts/victoria-metrics-operator/values.yaml#L224
operator:
enable_converter_ownership: true

Так сказать лучи негодования команде VM @VictoriaMetrics_ru1.

2) unintuitive / non-descriptive names (Неочевидные имена)
Пример:
- https://github.com/Terraform-VMWare-Modules/terraform-vsphere-vm/blob/master/examples/example-vmname.tf#L65
module "example-server-fqdnvmname" {
...
fqdnvmname = true

По имени ожидаешь строку с FQDN, а это флаг "создавать имя как FQDN" 🐒
https://github.com/Terraform-VMWare-Modules/terraform-vsphere-vm/blob/master/variables.tf#L144-L148
variable "fqdnvmname" {
description = "If true, the vm will be created using domain variable appended"
type = bool
default = false
}


3) cryptic names (Криптические имена)
Примеры:
- https://github.com/krateoplatformops/eventrouter/blob/main/main.go#L60-L66
var cfg *rest.Config
var err error
if len(*kubeconfig) > 0 {
cfg, err = clientcmd.BuildConfigFromFlags("", *kubeconfig)
} else {
cfg, err = rest.InClusterConfig()
}

cfg без какого‑либо намёка, что это именно Kubernetes REST‑конфиг, а не, скажем, конфиг логгера или чего‑нибудь ещё.
Пока не откроешь импорты и десяток файлов вокруг ни черта не понять.
- https://github.com/vmware-tanzu/vm-operator/blob/main/main.go
func initRateLimiting() {
if rateLimiterQPS == 0 && rateLimiterBurst == 0 {
return
}
cfg := ctrl.GetConfigOrDie()
...
managerOpts.KubeConfig = cfg
}

cfg тут - это kubernetes REST конфиг, через который оператор лезет ко всему API кластера, но по имени это просто "какой‑то конфиг" без намёка, что именно kubeconfig, а не, например, конфиг логгера или самого приложения. Чтобы это понять, нужно либо знать паттерн ctrl.GetConfigOrDie, либо докручивать в голове по managerOpts.KubeConfig = cfg и типам. Бред.

Голанг комьюнити допускает короткие имена вроде cfg для переменных узкой области видимости, но здесь это используется на уровне файла! Алё! Тут сокращение несёт неочевидный смысл.

Бесит короч иногда.
  • 👍 9
  • 🥰 1
  • 🙏 1
  • 👌 1
More from @makebreakreflect
  1. Sep 24, 2026Но стоит взять задачу из смежной области, где общее понимание есть, а глубокой экспертизы…
  2. Sep 23, 2026В удивительнейшее время живём. - https://typesafe.ai/blog/introducing-system-one-models-an…
  3. Sep 22, 2026#aws #elasticache #redis #kubernetes #troubleshooting #devops #sre #longread Ничего не пре…
  4. Sep 18, 2026Вся эта неделя была очень странной. Опус отупел до уровня 3 модели. Фейбл сжигает токены б…
  5. Sep 16, 2026Post #382
  6. Sep 15, 2026Apple наконец слила beta и release в один продукт и избавились от лишнего шага в релизном…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →