Тим ставља један низ за заобилажење у заједничку датотеку окружења. curl иде директно, друга апликација користи прокси, а контејнер се опет понаша другачије. Заједничка датотека је дистрибуирала исте знакове. Није дистрибуирала један заједнички парсер.

Трајни објекат је политика: која одредишта треба да буду директна и под којим условима? Држите то одвојено од низа који је потребан сваком програму.

Прво запишите очекиване руте

Користите репрезентативне адресе, укључујући граничне случајеве, а не само лаке успехе:

Облик одредиштаПитање за власника политике
Родитељски доменТреба ли га заобићи, или само његову децу?
ПоддоменНаслеђује ли исту руту?
Дословна приватна IP адресаДа ли је та адреса директно доступна са овог клијента?
Иста услуга под именом хостаТреба ли да се захтеви по имену и по адреси поклапају?
Други порт услугеДа ли изузетак покрива хост или један слушалац?

Затим идентификујте потрошаче: демон који повлачи имиџ, програм унутар контејнера, HTTP библиотека неког језика и интерактивни прегледач могу бити одвојене ставке. Конфигурација проксија Docker клијента може попунити вредности окружења контејнера без тога да сваки клијент унутра мора да примењује иста правила поклапања.

Преводите уместо да слепо копирате

Један документован пример стварне разлике је граница родитељског домена. Изузеће домена у curl-у покрива наведени домен и одговарајућу децу. Политика окружења .NET разликује голо име од облика поддомена са водећом тачком. Универзално правило „увек додај водећу тачку“ не може поуздано да изрази обе политике.

Подршка за IP опсеге такође зависи од потрошача и његове верзије. Машина са новим самосталним curl-ом и даље може да покреће апликацију повезану са старијом libcurl, или клијента који користи потпуно другу библиотеку. Издање оперативног система није потпун списак клијената.

За сваког потрошача запишите подржани интерфејс конфигурације и најмањи израз предвиђених рута. Кратка експлицитна листа хостова може бити боља од лукавог обрасца чије значење нико не може да објасни.

Држите доказе о конфигурацији одвојено од доказа о вези

Парсирано подешавање или API за одлуку о рутирању може показати шта је програм изабрао. Исход захтева затим показује да ли је та рута била употребљива. У .NET-у, HttpClient.DefaultProxy.IsBypassed пружа ту проверу са стране конфигурације када је подразумевани прокси политика која се користи. Не дијагностикујте недоступну директну услугу као квар парсера заобилажења само зато што је захтев истекао.

Задржите гранична одредишта када ажурирате клијента или основни имиџ. Она чине будуће промене компатибилности видљивим без потребе да цео тим поново открива зашто датотека садржи два слична уноса домена.

Повезани чланци