# No Hardcoded Vendors Pattern Notes This file keeps examples. The normative rules live in `contract.md`. ## Запрещено ```go if device.Vendor == "Dell" { ... } if strings.Contains(model, "PowerEdge") { ... } switch vendor { case "HP", "HPE", "Hewlett Packard": ... } ``` ```go // Запрещено — список вендоров в коде var knownVendors = []string{"Dell", "HP", "Cisco", "Lenovo"} ``` ## Правильно ```go // Смотрим на возможности объекта, не на имя вендора if device.HasIPMI { ... } if device.ParserType == "redfish" { ... } ``` Маппинг в конфиге: ```yaml # config.yaml vendor_parsers: dell: redfish hp: ilo cisco: ucs ``` Маппинг в БД: ```sql SELECT parser_type FROM vendor_registry WHERE LOWER(vendor) = LOWER(?); ```