Sajnos ilyen részleteket nem tudok, de azzal az elvvel egyetértek, hogy nem nyúlunk át rétegek fölött. Tehát, ha az OSI-modell szerinti adott rétegben van egy hiba, azt nem egy másik rétegben orvosoljuk, hanem ott, ahol a hiba van. Mégpedig azért, mert olvashatatlan, kézbentarthatatlan, gány kódot eredményez, amelyet aztán rettentő nehéz debugolni, ha valami hiba van. Csábító dolog máshol hibát javítani, csak nem szabad.
Más kérdés, hogy mit tekintünk más rétegben történő hibajavításnak, s mennyire vagyunk vaskalaposak. Mondok rá példát. Assembly-ben szoktam mikrokontrollerre programozni. Mondjuk van egy táblázatunk, amelynek indexe 0..15 tartományban lehet. Ilyen esetben én mindenképpen egy AND 0xf jellegű paranccsal kezdem azt a függvényt, amely a táblázatot kezeli. Mondhatjuk, hogy ezzel a túlcímzés elleni védekezéssel hibát javítok, s nem a hívó helyen garantálom azt, hogy a paraméter 0..15 tartományba essen, s ez csúnya dolog, de felfoghatom úgy is, hogy a táblázatot kezelő függvényem az alsó 4 biten várja az indexet, a felső 4 biten bármilyen szemét lehet, tehát definíciószerűen ez nem hibajavítás, hanem így várom az inputot.
Az én hozzáállásom az, hogy ilyen „hibajavítások” viszont megengedettek. Nem fáj semmiben, megússzuk a túlcímzést, az eltévelygő programot, mi több, a hívott függvény ezen tulajdonságát tudatosan kihasználhatjuk. Tehát nem workaround, hanem tulajdonság.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE