O echipă pune un singur șir de ocolire într-un fișier de mediu partajat. curl merge direct, o altă aplicație folosește proxy-ul, iar un container se comportă din nou altfel. Fișierul partajat a distribuit aceleași caractere. Nu a distribuit un parser partajat.

Obiectul durabil este politica: ce destinații ar trebui să fie directe și în ce condiții? Țineți aceasta separat de șirul de care are nevoie fiecare program.

Scrieți mai întâi rutele așteptate

Folosiți adrese reprezentative, inclusiv cazuri limită, nu doar succese ușoare:

Forma destinațieiÎntrebare pentru proprietarul politicii
Domeniu părinteTrebuie ocolit, sau doar copiii săi?
Un subdomeniuMoștenește aceeași rută?
Un IP privat literalEste adresa respectivă accesibilă direct din acest client?
Același serviciu sub un nume de gazdăCererile după nume și după adresă ar trebui să coincidă?
Alt port al serviciuluiExcepția acoperă gazda sau un singur listener?

Apoi identificați consumatorii: daemonul care descarcă o imagine, programul din container, o bibliotecă HTTP a unui limbaj și un browser interactiv pot fi intrări separate. O configurație de proxy a clientului Docker poate completa valorile de mediu ale containerului fără a obliga fiecare client din interior să implementeze aceleași reguli de potrivire.

Traduceți în loc să copiați orbește

Un exemplu documentat de diferență reală este granița domeniului părinte. Excluderea de domeniu din curl acoperă domeniul numit și copiii care se potrivesc. Politica de mediu din .NET distinge numele simplu de forma de subdomeniu cu punct inițial. O regulă universală de „adăugați întotdeauna un punct inițial“ nu poate exprima ambele politici în mod fiabil.

Suportul pentru intervale IP depinde și de consumator și de versiunea acestuia. O mașină cu un curl autonom nou poate rula în continuare o aplicație legată de o libcurl mai veche sau un client care folosește cu totul altă bibliotecă. Versiunea sistemului de operare nu este un inventar complet al clienților.

Pentru fiecare consumator, notați interfața de configurare acceptată și cea mai mică expresie a rutelor dorite. O listă scurtă și explicită de gazde poate fi mai bună decât un model isteț a cărui semnificație nimeni nu o poate explica.

Țineți dovezile de configurare separate de dovezile de conexiune

O setare analizată sau un API de decizie a rutării poate arăta ce a selectat programul. Rezultatul unei cereri arată apoi dacă ruta respectivă era utilizabilă. În .NET, HttpClient.DefaultProxy.IsBypassed oferă acea verificare pe partea de configurare atunci când proxy-ul implicit este politica folosită. Nu diagnosticați un serviciu direct inaccesibil ca eșec al parserului de ocolire doar pentru că cererea a expirat.

Păstrați destinațiile de graniță atunci când actualizați un client sau o imagine de bază. Ele fac vizibile schimbările viitoare de compatibilitate fără a cere întregii echipe să redescopere de ce fișierul conține două intrări de domeniu asemănătoare.

Articole similare