Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Qual diferença entre separar e abstrair? E de blocos/partes e classificação?

Bom dia,

Eu acertei a pergunta pq a resposta da letra 'c' estava bem formulada de acordo com o que foi desenvolvido na aula. Mas, se está pergunta fosse dada em outro contexto e com as mesmas alternativa acho que poderia erra marcando 'a'. Pois, eu não consegui entender bem a diferença de separar em blobos e abstrair (que de acordo com o dicionario é isolar um componente). Não sei se é alguma ação de programação utilizada de forma diferente tipo comentar (//). Alguém poderia me explicar melhor esse conceitos, por favor? Apesar de ter acertado, ainda está muito vago na minha cabeça.

1 resposta
solução!

Olá, Pedro! Tudo bom com você?

Desculpe a demora em responder você!

A resposta realmente estava bem formulada e as questões que você levantou são profundas em nível teórico e até filosófico. Bom, vamos lá!

Separar em blocos ou abstrair?

Você tem razão quando afirmamos que abstração é isolar determinados componentes ou características. No entanto essa afirmação é incompleta tanto para a filosofia quanto para a ciência da computação. Ok, mas então qual seria o correto?

Abstração

A competência do Pensamento computacional tem em sua essência a ideia da abstração para solucionar problemas.

Abstração, para a ciência da computação é uma habilidade que consegue isolar as características, propriedades ou componentes considerados como os mais importantes para definir um modelo e ignorar o restante. Ao aprofundarmos um pouco mais, em filosofia a abstração é uma forma de representar a realidade através de um modelo.

Um exemplo:

Temos a classe dos insetos, essa classe é uma forma de agrupar todos os atrópodes que possuem as seguintes características: Três pares de pernas Olhos compostos Um par de antenas Corpo dividido em cabeça, tórax e abdome

Os Insetos possuem outras características mas essas podem ser ignoradas no momento para agrupá-los em outras ordens.

Essa abstração de criação da classe inseto da biologia é uma habilidade, essa habilidade de agrupar elementos mais importantes para criação de modelos e solução de problemas também pode ser aplicada durante a construção de nossos códigos

Tudo bem até aqui?

É exatamente como você apontou (No entanto o comentário com // em JavaScript é apenas parte da sintaxe da linguagem e não uma habilidade), a abstração pode ser entendida como a habilidade de criar classes no contexto da programação orientada a objetos.

Abaixo temos um exemplo de definição de uma classe em JavaScript:

class Retangulo {
  constructor(altura, largura) {
    this.altura = altura;
    this.largura = largura;
  }
}

É uma forma de representar um Retângulo.

Por outro lado temos a divisão em blocos

Separar em blocos é habilidade de fragmentar ou dividir seu código em diferentes partes de acordo com sua necessidade. A criação de funções para isso é bem interessante pois funciona como uma forma de dividir responsabilidades específicas e assim deixar seu código com maior legibilidade, por exemplo.

É mais parecido com uma forma de organização que beneficia a manutenção, distribuição de responsabilidades e legibilidade do seu código.

Um Exemplo:

Durante esse curso o instrutor poderia muito bem redigir todo o código sem nenhuma função mas você acha que isso seria o ideal?

Será que seria mais difícil ou mais fácil para encontrar problemas?

Certamente o cenário seria de caos total hahaha, então a divisão de projeto em sub-rotinas é algo essencial ao ofício do programador e parte bem básica também.

Dessa forma, a letra "C" está interligada com a ideia de sub-rotinas, separação do código em blocos com funções específicas a fim de garantir a boa prática. Por outro lado, a letra "A" está mais direcionada ao conceito de construção de classes.

Fico à disposiçao em caso de dúvidas e espero que as informações tenham ajudado!

Um abraço e bons estudos!