Ação à distância (programação de computador)
Na ciência da computação, a ação à distância é um antipadrão (uma técnica de ofuscação) em que o comportamento em uma parte de um programa varia enormemente[1] com base na dificuldade ou impossibilidade de identificar operações em outra parte do programa.[2][3] O termo é baseado no conceito de ação à distância na física, que pode se referir a um processo que permite que objetos interajam sem uma partícula mediadora como o glúon. Em particular, Albert Einstein referiu-se à não localidade quântica como "ação fantasmagórica à distância".[4]
Exemplo
editarEste exemplo, da linguagem de programação Perl ,demonstra um caso especialmente sério de ação à distância (observe o variável $[
foi descontinuado em versões posteriores do Perl[5]):
Índices de matriz normalmente começam em 0 porque o valor de$[
é normalmente 0; se você definir$[
para 1, então as matrizes começam em 1, o que faz Fortran programadores felizes, e por isso vemos exemplos como este na página do manualperl(3)
:<code>foreach $num ($[ .. $#entry) { print " $num\t'",$entry[$num],"'\n"; }</code>E, claro, você pode definir
Felizmente, a sanidade prevaleceu. Esses recursos são agora reconhecidos como erros. A lista de discussão perl5-porters agora tem uma frase de efeito para esses recursos: eles são chamados de "ação à distância". O princípio é que uma declaração em uma parte do programa não deve alterar drástica e invisivelmente o comportamento de alguma outra parte do programa.|Mark Jason Dominus|Sins of Perl Revisited[6]$[
a 17 para que os arrays comecem em algum número aleatório, como 17 ou 4, em vez de 0 ou 1. Essa era uma ótima maneira de sabotar os autores de módulos.
Referências
- ↑ «The Spooky Action at a Distance Anti-Pattern - HackerspaceWiki». wiki.hackerspaces.org. Consultado em 6 de maio de 2021
- ↑ Zhuo, Ran (2017). «similarity in a distance». Digital Commons @ RISD
- ↑ «OOP is dead, long live OOP». GameDev.net (em inglês). Consultado em 6 de maio de 2021
- ↑ PopkinApr. 25, Gabriel; 2018; Pm, 1:05 (25 de abril de 2018). «Einstein's 'spooky action at a distance' spotted in objects almost big enough to see». Science | AAAS (em inglês). Consultado em 7 de maio de 2021
- ↑ Perl documentation of the
$[
variable - ↑ Sins of Perl Revisited