Neste artigo, tentaremos considerar opções para polêmicas incorretas, que, infelizmente, são frequentemente encontradas no Habr e em outros sites.
Absolutização da abordagem descrita
Sabe-se que qualquer método trazido ao absoluto se torna estúpido.
Por exemplo, o uso excessivo de OOP resulta em código ilegível. Uma rejeição completa do OOP e a transição para um código puramente funcional também reduzem a legibilidade.
A verdade está sempre em algum lugar no meio.
Mas quando você quiser contar a alguém sobre como você aplicou algum método com sucesso, esteja preparado para o fato de que há um oponente que tentará usar esse método absolutamente em qualquer lugar.
Certa vez, escrevi um artigo sobre o uso de eventos nomeados e um comentarista veio até mim e disse:
Porcaria completa! Substituí todas as funções do meu código por eventos nomeados. Acabou sendo um inferno de identificadores através dos quais era extremamente difícil passar! Depois disso, voltei ao bom e velho React!
O que fazer
- Não se envolva em uma disputa.
- Uma vez para comentar que você não deve exagerar na ferramenta.
Conversa terminológica
Não é segredo que, em muitos casos, é difícil traçar a fronteira entre os termos. Muitas vezes, dois termos diferentes significam a mesma coisa e vice-versa. Depende do contexto e dos limites de uso.
Por exemplo, você está falando sobre algo. Sobre o Problema X
:
Considere o problema X
, que se manifesta, por exemplo, nos casos A
, B
, C
e D
O problema é isso e aquilo. Você pode resolver isso mais ou menos.
Definitivamente, haverá um comentarista que dirá:
Porcaria completa! Seu termo D
aplicado incorretamente! Na verdade, você tem que dizer D-
. O termo D
introduziu esse ..
e tal em tal ano. E o termo D-
outro ..
em outro ano.
Por alguma razão, os anos e o nome são importantes.
Você responde a ele:
Na estrutura deste artigo, não é particularmente importante se é D
ou D-
, pois aqui estamos falando do problema X
D
aqui está um exemplo e um D-
pode ser o mesmo exemplo. Nesse contexto, não há diferença: o problema X
presente nos D
e D-
.
Outro participante aparece imediatamente. Declara:
Este não é um D-
, este é o E
!
Começa um debate sobre termos, que pode durar para sempre. Pasta especial: se após alguns dias de disputa outro participante aparecer, em algum estágio da disputa retornará ao termo D
:
Não, isso não é E
, é D
!
Como resultado, o post coletou mais de 100 comentários sobre os termos D
, D-
, E
e os anos de nascimento daqueles que introduziram os termos. Mas o problema X
não X
discutido.
Certa vez, tive um comentário sobre os problemas do uso de variáveis globais (ou estáticas).
Forneceu um exemplo com um singleton. O singleton no exemplo foi implementado usando uma variável global.
SingletonSingleton é um objeto instanciado no sistema apenas uma vez. Uma única instância pode ser garantida de várias maneiras:
- A própria classe garante isso de alguma forma (geralmente se referindo a uma variável global / estática).
- Isso é feito fora da classe - no momento da instanciação (nesse caso, vários objetos dessa classe podem ser teoricamente criados, mas se o ponto de instanciação estiver vinculado, por exemplo, a uma variável global, podemos assumir que criamos um singleton).
Eu escolhi a segunda opção.
Imediatamente houve um personagem que exclamou:
Porcaria completa! Este não é um singleton, é memorização!
Eu respondi:
Este é um singleton, que neste exemplo é implementado usando a memorização.
E então eu me envolvi nesse jogo. O problema das variáveis globais / estáticas foi esquecido.
O que fazer
- Não se envolva na disputa (se realmente quisermos discutir exatamente o que eles escreveram no artigo).
- Verifique cuidadosamente os termos do artigo. Se algo pode ter dois nomes, damos a ambos.
- Gentilmente, devolva o público ao problema em discussão. Lembre-me dela.
Esta não é uma bala de prata!
Qualquer solução possui limites nos quais funciona bem e fora dos quais funciona mal - é necessária outra solução.
Suponha que você esteja discutindo alguma maneira de resolver uma série de problemas.
Certamente haverá uma pessoa que virá e dirá:
Porcaria completa! Tentei com sua pá martelar pregos na parede, o resultado é ruim. As mãos só doem! Voltarei ao velho martelo.
O que fazer
Não se envolva em uma disputa. Apenas ignore o comentário.
Hiperbolização de problemas
Você descreve uma maneira de simplificar a escrita de código em algum tipo de paradigma. Certamente haverá uma pessoa que procurará exemplos / opções que sejam contra-exemplos e os hiperbolizará.
Seus comentários podem ser reduzidos a isso (apenas ele não diz isso diretamente):
Uma vez em cada 100 casos, melhoramos apenas 99, e o todo permanece inalterado, sua proposta é uma porcaria completa.
Como regra, ao mesmo tempo, oferece outra solução, que você apenas propõe recusar em seu artigo.
O que fazer
- Reconheça um problema.
- Tente dar mais exemplos quando sua abordagem for melhor.
Ignorando problemas
O oposto da opção anterior.
Copiar código 23 vezes? Pff que ninharia! Defina o IDE correto, onde é feito com um botão, e você não precisa escrever artigos aqui!
O que fazer
Ignore esses comentários.
E que opções de polêmica incorreta você conhece?