Significado de "overabstract"

Olá amigos do English Experts,

Estou lendo um livro sobre a linguagem de programação C++ e existe uma área de "advices" com várias dicas sobre a escrita de código nessa linguagem.
Uma das dicas que não entendi é "Don't overabstract". É exatamente dessa forma que está no livro, "overabstract" escrito tudo junto. Não sei se isso é algum erro porque, mesmo que estivesse separado, eu também não entenderia.
É isso pessoal, fico muito grato se alguém souber me explicar o que significa "Don't overabstract".

Grande abraço,
Geysler Niclevicz.

CENTENAS DE EXPRESSÕES DO INGLÊS
Preparamos um plano de estudos para ajudar você a dominar centenas de palavras e expressões do inglês em tempo recorde. EXPERIMENTE AGORA
5 respostas
  Resposta mais votada
Emmanuel, o "over abstraction" de sua pesquisa é na verdade a palavra "over" e "abstraction" separadas, sem relação direta.

niclevicz, não sei se você já possui familiaridade com programação orientada a objetos, mas de qualquer forma, a abstração (abstraction) é um conceito que reflete o quanto um objeto expõe ou torna visível seus elementos e rotinas internas e como ele permite sua manipulação. Caso você já tenha algum conhecimento de programação, uma analogia simples seria:

Carro->Ligar ("carro" sendo um objeto e "ligar" uma de suas rotinas)

Este objeto possui um alto nível de abstração, pois encapsula rotinas internas e oferece apenas o comando "ligar", sem permitir acesso a rotinas de nível mais baixo, como o processo elétrico da ignição, por exemplo. "Overabstract" seria abstrair em excesso, escondendo demais as rotinas, funções e variáveis internas de um objeto e construindo um número excessivo de camadas de abstração sobre estes elementos, o que torna o objeto "automático" ou simplificado demais e não permite um maior controle sobre ele. Desta forma:

"Don't over-abstract" = Não abstraia em excesso (não simplifique demais as rotinas do objeto, deixe parte de seus elementos e procedimentos internos visíveis e manipuláveis).

http://whatis.techtarget.com/definition/abstraction (artigo sobre abstração, caso você precise de mais informação sobre isto)

Peço desculpas pela fuga ao escopo central do fórum.

Abraços, Alisson.
TESTE DE VOCABULÁRIO
Faça um teste e descubra como está seus conhecimentos de vocabulário de inglês em 5 minutos! Este teste foi desenvolvido por professores experientes. O resultado sai na hora e com gabarito. INICIAR TESTE
Hello Geysler Niclevicz.

No caso você teria como informar o contexto no qual está escrito a expressão: don't overabstract, para melhor entendimento da aplicação na frase?

Pelo que pude observar está palavras escrita separada over abstract parece em diversos sites relacionados a linguagem de programação.

Segue o link de alguns:
http://ask.reference.com/web?s=t&q=Don ... 1&o=10616
http://stackoverflow.com/questions/1132 ... ry-pattern

Fico no aguardo.

See you later.

Emanuel.
Olá Emanuel,

A explicação vai ficar longa, mas vamos lá...
A frase toda é apenas essa "Don't overabstract". Acredito que seja escrito junto, pois, encontrei escrito dessa mesma forma em outra página do livro.
O termo "abstract" é muito utilizado em várias linguagens de programação, pois, é uma das características da Programação Orientada a Objetos (OOP - Object-Oriented Programming).
Um dos conceitos de OOP é chamado de Classe (Class) onde são definidas as características de algo do mundo real que se quer representar em um programa. Exemplo: supondo que quero representar um carro no meu programa. Eu utilizo uma classe que vai representar meu carro e essa classe define todas as características que eu quero no carro como cor, tipo de roda, tipo de estofamento etc. Após informar quais são as características que minha classe Carro possui, eu posso utilizá-la no meu programa apenas atribuindo valores a essas características como cor azul, estofamento em couro, mas não posso alterar a estrutura já definida (não posso definir a potência do alto-falante, pois, o alto-falante não foi previamente definido na classe inicial, o carro não tem alto-falante, não posso definir um valor pra uma característica que não existe na classe). Isso tudo está relacionado a uma classe simples.
Por outro lado existe o conceito de Classe Abstrata (Abstract Class) onde eu posso criar a mesma classe Carro com as suas características, mas informando que não é mais uma classe simples, mas sim, uma Classe Abstrata. Sendo assim eu posso reutilizar essa classe acrecentando características que ainda não existem. Quando eu tenho uma classe abstrata Carro eu posso criar uma outra classe CarroEsportivo que herda as características da classe Carro não sendo necessário eu definir novamente na classe CarroEsportivo todas as características básicas de Carro, pois sendo uma classe abstrata, eu reutilizo a classe Carro como base para a nova classe CarroEsportivo que receberá todas as características da classe Carro e ainda posso acrecentar a característica Turbo ao motor.
O termo abstract refere-se a esse recurso de definir que uma classe pode ser herdada a uma nova classe que manterá as mesmas características da classe abstrata e poderá conter mais características que não foram definidas na classe abstrata.
No contexto do livro eu acredito que "Don't overabstract" esteja relacionado ao uso da herança de uma classe para outra. Se entendi bem a palavra abstract pode ser um verbo que caracteriza a ação de criar uma classe que herda as características de uma classe abstrata já definida, portanto, "Don't abstract" pode ser entendido como "não utilizar a herança de classe", mas quando eu vi o "over" junto com "abstract" eu não entendi como o "over" altera o sentido de "abstract".

Eu sei que tudo isso é confuso, aliás, até programadores tem dificuldade de entender os conceitos de Orientação a Objeto, mas espero que eu consiga fazer você entender. É isso.

Agradeço a atenção e um grande abraço.
Hello Alisson Mendes.

Muito obrigado pelas dicas e novas informações a respeito do termo "overabstract" , realmente ainda não o conhecia e não consegui pesquisar nada a respeito dai o motivo de ter encontrado o significado da expressão separadamente, porém a maneira como você me explicou ficou agora muito mais claro o entendimento.

See you later and good studies.

Cheers!

Emanuel.
No problem, Emanuel! Abraços!

-----

Niclevicz, quando postei, seu post ainda não havia sido liberado, por isso não pude responder com base no que você já tinha escrito. De qualquer forma, o "abstraction" parece realmente ser uma referência ao conceito de abstração, e não tanto a classes abstratas, que por sinal não podem ser instanciadas, apenas herdadas.

Grande abraço, espero ter ajudado.